Variable: f90-font-lock-keywords-1
f90-font-lock-keywords-1 is a variable defined in f90.el.gz.
Value
(("\\_<\\(module[ ]*procedure\\)\\_>\\([^()\n]*::\\)?[ ]*\\([^&!\n]*\\)"
(1 font-lock-keyword-face) (3 font-lock-function-name-face nil t))
(f90-typedef-matcher (1 font-lock-keyword-face)
(2 font-lock-function-name-face))
("\\_<\\(\\(?:end[ ]*\\)?interface[ ]*\\(?:assignment\\|operator\\|read\\|write\\)\\)[ ]*("
(1 font-lock-keyword-face t))
("\\_<\\(\\(?:end[ ]*\\)?\\(program\\|\\(?:module[ ]*\\)?\\(?:function\\|subroutine\\)\\|\\(?:sub\\)?module\\|associate\\|interface\\)\\|use\\|call\\)\\_>[ ]*\\(\\(?:\\sw\\|\\s_\\)+\\)?"
(1 font-lock-keyword-face) (3 font-lock-function-name-face nil t))
("\\_<\\(submodule\\)\\_>[ ]*([^)\n]+)[ ]*\\(\\(?:\\sw\\|\\s_\\)+\\)?"
(1 font-lock-keyword-face) (2 font-lock-function-name-face nil t))
("\\_<\\(use\\)[ ]*,[ ]*\\(\\(?:non_\\)?intrinsic\\)[ ]*::[ ]*\\(\\(?:\\sw\\|\\s_\\)+\\)"
(1 font-lock-keyword-face) (2 font-lock-keyword-face)
(3 font-lock-function-name-face))
"\\_<\\(\\(end[ ]*\\)?block[ ]*data\\|contains\\)\\_>"
("\\_<abstract[ ]*interface\\_>" (0 font-lock-keyword-face t)))
Documentation
This does fairly subdued highlighting of comments and function calls.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/f90.el.gz
(defvar f90-font-lock-keywords-1
(list
;; Special highlighting of "module procedure".
'("\\_<\\(module[ \t]*procedure\\)\\_>\\([^()\n]*::\\)?[ \t]*\\([^&!\n]*\\)"
(1 font-lock-keyword-face) (3 font-lock-function-name-face nil t))
;; Highlight definition of derived type.
;;; '("\\_<\\(\\(?:end[ \t]*\\)?type\\)\\_>\\([^()\n]*::\\)?[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)"
;;; (1 font-lock-keyword-face) (3 font-lock-function-name-face))
'(f90-typedef-matcher
(1 font-lock-keyword-face) (2 font-lock-function-name-face))
;; F2003. Prevent operators being highlighted as functions.
'("\\_<\\(\\(?:end[ \t]*\\)?interface[ \t]*\\(?:assignment\\|operator\\|\
read\\|write\\)\\)[ \t]*(" (1 font-lock-keyword-face t))
;; Other functions and declarations. Named interfaces = F2003.
;; F2008: end submodule submodule_name.
;; F2008: module function|subroutine NAME.
'("\\_<\\(\\(?:end[ \t]*\\)?\\(program\\|\
\\(?:module[ \t]*\\)?\\(?:function\\|subroutine\\)\\|\
\\(?:sub\\)?module\\|associate\\|interface\\)\\|use\\|call\\)\
\\_>[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)?"
(1 font-lock-keyword-face) (3 font-lock-function-name-face nil t))
;; F2008: submodule (parent_name) submodule_name.
'("\\_<\\(submodule\\)\\_>[ \t]*([^)\n]+)[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)?"
(1 font-lock-keyword-face) (2 font-lock-function-name-face nil t))
;; F2003.
'("\\_<\\(use\\)[ \t]*,[ \t]*\\(\\(?:non_\\)?intrinsic\\)[ \t]*::[ \t]*\
\\(\\(?:\\sw\\|\\s_\\)+\\)"
(1 font-lock-keyword-face) (2 font-lock-keyword-face)
(3 font-lock-function-name-face))
"\\_<\\(\\(end[ \t]*\\)?block[ \t]*data\\|contains\\)\\_>"
;; "abstract interface" is F2003.
'("\\_<abstract[ \t]*interface\\_>" (0 font-lock-keyword-face t)))
"This does fairly subdued highlighting of comments and function calls.")