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))