Mercurial > emacs
comparison lisp/progmodes/f90.el @ 47178:7a1530aeef3f
Remove (eval-when-compile) for free variables.
(f90-menu): Remove ":active" keyword where not needed.
(f90-menu, f90-add-imenu-menu): Use lookup-key rather than
imenu--index-alist.
A few whitespace changes.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Sun, 01 Sep 2002 00:54:55 +0000 |
parents | 978b0db16be0 |
children | 0d8b17d428b5 |
comparison
equal
deleted
inserted
replaced
47177:13c19667a7a0 | 47178:7a1530aeef3f |
---|---|
154 ;; Support for hideshow, align. | 154 ;; Support for hideshow, align. |
155 ;; OpenMP, preprocessor highlighting. | 155 ;; OpenMP, preprocessor highlighting. |
156 | 156 |
157 ;;; Code: | 157 ;;; Code: |
158 | 158 |
159 (eval-when-compile | 159 (defvar comment-auto-fill-only-comments) |
160 (defvar comment-auto-fill-only-comments) | 160 (defvar font-lock-keywords) |
161 (defvar font-lock-keywords) | |
162 (defvar imenu--index-alist)) | |
163 | 161 |
164 ;; User options | 162 ;; User options |
165 | 163 |
166 (defgroup f90 nil | 164 (defgroup f90 nil |
167 "Major mode for editing Fortran 90,95 code." | 165 "Major mode for editing Fortran 90,95 code." |
475 ["Break Line at Point" f90-break-line t] | 473 ["Break Line at Point" f90-break-line t] |
476 ["Join with Next Line" f90-join-lines t] | 474 ["Join with Next Line" f90-join-lines t] |
477 ["Insert Block End" f90-insert-end t] | 475 ["Insert Block End" f90-insert-end t] |
478 "--" | 476 "--" |
479 ("Highlighting" | 477 ("Highlighting" |
480 ["Toggle font-lock-mode" font-lock-mode :active t | 478 ["Toggle font-lock-mode" font-lock-mode :selected font-lock-mode |
481 :selected font-lock-mode :style toggle] | 479 :style toggle] |
482 "--" | 480 "--" |
483 ["Light highlighting (level 1)" f90-font-lock-1 t] | 481 ["Light highlighting (level 1)" f90-font-lock-1 t] |
484 ["Moderate highlighting (level 2)" f90-font-lock-2 t] | 482 ["Moderate highlighting (level 2)" f90-font-lock-2 t] |
485 ["Heavy highlighting (level 3)" f90-font-lock-3 t] | 483 ["Heavy highlighting (level 3)" f90-font-lock-3 t] |
486 ["Maximum highlighting (level 4)" f90-font-lock-4 t] | 484 ["Maximum highlighting (level 4)" f90-font-lock-4 t] |
494 ["Capitalize Keywords (region)" f90-capitalize-region-keywords | 492 ["Capitalize Keywords (region)" f90-capitalize-region-keywords |
495 mark-active] | 493 mark-active] |
496 ["Downcase Keywords (region)" f90-downcase-region-keywords mark-active] | 494 ["Downcase Keywords (region)" f90-downcase-region-keywords mark-active] |
497 ) | 495 ) |
498 "--" | 496 "--" |
499 ["Toggle auto-fill" auto-fill-mode :active t :selected auto-fill-function | 497 ["Toggle auto-fill" auto-fill-mode :selected auto-fill-function |
500 :style toggle] | 498 :style toggle] |
501 ["Toggle abbrev-mode" abbrev-mode :active t :selected abbrev-mode | 499 ["Toggle abbrev-mode" abbrev-mode :selected abbrev-mode :style toggle] |
502 :style toggle] | |
503 ["Add imenu Menu" f90-add-imenu-menu | 500 ["Add imenu Menu" f90-add-imenu-menu |
504 :active (or (not (boundp 'imenu--index-alist)) (not imenu--index-alist)) | 501 :active (not (lookup-key (current-local-map) [menu-bar index])) |
505 :visible (fboundp 'imenu-add-to-menubar)] | 502 :included (fboundp 'imenu-add-to-menubar)] |
506 )) | 503 )) |
507 | 504 |
508 (defun f90-font-lock-1 () | 505 (defun f90-font-lock-1 () |
509 "Set `font-lock-keywords' to `f90-font-lock-keywords-1'." | 506 "Set `font-lock-keywords' to `f90-font-lock-keywords-1'." |
510 (interactive) | 507 (interactive) |
601 "Generic imenu expression for F90 mode.") | 598 "Generic imenu expression for F90 mode.") |
602 | 599 |
603 (defun f90-add-imenu-menu () | 600 (defun f90-add-imenu-menu () |
604 "Add an imenu menu to the menubar." | 601 "Add an imenu menu to the menubar." |
605 (interactive) | 602 (interactive) |
606 (if (and (boundp 'imenu--index-alist) imenu--index-alist) | 603 (if (lookup-key (current-local-map) [menu-bar index]) |
607 (message "%s" "F90-imenu already exists.") | 604 (message "%s" "F90-imenu already exists.") |
608 (imenu-add-to-menubar "F90-imenu") | 605 (imenu-add-to-menubar "F90-imenu") |
609 (redraw-frame (selected-frame)))) | 606 (redraw-frame (selected-frame)))) |
610 | 607 |
611 | 608 |
1322 Unless optional argument NO-UPDATE is non-nil, call `f90-update-line' | 1319 Unless optional argument NO-UPDATE is non-nil, call `f90-update-line' |
1323 after indenting." | 1320 after indenting." |
1324 (interactive) | 1321 (interactive) |
1325 (let (indent no-line-number (pos (make-marker)) (case-fold-search t)) | 1322 (let (indent no-line-number (pos (make-marker)) (case-fold-search t)) |
1326 (set-marker pos (point)) | 1323 (set-marker pos (point)) |
1327 (beginning-of-line) ; digits after & \n are not line-nos | 1324 (beginning-of-line) ; digits after & \n are not line-nos |
1328 (if (save-excursion (and (f90-previous-statement) (f90-line-continued))) | 1325 (if (save-excursion (and (f90-previous-statement) (f90-line-continued))) |
1329 (progn (setq no-line-number t) (skip-chars-forward " \t")) | 1326 (progn (setq no-line-number t) (skip-chars-forward " \t")) |
1330 (f90-indent-line-no)) | 1327 (f90-indent-line-no)) |
1331 (if (looking-at "!") | 1328 (if (looking-at "!") |
1332 (setq indent (f90-comment-indent)) | 1329 (setq indent (f90-comment-indent)) |
1349 An abbrev before point is expanded if the variable `abbrev-mode' is non-nil. | 1346 An abbrev before point is expanded if the variable `abbrev-mode' is non-nil. |
1350 If run in the middle of a line, the line is not broken." | 1347 If run in the middle of a line, the line is not broken." |
1351 (interactive) | 1348 (interactive) |
1352 (let (string cont (case-fold-search t)) | 1349 (let (string cont (case-fold-search t)) |
1353 (if abbrev-mode (expand-abbrev)) | 1350 (if abbrev-mode (expand-abbrev)) |
1354 (beginning-of-line) ; reindent where likely to be needed | 1351 (beginning-of-line) ; reindent where likely to be needed |
1355 (f90-indent-line-no) | 1352 (f90-indent-line-no) |
1356 (f90-indent-line 'no-update) | 1353 (f90-indent-line 'no-update) |
1357 (end-of-line) | 1354 (end-of-line) |
1358 (delete-horizontal-space) ; destroy trailing whitespace | 1355 (delete-horizontal-space) ; destroy trailing whitespace |
1359 (setq string (f90-in-string) | 1356 (setq string (f90-in-string) |
1398 (setq struct (f90-looking-at-where-or-forall)) | 1395 (setq struct (f90-looking-at-where-or-forall)) |
1399 (looking-at f90-else-like-re)) | 1396 (looking-at f90-else-like-re)) |
1400 f90-if-indent) | 1397 f90-if-indent) |
1401 ((setq struct (f90-looking-at-type-like)) | 1398 ((setq struct (f90-looking-at-type-like)) |
1402 f90-type-indent) | 1399 f90-type-indent) |
1403 ((or(setq struct (f90-looking-at-program-block-start)) | 1400 ((or (setq struct (f90-looking-at-program-block-start)) |
1404 (looking-at "contains[ \t]*\\($\\|!\\)")) | 1401 (looking-at "contains[ \t]*\\($\\|!\\)")) |
1405 f90-program-indent))) | 1402 f90-program-indent))) |
1406 (if ind-b (setq ind-lev (+ ind-lev ind-b))) | 1403 (if ind-b (setq ind-lev (+ ind-lev ind-b))) |
1407 (if struct (setq block-list (cons struct block-list))) | 1404 (if struct (setq block-list (cons struct block-list))) |
1408 (while (and (f90-line-continued) (zerop (forward-line 1)) | 1405 (while (and (f90-line-continued) (zerop (forward-line 1)) |
1409 (< (point) end-region-mark)) | 1406 (< (point) end-region-mark)) |