Variable: idlwave-font-lock-keywords-2
idlwave-font-lock-keywords-2 is a variable defined in idlwave.el.gz.
Value
(("\\<\\(function\\|pro\\)\\>[ ]+\\(\\sw+\\(::\\sw+\\)?\\)"
(1 font-lock-keyword-face)
(2 font-lock-function-name-face nil t))
("^[ ]*\\(@[^ \n]+\\)"
(1 font-lock-string-face))
"\\<\\(&&\\|and\\|b\\(egin\\|reak\\)\\|c\\(ase\\|o\\(mpile_opt\\|ntinue\\)\\)\\|do\\|e\\(lse\\|nd\\(case\\|else\\|for\\|if\\|rep\\|switch\\|while\\)?\\|q\\)\\|for\\(ward_function\\)?\\|g\\(oto\\|[et]\\)\\|i\\(f\\|nherits\\)\\|l[et]\\|mod\\|n\\(e\\|ot\\)\\|o\\(n_\\(error\\|ioerror\\)\\|[fr]\\)\\|re\\(peat\\|turn\\)\\|switch\\|then\\|until\\|while\\|xor\\|||\\)\\>"
("^[ ]*\\([a-zA-Z]\\sw*:\\)"
(1 font-lock-constant-face))
("\\(goto\\)[ ]*,[ ]*\\([a-zA-Z]\\sw*\\)"
(1 font-lock-keyword-face)
(2 font-lock-constant-face))
("\\<\\(common\\)\\>[ ]*\\(\\sw+\\)?[ ]*,?"
(1 font-lock-keyword-face)
(2 font-lock-constant-face nil t)
("[ ]*\\(\\sw+\\)[ ,]*" nil nil
(1 font-lock-variable-name-face)))
(idlwave-match-class-arrows
(0 idlwave-class-arrow-face)))
Documentation
Medium level highlighting for IDLWAVE mode.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/idlwave.el.gz
(idlwave--dlet
(;; Procedure declarations. Fontify keyword plus procedure name.
;; Function declarations. Fontify keyword plus function name.
(pros-and-functions
'("\\<\\(function\\|pro\\)\\>[ \t]+\\(\\sw+\\(::\\sw+\\)?\\)"
(1 font-lock-keyword-face)
(2 font-lock-function-name-face nil t)))
;; Common blocks
(common-blocks
'("\\<\\(common\\)\\>[ \t]*\\(\\sw+\\)?[ \t]*,?"
(1 font-lock-keyword-face) ; "common"
(2 font-lock-constant-face nil t) ; block name
("[ \t]*\\(\\sw+\\)[ ,]*"
;; Start with point after block name and comma
nil nil (1 font-lock-variable-name-face)))) ; variable names
;; Batch files
(batch-files
'("^[ \t]*\\(@[^ \t\n]+\\)" (1 font-lock-string-face)))
;; Labels
(label
'("^[ \t]*\\([a-zA-Z]\\sw*:\\)" (1 font-lock-constant-face)))
;; The goto statement and its label
(goto
'("\\(goto\\)[ \t]*,[ \t]*\\([a-zA-Z]\\sw*\\)"
(1 font-lock-keyword-face)
(2 font-lock-constant-face)))
;; Tags in structure definitions. Note that this definition
;; actually collides with labels, so we have to use the same
;; face. It also matches named subscript ranges,
;; e.g. vec{bottom:top]. No good way around this.
(structtag
'("\\<\\([a-zA-Z][a-zA-Z0-9_]*:\\)[^:]" (1 font-lock-constant-face)))
;; Structure names
(structname
'("\\({\\|\\<inherits\\s-\\)\\s-*\\([a-zA-Z][a-zA-Z0-9_]*\\)[},\t \n]"
(2 font-lock-function-name-face)))
;; Keyword parameters, like /xlog or ,xrange=[]
;; This is anchored to the comma preceding the keyword.
;; Treats continuation lines, works only during whole buffer
;; fontification. Slow, use it only in fancy fontification.
(keyword-parameters
'("\\(,\\|[a-zA-Z0-9_](\\)[ \t]*\\(\\$[ \t]*\\(;.*\\)?\n\\([ \t]*\\(;.*\\)?\n\\)*[ \t]*\\)?\\(/[a-zA-Z_]\\sw*\\|[a-zA-Z_]\\sw*[ \t]*=\\)"
(6 font-lock-constant-face)))
;; System variables start with a bang.
(system-variables
'("\\(![a-zA-Z_0-9]+\\(\\.\\sw+\\)?\\)"
(1 font-lock-variable-name-face)))
;; Special and unusual operators (not used because too noisy)
;; (special-operators
;; '("[<>#]" (0 font-lock-keyword-face)))
;; All operators (not used because too noisy)
;; (all-operators
;; '("[-*^#+<>/]" (0 font-lock-keyword-face)))
;; Arrows with text property `idlwave-class'
(class-arrows
'(idlwave-match-class-arrows (0 idlwave-class-arrow-face))))
(defconst idlwave-font-lock-keywords-1
(list pros-and-functions batch-files)
"Subdued level highlighting for IDLWAVE mode.")
(defconst idlwave-font-lock-keywords-2
(mapcar #'symbol-value idlwave-default-font-lock-items)
"Medium level highlighting for IDLWAVE mode.")
(defconst idlwave-font-lock-keywords-3
(list pros-and-functions
batch-files
idlwave-idl-keywords
label goto
structtag
structname
common-blocks
keyword-parameters
system-variables
class-arrows)
"Gaudy level highlighting for IDLWAVE mode."))