diff options
| author | Glenn Morris | 2002-08-24 00:50:42 +0000 |
|---|---|---|
| committer | Glenn Morris | 2002-08-24 00:50:42 +0000 |
| commit | 1a341882a54b48c519eb0f90223eaec89f0b0dd6 (patch) | |
| tree | e3ce68ae28c92a3a81f01053d696b9a1559fbe46 | |
| parent | 365958144ea38255d543a4232b926ca81e849fa9 (diff) | |
| download | emacs-1a341882a54b48c519eb0f90223eaec89f0b0dd6.tar.gz emacs-1a341882a54b48c519eb0f90223eaec89f0b0dd6.zip | |
(f90-xemacs-flag, f90-xemacs-menu, f90-menu-bar-menu, f90-change-case-menu)
(f90-font-lock-on, f90-font-lock-off, f90-font-lock-menu): Deleted. Use
easy-menu-define instead.
(f90-mode): Use easy-menu-add.
No longer (require 'imenu) when compiling.
(f90-mark-subprogram, f90-indent-region, f90-fill-region)
(f90-abbrev-start): Use fboundp.
| -rw-r--r-- | lisp/ChangeLog | 11 | ||||
| -rw-r--r-- | lisp/progmodes/f90.el | 259 |
2 files changed, 91 insertions, 179 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9e7f8355b91..295785f871d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,14 @@ | |||
| 1 | 2002-08-24 Glenn Morris <gmorris@ast.cam.ac.uk> | ||
| 2 | |||
| 3 | * progmodes/f90.el (f90-xemacs-flag, f90-xemacs-menu) | ||
| 4 | (f90-menu-bar-menu, f90-change-case-menu, f90-font-lock-on) | ||
| 5 | (f90-font-lock-off, f90-font-lock-menu): Deleted. Use | ||
| 6 | easy-menu-define instead. | ||
| 7 | (f90-mode): Use easy-menu-add. | ||
| 8 | No longer (require 'imenu) when compiling. | ||
| 9 | (f90-mark-subprogram, f90-indent-region, f90-fill-region) | ||
| 10 | (f90-abbrev-start): Use fboundp. | ||
| 11 | |||
| 1 | 2002-08-23 Andre Spiegel <spiegel@gnu.org> | 12 | 2002-08-23 Andre Spiegel <spiegel@gnu.org> |
| 2 | 13 | ||
| 3 | * vc-hooks.el (vc-kill-buffer-hook): Add it to kill-buffer-hook again. | 14 | * vc-hooks.el (vc-kill-buffer-hook): Add it to kill-buffer-hook again. |
diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el index 7e898b50fd1..6dfcbd6c0b9 100644 --- a/lisp/progmodes/f90.el +++ b/lisp/progmodes/f90.el | |||
| @@ -156,18 +156,9 @@ | |||
| 156 | 156 | ||
| 157 | ;;; Code: | 157 | ;;; Code: |
| 158 | 158 | ||
| 159 | (eval-and-compile | ||
| 160 | (defconst f90-xemacs-flag (string-match "XEmacs\\|Lucid" emacs-version) | ||
| 161 | "Non-nil means F90 mode thinks it is running under XEmacs.")) | ||
| 162 | |||
| 163 | ;; Most of these are just to quieten the byte-compiler. | ||
| 164 | (eval-when-compile | 159 | (eval-when-compile |
| 165 | (defvar comment-auto-fill-only-comments) | 160 | (defvar comment-auto-fill-only-comments) |
| 166 | (defvar font-lock-keywords) | 161 | (defvar font-lock-keywords)) |
| 167 | (unless f90-xemacs-flag | ||
| 168 | ;; If you have GNU Emacs 19.22 or earlier, comment this out, or get imenu. | ||
| 169 | (require 'imenu) | ||
| 170 | (defvar current-menubar))) | ||
| 171 | 162 | ||
| 172 | ;; User options | 163 | ;; User options |
| 173 | 164 | ||
| @@ -468,162 +459,79 @@ Can be overridden by the value of `font-lock-maximum-decoration'.") | |||
| 468 | map) | 459 | map) |
| 469 | "Keymap used in F90 mode.") | 460 | "Keymap used in F90 mode.") |
| 470 | 461 | ||
| 471 | ;; Menu bar support. | ||
| 472 | (if f90-xemacs-flag | ||
| 473 | (defvar f90-xemacs-menu | ||
| 474 | '("F90" | ||
| 475 | ["Indent Subprogram" f90-indent-subprogram t] | ||
| 476 | ["Mark Subprogram" f90-mark-subprogram t] | ||
| 477 | ["Beginning of Subprogram" f90-beginning-of-subprogram t] | ||
| 478 | ["End of Subprogram" f90-end-of-subprogram t] | ||
| 479 | "-----" | ||
| 480 | ["(Un)Comment Region" f90-comment-region t] | ||
| 481 | ["Indent Region" indent-region t] | ||
| 482 | ["Fill Region" f90-fill-region t] | ||
| 483 | "-----" | ||
| 484 | ["Break Line at Point" f90-break-line t] | ||
| 485 | ["Join with Next Line" f90-join-lines t] | ||
| 486 | ["Insert Newline" newline t] | ||
| 487 | ["Insert Block End" f90-insert-end t] | ||
| 488 | "-----" | ||
| 489 | ["Upcase Keywords (buffer)" f90-upcase-keywords t] | ||
| 490 | ["Upcase Keywords (region)" f90-upcase-region-keywords t] | ||
| 491 | ["Capitalize Keywords (buffer)" f90-capitalize-keywords t] | ||
| 492 | ["Capitalize Keywords (region)" f90-capitalize-region-keywords t] | ||
| 493 | ["Downcase Keywords (buffer)" f90-downcase-keywords t] | ||
| 494 | ["Downcase Keywords (region)" f90-downcase-region-keywords t] | ||
| 495 | "-----" | ||
| 496 | ["Toggle abbrev-mode" abbrev-mode t] | ||
| 497 | ["Toggle auto-fill" auto-fill-mode t]) | ||
| 498 | "XEmacs menu for F90 mode.") | ||
| 499 | |||
| 500 | ;; Emacs. | ||
| 501 | (defvar f90-menu-bar-menu | ||
| 502 | (let ((map (make-sparse-keymap "F90"))) | ||
| 503 | (define-key map [f90-imenu-menu] | ||
| 504 | '("Add imenu Menu" . f90-add-imenu-menu)) | ||
| 505 | (define-key map [abbrev-mode] | ||
| 506 | '("Toggle abbrev-mode" . abbrev-mode)) | ||
| 507 | (define-key map [auto-fill-mode] | ||
| 508 | '("Toggle auto-fill" . auto-fill-mode)) | ||
| 509 | (define-key map [line1] '("--")) | ||
| 510 | (define-key map [f90-change-case-menu] | ||
| 511 | '("Change Keyword Case" . f90-change-case-menu)) | ||
| 512 | (define-key map [f90-font-lock-menu] | ||
| 513 | '("Highlighting" . f90-font-lock-menu)) | ||
| 514 | (define-key map [line2] '("--")) | ||
| 515 | (define-key map [f90-insert-end] | ||
| 516 | '("Insert Block End" . f90-insert-end)) | ||
| 517 | (define-key map [f90-join-lines] | ||
| 518 | '("Join with Next Line" . f90-join-lines)) | ||
| 519 | (define-key map [f90-break-line] | ||
| 520 | '("Break Line at Point" . f90-break-line)) | ||
| 521 | (define-key map [line3] '("--")) | ||
| 522 | (define-key map [f90-fill-region] | ||
| 523 | '("Fill Region" . f90-fill-region)) | ||
| 524 | (put 'f90-fill-region 'menu-enable 'mark-active) | ||
| 525 | (define-key map [indent-region] | ||
| 526 | '("Indent Region" . indent-region)) | ||
| 527 | (define-key map [f90-comment-region] | ||
| 528 | '("(Un)Comment Region" . f90-comment-region)) | ||
| 529 | (put 'f90-comment-region 'menu-enable 'mark-active) | ||
| 530 | (define-key map [line4] '("--")) | ||
| 531 | (define-key map [f90-end-of-subprogram] | ||
| 532 | '("End of Subprogram" . f90-end-of-subprogram)) | ||
| 533 | (define-key map [f90-beginning-of-subprogram] | ||
| 534 | '("Beginning of Subprogram" . f90-beginning-of-subprogram)) | ||
| 535 | (define-key map [f90-mark-subprogram] | ||
| 536 | '("Mark Subprogram" . f90-mark-subprogram)) | ||
| 537 | (define-key map [f90-indent-subprogram] | ||
| 538 | '("Indent Subprogram" . f90-indent-subprogram)) | ||
| 539 | map) | ||
| 540 | "F90 mode top-level menu bar menu.") | ||
| 541 | |||
| 542 | (define-key f90-mode-map [menu-bar f90-menu] | ||
| 543 | (cons "F90" f90-menu-bar-menu)) | ||
| 544 | |||
| 545 | (defvar f90-change-case-menu | ||
| 546 | (let ((map (make-sparse-keymap "Change Keyword Case"))) | ||
| 547 | (define-key map [dkr] | ||
| 548 | '("Downcase Keywords (region)" . f90-downcase-region-keywords)) | ||
| 549 | (put 'f90-downcase-region-keywords 'menu-enable 'mark-active) | ||
| 550 | (define-key map [ckr] | ||
| 551 | '("Capitalize Keywords (region)" . f90-capitalize-region-keywords)) | ||
| 552 | (put 'f90-capitalize-region-keywords 'menu-enable 'mark-active) | ||
| 553 | (define-key map [ukr] | ||
| 554 | '("Upcase Keywords (region)" . f90-upcase-region-keywords)) | ||
| 555 | (put 'f90-upcase-region-keywords 'menu-enable 'mark-active) | ||
| 556 | (define-key map [line] '("--")) | ||
| 557 | (define-key map [dkb] | ||
| 558 | '("Downcase Keywords (buffer)" . f90-downcase-keywords)) | ||
| 559 | (define-key map [ckb] | ||
| 560 | '("Capitalize Keywords (buffer)" . f90-capitalize-keywords)) | ||
| 561 | (define-key map [ukb] | ||
| 562 | '("Upcase Keywords (buffer)" . f90-upcase-keywords)) | ||
| 563 | map) | ||
| 564 | "Submenu for change of case.") | ||
| 565 | |||
| 566 | (defalias 'f90-change-case-menu f90-change-case-menu) | ||
| 567 | |||
| 568 | ;; Font-lock-menu and function calls. | ||
| 569 | (defalias 'f90-font-lock-on 'font-lock-mode) | ||
| 570 | (put 'f90-font-lock-on 'menu-enable 'font-lock-mode) | ||
| 571 | (put 'f90-font-lock-on 'menu-alias t) | ||
| 572 | |||
| 573 | (defalias 'f90-font-lock-off 'font-lock-mode) | ||
| 574 | (put 'f90-font-lock-off 'menu-enable '(not font-lock-mode)) | ||
| 575 | (put 'f90-font-lock-off 'menu-alias t) | ||
| 576 | |||
| 577 | (defun f90-font-lock-1 () | ||
| 578 | "Set `font-lock-keywords' to `f90-font-lock-keywords-1'." | ||
| 579 | (interactive) | ||
| 580 | (font-lock-mode 1) | ||
| 581 | (setq font-lock-keywords f90-font-lock-keywords-1) | ||
| 582 | (font-lock-fontify-buffer)) | ||
| 583 | |||
| 584 | (defun f90-font-lock-2 () | ||
| 585 | "Set `font-lock-keywords' to `f90-font-lock-keywords-2'." | ||
| 586 | (interactive) | ||
| 587 | (font-lock-mode 1) | ||
| 588 | (setq font-lock-keywords f90-font-lock-keywords-2) | ||
| 589 | (font-lock-fontify-buffer)) | ||
| 590 | |||
| 591 | (defun f90-font-lock-3 () | ||
| 592 | "Set `font-lock-keywords' to `f90-font-lock-keywords-3'." | ||
| 593 | (interactive) | ||
| 594 | (font-lock-mode 1) | ||
| 595 | (setq font-lock-keywords f90-font-lock-keywords-3) | ||
| 596 | (font-lock-fontify-buffer)) | ||
| 597 | |||
| 598 | (defun f90-font-lock-4 () | ||
| 599 | "Set `font-lock-keywords' to `f90-font-lock-keywords-4'." | ||
| 600 | (interactive) | ||
| 601 | (font-lock-mode 1) | ||
| 602 | (setq font-lock-keywords f90-font-lock-keywords-4) | ||
| 603 | (font-lock-fontify-buffer)) | ||
| 604 | |||
| 605 | (defvar f90-font-lock-menu | ||
| 606 | (let ((map (make-sparse-keymap "f90-font-lock-menu"))) | ||
| 607 | (define-key map [h4] | ||
| 608 | '("Maximum highlighting (level 4)" . f90-font-lock-4)) | ||
| 609 | (define-key map [h3] | ||
| 610 | '("Heavy highlighting (level 3)" . f90-font-lock-3)) | ||
| 611 | (define-key map [h2] | ||
| 612 | '("Default highlighting (level 2)" . f90-font-lock-2)) | ||
| 613 | (define-key map [h1] | ||
| 614 | '("Light highlighting (level 1)" . f90-font-lock-1)) | ||
| 615 | (define-key map [line] '("--")) | ||
| 616 | (define-key map [floff] | ||
| 617 | '("Turn off font-lock-mode" . f90-font-lock-on)) | ||
| 618 | (define-key map [flon] | ||
| 619 | '("Turn on font-lock-mode" . f90-font-lock-off)) | ||
| 620 | map) | ||
| 621 | "Submenu for highlighting using font-lock-mode.") | ||
| 622 | |||
| 623 | (defalias 'f90-font-lock-menu f90-font-lock-menu) | ||
| 624 | |||
| 625 | ) | ||
| 626 | 462 | ||
| 463 | (easy-menu-define f90-menu f90-mode-map "Menu for F90 mode." | ||
| 464 | '("F90" | ||
| 465 | ["Indent Subprogram" f90-indent-subprogram t] | ||
| 466 | ["Mark Subprogram" f90-mark-subprogram t] | ||
| 467 | ["Beginning of Subprogram" f90-beginning-of-subprogram t] | ||
| 468 | ["End of Subprogram" f90-end-of-subprogram t] | ||
| 469 | "--" | ||
| 470 | ["(Un)Comment Region" f90-comment-region mark-active] | ||
| 471 | ["Indent Region" f90-indent-region mark-active] | ||
| 472 | ["Fill Region" f90-fill-region mark-active] | ||
| 473 | "--" | ||
| 474 | ["Break Line at Point" f90-break-line t] | ||
| 475 | ["Join with Next Line" f90-join-lines t] | ||
| 476 | ["Insert Block End" f90-insert-end t] | ||
| 477 | "--" | ||
| 478 | ("Highlighting" | ||
| 479 | ["Toggle font-lock-mode" font-lock-mode :active t | ||
| 480 | :selected font-lock-mode :style toggle] | ||
| 481 | "--" | ||
| 482 | ["Light highlighting (level 1)" f90-font-lock-1 t] | ||
| 483 | ["Moderate highlighting (level 2)" f90-font-lock-2 t] | ||
| 484 | ["Heavy highlighting (level 3)" f90-font-lock-3 t] | ||
| 485 | ["Maximum highlighting (level 4)" f90-font-lock-4 t] | ||
| 486 | ) | ||
| 487 | ("Change Keyword Case" | ||
| 488 | ["Upcase Keywords (buffer)" f90-upcase-keywords t] | ||
| 489 | ["Capitalize Keywords (buffer)" f90-capitalize-keywords t] | ||
| 490 | ["Downcase Keywords (buffer)" f90-downcase-keywords t] | ||
| 491 | "--" | ||
| 492 | ["Upcase Keywords (region)" f90-upcase-region-keywords mark-active] | ||
| 493 | ["Capitalize Keywords (region)" f90-capitalize-region-keywords | ||
| 494 | mark-active] | ||
| 495 | ["Downcase Keywords (region)" f90-downcase-region-keywords mark-active] | ||
| 496 | ) | ||
| 497 | "--" | ||
| 498 | ["Toggle auto-fill" auto-fill-mode :active t :selected auto-fill-function | ||
| 499 | :style toggle] | ||
| 500 | ["Toggle abbrev-mode" abbrev-mode :active t :selected abbrev-mode | ||
| 501 | :style toggle] | ||
| 502 | ["Add imenu Menu" f90-add-imenu-menu :active (not f90-imenu-flag) | ||
| 503 | :visible (fboundp 'imenu-add-to-menubar)] | ||
| 504 | )) | ||
| 505 | |||
| 506 | (defun f90-font-lock-1 () | ||
| 507 | "Set `font-lock-keywords' to `f90-font-lock-keywords-1'." | ||
| 508 | (interactive) | ||
| 509 | (font-lock-mode 1) | ||
| 510 | (setq font-lock-keywords f90-font-lock-keywords-1) | ||
| 511 | (font-lock-fontify-buffer)) | ||
| 512 | |||
| 513 | (defun f90-font-lock-2 () | ||
| 514 | "Set `font-lock-keywords' to `f90-font-lock-keywords-2'." | ||
| 515 | (interactive) | ||
| 516 | (font-lock-mode 1) | ||
| 517 | (setq font-lock-keywords f90-font-lock-keywords-2) | ||
| 518 | (font-lock-fontify-buffer)) | ||
| 519 | |||
| 520 | (defun f90-font-lock-3 () | ||
| 521 | "Set `font-lock-keywords' to `f90-font-lock-keywords-3'." | ||
| 522 | (interactive) | ||
| 523 | (font-lock-mode 1) | ||
| 524 | (setq font-lock-keywords f90-font-lock-keywords-3) | ||
| 525 | (font-lock-fontify-buffer)) | ||
| 526 | |||
| 527 | (defun f90-font-lock-4 () | ||
| 528 | "Set `font-lock-keywords' to `f90-font-lock-keywords-4'." | ||
| 529 | (interactive) | ||
| 530 | (font-lock-mode 1) | ||
| 531 | (setq font-lock-keywords f90-font-lock-keywords-4) | ||
| 532 | (font-lock-fontify-buffer)) | ||
| 533 | |||
| 534 | |||
| 627 | ;; Regexps for finding program structures. | 535 | ;; Regexps for finding program structures. |
| 628 | (defconst f90-blocks-re | 536 | (defconst f90-blocks-re |
| 629 | (concat "\\(block[ \t]*data\\|" | 537 | (concat "\\(block[ \t]*data\\|" |
| @@ -852,15 +760,8 @@ with no args, if that value is non-nil." | |||
| 852 | (set (make-local-variable 'abbrev-all-caps) t) | 760 | (set (make-local-variable 'abbrev-all-caps) t) |
| 853 | (set (make-local-variable 'normal-auto-fill-function) 'f90-do-auto-fill) | 761 | (set (make-local-variable 'normal-auto-fill-function) 'f90-do-auto-fill) |
| 854 | (setq indent-tabs-mode nil) ; auto buffer local | 762 | (setq indent-tabs-mode nil) ; auto buffer local |
| 763 | (easy-menu-add f90-menu) | ||
| 855 | ;; Setting up things for font-lock. | 764 | ;; Setting up things for font-lock. |
| 856 | (when f90-xemacs-flag | ||
| 857 | (put 'f90-mode 'font-lock-keywords-case-fold-search t) | ||
| 858 | (when (and (featurep 'menubar) | ||
| 859 | current-menubar | ||
| 860 | (not (assoc "F90" current-menubar))) | ||
| 861 | (set-buffer-menubar (copy-sequence current-menubar)) | ||
| 862 | (add-submenu nil f90-xemacs-menu))) | ||
| 863 | ;; XEmacs: Does not need a special case, since both emacsen work alike -sb. | ||
| 864 | (set (make-local-variable 'font-lock-defaults) | 765 | (set (make-local-variable 'font-lock-defaults) |
| 865 | '((f90-font-lock-keywords f90-font-lock-keywords-1 | 766 | '((f90-font-lock-keywords f90-font-lock-keywords-1 |
| 866 | f90-font-lock-keywords-2 | 767 | f90-font-lock-keywords-2 |
| @@ -1396,7 +1297,7 @@ A block is a subroutine, if-endif, etc." | |||
| 1396 | (push-mark) | 1297 | (push-mark) |
| 1397 | (goto-char pos) | 1298 | (goto-char pos) |
| 1398 | (setq program (f90-beginning-of-subprogram)) | 1299 | (setq program (f90-beginning-of-subprogram)) |
| 1399 | (if f90-xemacs-flag | 1300 | (if (fboundp 'zmacs-activate-region) |
| 1400 | (zmacs-activate-region) | 1301 | (zmacs-activate-region) |
| 1401 | (setq mark-active t | 1302 | (setq mark-active t |
| 1402 | deactivate-mark nil)) | 1303 | deactivate-mark nil)) |
| @@ -1574,7 +1475,7 @@ If run in the middle of a line, the line is not broken." | |||
| 1574 | (goto-char save-point) | 1475 | (goto-char save-point) |
| 1575 | (set-marker end-region-mark nil) | 1476 | (set-marker end-region-mark nil) |
| 1576 | (set-marker save-point nil) | 1477 | (set-marker save-point nil) |
| 1577 | (if f90-xemacs-flag | 1478 | (if (fboundp 'zmacs-deactivate-region) |
| 1578 | (zmacs-deactivate-region) | 1479 | (zmacs-deactivate-region) |
| 1579 | (deactivate-mark)))) | 1480 | (deactivate-mark)))) |
| 1580 | 1481 | ||
| @@ -1685,7 +1586,7 @@ Update keyword case first." | |||
| 1685 | (zerop (forward-line 1))) | 1586 | (zerop (forward-line 1))) |
| 1686 | f90-cache-position (point))) | 1587 | f90-cache-position (point))) |
| 1687 | (setq f90-cache-position nil) | 1588 | (setq f90-cache-position nil) |
| 1688 | (if f90-xemacs-flag | 1589 | (if (fboundp 'zmacs-deactivate-region) |
| 1689 | (zmacs-deactivate-region) | 1590 | (zmacs-deactivate-region) |
| 1690 | (deactivate-mark)))) | 1591 | (deactivate-mark)))) |
| 1691 | 1592 | ||
| @@ -1781,9 +1682,9 @@ Any other key combination is executed normally." | |||
| 1781 | (interactive) | 1682 | (interactive) |
| 1782 | (let (c) | 1683 | (let (c) |
| 1783 | (insert last-command-char) | 1684 | (insert last-command-char) |
| 1784 | (if f90-xemacs-flag | 1685 | (setq c (if (fboundp 'next-command-event) ; XEmacs |
| 1785 | (setq c (event-to-character (next-command-event))) | 1686 | (event-to-character (next-command-event)) |
| 1786 | (setq c (read-event))) | 1687 | (read-event))) |
| 1787 | ;; Insert char if not equal to `?'. | 1688 | ;; Insert char if not equal to `?'. |
| 1788 | (if (or (eq c ??) (eq c help-char)) | 1689 | (if (or (eq c ??) (eq c help-char)) |
| 1789 | (f90-abbrev-help) | 1690 | (f90-abbrev-help) |