aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2002-05-18 21:52:58 +0000
committerGlenn Morris2002-05-18 21:52:58 +0000
commit70186f7ff2f61f0aa263c3d9d30521abc1f8ea36 (patch)
tree00ef74cd1ad46f3b16422b811670b42aaab6411a
parent8422aeb77d385d8075632f6afedad137a9b3ce29 (diff)
downloademacs-70186f7ff2f61f0aa263c3d9d30521abc1f8ea36.tar.gz
emacs-70186f7ff2f61f0aa263c3d9d30521abc1f8ea36.zip
(f90-mode-syntax-table, f90-mode-map): Do the initialization in the defvar.
(f90-font-lock-on, f90-font-lock-off): Add 'menu-alias property. (f90-font-lock-1, f90-font-lock-2, f90-font-lock-3, f90-font-lock-4): Move the doc strings. (f90-menu-bar-menu): New internal variable to hold the top-level menu. (f90-change-case-menu, f90-font-lock-menu): Minor code changes.
-rw-r--r--lisp/ChangeLog10
-rw-r--r--lisp/progmodes/f90.el218
2 files changed, 122 insertions, 106 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 5c8ed7f7413..9742eb3da93 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,13 @@
12002-05-18 Glenn Morris <gmorris@ast.cam.ac.uk>
2
3 * progmodes/f90.el (f90-mode-syntax-table, f90-mode-map): Do the
4 initialization in the defvar.
5 (f90-font-lock-on, f90-font-lock-off): Add 'menu-alias property.
6 (f90-font-lock-1, f90-font-lock-2, f90-font-lock-3)
7 (f90-font-lock-4): Move the doc strings.
8 (f90-menu-bar-menu): New internal variable to hold the top-level menu.
9 (f90-change-case-menu, f90-font-lock-menu): Minor code changes.
10
12002-05-18 Eli Zaretskii <eliz@is.elta.co.il> 112002-05-18 Eli Zaretskii <eliz@is.elta.co.il>
2 12
3 * tar-mode.el (tar-octal-time): Fix last change. 13 * tar-mode.el (tar-octal-time): Fix last change.
diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el
index 8f4926f33d7..e52ece1b77c 100644
--- a/lisp/progmodes/f90.el
+++ b/lisp/progmodes/f90.el
@@ -401,54 +401,51 @@ do\\([ \t]*while\\)?\\|select[ \t]*case\\|where\\|forall\\)\\)\\>"
401 "*Default expressions to highlight in F90 mode.") 401 "*Default expressions to highlight in F90 mode.")
402 402
403 403
404(defvar f90-mode-syntax-table nil 404(defvar f90-mode-syntax-table
405 "Syntax table in use in F90 mode buffers.") 405 (let ((table (make-syntax-table)))
406 406 (modify-syntax-entry ?\! "<" table) ; begin comment
407(unless f90-mode-syntax-table 407 (modify-syntax-entry ?\n ">" table) ; end comment
408 (setq f90-mode-syntax-table (make-syntax-table)) 408 (modify-syntax-entry ?_ "w" table) ; underscore in names
409 (modify-syntax-entry ?\! "<" f90-mode-syntax-table) ; begin comment 409 (modify-syntax-entry ?\' "\"" table) ; string quote
410 (modify-syntax-entry ?\n ">" f90-mode-syntax-table) ; end comment 410 (modify-syntax-entry ?\" "\"" table) ; string quote
411 (modify-syntax-entry ?_ "w" f90-mode-syntax-table) ; underscore in names 411 (modify-syntax-entry ?\` "w" table) ; for abbrevs
412 (modify-syntax-entry ?\' "\"" f90-mode-syntax-table) ; string quote 412 (modify-syntax-entry ?\r " " table) ; return is whitespace
413 (modify-syntax-entry ?\" "\"" f90-mode-syntax-table) ; string quote 413 (modify-syntax-entry ?+ "." table) ; punctuation
414 (modify-syntax-entry ?\` "w" f90-mode-syntax-table) ; for abbrevs 414 (modify-syntax-entry ?- "." table)
415 (modify-syntax-entry ?\r " " f90-mode-syntax-table) ; return is whitespace 415 (modify-syntax-entry ?= "." table)
416 (modify-syntax-entry ?+ "." f90-mode-syntax-table) ; punctuation 416 (modify-syntax-entry ?* "." table)
417 (modify-syntax-entry ?- "." f90-mode-syntax-table) 417 (modify-syntax-entry ?/ "." table)
418 (modify-syntax-entry ?= "." f90-mode-syntax-table) 418 (modify-syntax-entry ?\\ "\\" table) ; escape chars
419 (modify-syntax-entry ?* "." f90-mode-syntax-table) 419 table)
420 (modify-syntax-entry ?/ "." f90-mode-syntax-table) 420 "Syntax table used in F90 mode.")
421 (modify-syntax-entry ?\\ "\\" f90-mode-syntax-table)) ; escape chars 421
422 422(defvar f90-mode-map
423 423 (let ((map (make-sparse-keymap)))
424(defvar f90-mode-map () 424 (define-key map "`" 'f90-abbrev-start)
425 (define-key map "\C-c;" 'f90-comment-region)
426 (define-key map "\C-\M-a" 'f90-beginning-of-subprogram)
427 (define-key map "\C-\M-e" 'f90-end-of-subprogram)
428 (define-key map "\C-\M-h" 'f90-mark-subprogram)
429 (define-key map "\C-\M-q" 'f90-indent-subprogram)
430 (define-key map "\C-j" 'f90-indent-new-line) ; LFD equals C-j
431 (define-key map "\r" 'newline)
432 (define-key map "\C-c\r" 'f90-break-line)
433;;; (define-key map [M-return] 'f90-break-line)
434 (define-key map "\C-c\C-d" 'f90-join-lines)
435 (define-key map "\C-c\C-f" 'f90-fill-region)
436 (define-key map "\C-c\C-p" 'f90-previous-statement)
437 (define-key map "\C-c\C-n" 'f90-next-statement)
438 (define-key map "\C-c\C-w" 'f90-insert-end)
439 (define-key map "\t" 'f90-indent-line)
440 (define-key map "," 'f90-electric-insert)
441 (define-key map "+" 'f90-electric-insert)
442 (define-key map "-" 'f90-electric-insert)
443 (define-key map "*" 'f90-electric-insert)
444 (define-key map "/" 'f90-electric-insert)
445 map)
425 "Keymap used in F90 mode.") 446 "Keymap used in F90 mode.")
426 447
427(unless f90-mode-map 448;; Menu bar support.
428 (setq f90-mode-map (make-sparse-keymap))
429 (define-key f90-mode-map "`" 'f90-abbrev-start)
430 (define-key f90-mode-map "\C-c;" 'f90-comment-region)
431 (define-key f90-mode-map "\C-\M-a" 'f90-beginning-of-subprogram)
432 (define-key f90-mode-map "\C-\M-e" 'f90-end-of-subprogram)
433 (define-key f90-mode-map "\C-\M-h" 'f90-mark-subprogram)
434 (define-key f90-mode-map "\C-\M-q" 'f90-indent-subprogram)
435 (define-key f90-mode-map "\C-j" 'f90-indent-new-line) ; LFD equals C-j
436 (define-key f90-mode-map "\r" 'newline)
437 (define-key f90-mode-map "\C-c\r" 'f90-break-line)
438;;; (define-key f90-mode-map [M-return] 'f90-break-line)
439 (define-key f90-mode-map "\C-c\C-d" 'f90-join-lines)
440 (define-key f90-mode-map "\C-c\C-f" 'f90-fill-region)
441 (define-key f90-mode-map "\C-c\C-p" 'f90-previous-statement)
442 (define-key f90-mode-map "\C-c\C-n" 'f90-next-statement)
443 (define-key f90-mode-map "\C-c\C-w" 'f90-insert-end)
444 (define-key f90-mode-map "\t" 'f90-indent-line)
445 (define-key f90-mode-map "," 'f90-electric-insert)
446 (define-key f90-mode-map "+" 'f90-electric-insert)
447 (define-key f90-mode-map "-" 'f90-electric-insert)
448 (define-key f90-mode-map "*" 'f90-electric-insert)
449 (define-key f90-mode-map "/" 'f90-electric-insert))
450
451
452(if f90-xemacs-flag 449(if f90-xemacs-flag
453 (defvar f90-xemacs-menu 450 (defvar f90-xemacs-menu
454 '("F90" 451 '("F90"
@@ -478,58 +475,106 @@ do\\([ \t]*while\\)?\\|select[ \t]*case\\|where\\|forall\\)\\)\\>"
478 "XEmacs menu for F90 mode.") 475 "XEmacs menu for F90 mode.")
479 476
480 ;; Emacs. 477 ;; Emacs.
478 (defvar f90-menu-bar-menu
479 (let ((map (make-sparse-keymap "F90")))
480 (define-key map [f90-imenu-menu]
481 '("Add imenu Menu" . f90-add-imenu-menu))
482 (define-key map [abbrev-mode]
483 '("Toggle abbrev-mode" . abbrev-mode))
484 (define-key map [auto-fill-mode]
485 '("Toggle auto-fill" . auto-fill-mode))
486 (define-key map [line1] '("--"))
487 (define-key map [f90-change-case-menu]
488 '("Change Keyword Case" . f90-change-case-menu))
489 (define-key map [f90-font-lock-menu]
490 '("Highlighting" . f90-font-lock-menu))
491 (define-key map [line2] '("--"))
492 (define-key map [f90-insert-end]
493 '("Insert Block End" . f90-insert-end))
494 (define-key map [f90-join-lines]
495 '("Join with Next Line" . f90-join-lines))
496 (define-key map [f90-break-line]
497 '("Break Line at Point" . f90-break-line))
498 (define-key map [line3] '("--"))
499 (define-key map [f90-fill-region]
500 '("Fill Region" . f90-fill-region))
501 (put 'f90-fill-region 'menu-enable 'mark-active)
502 (define-key map [indent-region]
503 '("Indent Region" . indent-region))
504 (define-key map [f90-comment-region]
505 '("(Un)Comment Region" . f90-comment-region))
506 (put 'f90-comment-region 'menu-enable 'mark-active)
507 (define-key map [line4] '("--"))
508 (define-key map [f90-end-of-subprogram]
509 '("End of Subprogram" . f90-end-of-subprogram))
510 (define-key map [f90-beginning-of-subprogram]
511 '("Beginning of Subprogram" . f90-beginning-of-subprogram))
512 (define-key map [f90-mark-subprogram]
513 '("Mark Subprogram" . f90-mark-subprogram))
514 (define-key map [f90-indent-subprogram]
515 '("Indent Subprogram" . f90-indent-subprogram))
516 map)
517 "F90 mode top-level menu bar menu.")
518
519 (define-key f90-mode-map [menu-bar f90-menu]
520 (cons "F90" f90-menu-bar-menu))
521
481 (defvar f90-change-case-menu 522 (defvar f90-change-case-menu
482 (let ((map (make-sparse-keymap "Change Keyword Case"))) 523 (let ((map (make-sparse-keymap "Change Keyword Case")))
483 (define-key map [dkr] 524 (define-key map [dkr]
484 (cons "Downcase Keywords (region)" 'f90-downcase-region-keywords)) 525 '("Downcase Keywords (region)" . f90-downcase-region-keywords))
485 (put 'f90-downcase-region-keywords 'menu-enable 'mark-active) 526 (put 'f90-downcase-region-keywords 'menu-enable 'mark-active)
486 (define-key map [ckr] 527 (define-key map [ckr]
487 (cons "Capitalize Keywords (region)" 'f90-capitalize-region-keywords)) 528 '("Capitalize Keywords (region)" . f90-capitalize-region-keywords))
488 (put 'f90-capitalize-region-keywords 'menu-enable 'mark-active) 529 (put 'f90-capitalize-region-keywords 'menu-enable 'mark-active)
489 (define-key map [ukr] 530 (define-key map [ukr]
490 (cons "Upcase Keywords (region)" 'f90-upcase-region-keywords)) 531 '("Upcase Keywords (region)" . f90-upcase-region-keywords))
491 (put 'f90-upcase-region-keywords 'menu-enable 'mark-active) 532 (put 'f90-upcase-region-keywords 'menu-enable 'mark-active)
492 (define-key map [line] (list "-----------------")) 533 (define-key map [line] '("--"))
493 (define-key map [dkb] 534 (define-key map [dkb]
494 (cons "Downcase Keywords (buffer)" 'f90-downcase-keywords)) 535 '("Downcase Keywords (buffer)" . f90-downcase-keywords))
495 (define-key map [ckb] 536 (define-key map [ckb]
496 (cons "Capitalize Keywords (buffer)" 'f90-capitalize-keywords)) 537 '("Capitalize Keywords (buffer)" . f90-capitalize-keywords))
497 (define-key map [ukb] 538 (define-key map [ukb]
498 (cons "Upcase Keywords (buffer)" 'f90-upcase-keywords)) 539 '("Upcase Keywords (buffer)" . f90-upcase-keywords))
499 map) 540 map)
500 "Submenu for change of case.") 541 "Submenu for change of case.")
542
501 (defalias 'f90-change-case-menu f90-change-case-menu) 543 (defalias 'f90-change-case-menu f90-change-case-menu)
502 544
503 ;; Font-lock-menu and function calls. 545 ;; Font-lock-menu and function calls.
504 (defalias 'f90-font-lock-on 'font-lock-mode) 546 (defalias 'f90-font-lock-on 'font-lock-mode)
547 (put 'f90-font-lock-on 'menu-enable 'font-lock-mode)
548 (put 'f90-font-lock-on 'menu-alias t)
549
505 (defalias 'f90-font-lock-off 'font-lock-mode) 550 (defalias 'f90-font-lock-off 'font-lock-mode)
506 (put 'f90-font-lock-on 'menu-enable 'font-lock-mode)
507 (put 'f90-font-lock-off 'menu-enable '(not font-lock-mode)) 551 (put 'f90-font-lock-off 'menu-enable '(not font-lock-mode))
552 (put 'f90-font-lock-off 'menu-alias t)
508 553
509 (defun f90-font-lock-1 () 554 (defun f90-font-lock-1 ()
555 "Set `font-lock-keywords' to `f90-font-lock-keywords-1'."
510 (interactive) 556 (interactive)
511 "Set font-lock-keywords to f90-font-lock-keywords-1."
512 (font-lock-mode 1) 557 (font-lock-mode 1)
513 (setq font-lock-keywords f90-font-lock-keywords-1) 558 (setq font-lock-keywords f90-font-lock-keywords-1)
514 (font-lock-fontify-buffer)) 559 (font-lock-fontify-buffer))
515 560
516 (defun f90-font-lock-2 () 561 (defun f90-font-lock-2 ()
562 "Set `font-lock-keywords' to `f90-font-lock-keywords-2'."
517 (interactive) 563 (interactive)
518 "Set font-lock-keywords to f90-font-lock-keywords-2."
519 (font-lock-mode 1) 564 (font-lock-mode 1)
520 (setq font-lock-keywords f90-font-lock-keywords-2) 565 (setq font-lock-keywords f90-font-lock-keywords-2)
521 (font-lock-fontify-buffer)) 566 (font-lock-fontify-buffer))
522 567
523 (defun f90-font-lock-3 () 568 (defun f90-font-lock-3 ()
569 "Set `font-lock-keywords' to `f90-font-lock-keywords-3'."
524 (interactive) 570 (interactive)
525 "Set font-lock-keywords to f90-font-lock-keywords-3."
526 (font-lock-mode 1) 571 (font-lock-mode 1)
527 (setq font-lock-keywords f90-font-lock-keywords-3) 572 (setq font-lock-keywords f90-font-lock-keywords-3)
528 (font-lock-fontify-buffer)) 573 (font-lock-fontify-buffer))
529 574
530 (defun f90-font-lock-4 () 575 (defun f90-font-lock-4 ()
576 "Set `font-lock-keywords' to `f90-font-lock-keywords-4'."
531 (interactive) 577 (interactive)
532 "Set font-lock-keywords to f90-font-lock-keywords-4."
533 (font-lock-mode 1) 578 (font-lock-mode 1)
534 (setq font-lock-keywords f90-font-lock-keywords-4) 579 (setq font-lock-keywords f90-font-lock-keywords-4)
535 (font-lock-fontify-buffer)) 580 (font-lock-fontify-buffer))
@@ -537,62 +582,23 @@ do\\([ \t]*while\\)?\\|select[ \t]*case\\|where\\|forall\\)\\)\\>"
537 (defvar f90-font-lock-menu 582 (defvar f90-font-lock-menu
538 (let ((map (make-sparse-keymap "f90-font-lock-menu"))) 583 (let ((map (make-sparse-keymap "f90-font-lock-menu")))
539 (define-key map [h4] 584 (define-key map [h4]
540 (cons "Maximum highlighting (level 4)" 'f90-font-lock-4)) 585 '("Maximum highlighting (level 4)" . f90-font-lock-4))
541 (define-key map [h3] 586 (define-key map [h3]
542 (cons "Heavy highlighting (level 3)" 'f90-font-lock-3)) 587 '("Heavy highlighting (level 3)" . f90-font-lock-3))
543 (define-key map [h2] 588 (define-key map [h2]
544 (cons "Default highlighting (level 2)" 'f90-font-lock-2)) 589 '("Default highlighting (level 2)" . f90-font-lock-2))
545 (define-key map [h1] 590 (define-key map [h1]
546 (cons "Light highlighting (level 1)" 'f90-font-lock-1)) 591 '("Light highlighting (level 1)" . f90-font-lock-1))
547 (define-key map [line] (list "-----------------")) 592 (define-key map [line] '("--"))
548 (define-key map [floff] 593 (define-key map [floff]
549 (cons "Turn off font-lock-mode" 'f90-font-lock-on)) 594 '("Turn off font-lock-mode" . f90-font-lock-on))
550 (define-key map [flon] 595 (define-key map [flon]
551 (cons "Turn on font-lock-mode" 'f90-font-lock-off)) 596 '("Turn on font-lock-mode" . f90-font-lock-off))
552 map) 597 map)
553 "Submenu for highlighting using font-lock-mode.") 598 "Submenu for highlighting using font-lock-mode.")
554 599
555 (defalias 'f90-font-lock-menu f90-font-lock-menu) 600 (defalias 'f90-font-lock-menu f90-font-lock-menu)
556 601
557 (define-key f90-mode-map [menu-bar] (make-sparse-keymap))
558 (define-key f90-mode-map [menu-bar f90]
559 (cons "F90" (make-sparse-keymap "f90")))
560 (define-key f90-mode-map [menu-bar f90 f90-imenu-menu]
561 '("Add imenu Menu" . f90-add-imenu-menu))
562 (define-key f90-mode-map [menu-bar f90 abbrev-mode]
563 '("Toggle abbrev-mode" . abbrev-mode))
564 (define-key f90-mode-map [menu-bar f90 auto-fill-mode]
565 '("Toggle auto-fill" . auto-fill-mode))
566 (define-key f90-mode-map [menu-bar f90 line1] '("----"))
567 (define-key f90-mode-map [menu-bar f90 f90-change-case-menu]
568 (cons "Change Keyword Case" 'f90-change-case-menu))
569 (define-key f90-mode-map [menu-bar f90 f90-font-lock-menu]
570 (cons "Highlighting" 'f90-font-lock-menu))
571 (define-key f90-mode-map [menu-bar f90 line2] '("----"))
572 (define-key f90-mode-map [menu-bar f90 f90-insert-end]
573 '("Insert Block End" . f90-insert-end))
574 (define-key f90-mode-map [menu-bar f90 f90-join-lines]
575 '("Join with Next Line" . f90-join-lines))
576 (define-key f90-mode-map [menu-bar f90 f90-break-line]
577 '("Break Line at Point" . f90-break-line))
578 (define-key f90-mode-map [menu-bar f90 line3] '("----"))
579 (define-key f90-mode-map [menu-bar f90 f90-fill-region]
580 '("Fill Region" . f90-fill-region))
581 (put 'f90-fill-region 'menu-enable 'mark-active)
582 (define-key f90-mode-map [menu-bar f90 indent-region]
583 '("Indent Region" . indent-region))
584 (define-key f90-mode-map [menu-bar f90 f90-comment-region]
585 '("(Un)Comment Region" . f90-comment-region))
586 (put 'f90-comment-region 'menu-enable 'mark-active)
587 (define-key f90-mode-map [menu-bar f90 line4] '("----"))
588 (define-key f90-mode-map [menu-bar f90 f90-end-of-subprogram]
589 '("End of Subprogram" . f90-end-of-subprogram))
590 (define-key f90-mode-map [menu-bar f90 f90-beginning-of-subprogram]
591 '("Beginning of Subprogram" . f90-beginning-of-subprogram))
592 (define-key f90-mode-map [menu-bar f90 f90-mark-subprogram]
593 '("Mark Subprogram" . f90-mark-subprogram))
594 (define-key f90-mode-map [menu-bar f90 f90-indent-subprogram]
595 '("Indent Subprogram" . f90-indent-subprogram))
596 ) 602 )
597 603
598;; Regexps for finding program structures. 604;; Regexps for finding program structures.
@@ -822,7 +828,7 @@ with no args, if that value is non-nil."
822 (set (make-local-variable 'comment-indent-function) 'f90-comment-indent) 828 (set (make-local-variable 'comment-indent-function) 'f90-comment-indent)
823 (set (make-local-variable 'abbrev-all-caps) t) 829 (set (make-local-variable 'abbrev-all-caps) t)
824 (set (make-local-variable 'normal-auto-fill-function) 'f90-do-auto-fill) 830 (set (make-local-variable 'normal-auto-fill-function) 'f90-do-auto-fill)
825 (setq indent-tabs-mode nil) 831 (setq indent-tabs-mode nil) ; auto buffer local
826 ;; Setting up things for font-lock. 832 ;; Setting up things for font-lock.
827 (when f90-xemacs-flag 833 (when f90-xemacs-flag
828 (put 'f90-mode 'font-lock-keywords-case-fold-search t) 834 (put 'f90-mode 'font-lock-keywords-case-fold-search t)