(lisp-font-lock-keywords-1): Set `font-lock-negation-char-face' for [^...] char group.
(lisp-font-lock-keywords-2): Highlight regexp's \\( \\| \\).
This commit is contained in:
parent
92984345bc
commit
71994ae7da
2 changed files with 117 additions and 94 deletions
|
@ -1,3 +1,29 @@
|
|||
2005-05-16 Daniel Pfeiffer <occitan@esperanto.org>
|
||||
|
||||
* font-lock.el (lisp-font-lock-keywords-1): Set
|
||||
`font-lock-negation-char-face' for [^...] char group.
|
||||
(lisp-font-lock-keywords-2): Highlight regexp's \\( \\| \\).
|
||||
|
||||
* progmodes/make-mode.el (makefile-dependency-regex): Turn it into
|
||||
a var, and refine it to mask one more level of nested vars.
|
||||
(makefile-rule-action-regex): Turn it into a var, and refine it so
|
||||
it recognizes backslashed continuation lines as belonging to the
|
||||
same command.
|
||||
(makefile-macroassign-regex): Refine it so it recognizes
|
||||
backslashed continuation lines as belonging to the same command.
|
||||
(makefile-var-use-regex): Don't look at the next char, because it
|
||||
might be the same one to be skipped by the initial [^$], leading
|
||||
to an overlooked variable use.
|
||||
(makefile-make-font-lock-keywords): Remove two parameters, which
|
||||
are now variables that some of the modes set locally. Handle
|
||||
dependency and rule action matching through functions, because
|
||||
regexps alone match too often. Dependency matching now comes
|
||||
last, so it can check, whether a colon already matched something
|
||||
else.
|
||||
(makefile-mode): Inform that font-lock improves makefile parsing
|
||||
capabilities.
|
||||
(makefile-match-dependency, makefile-match-action): New functions.
|
||||
|
||||
2005-05-16 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* emacs-lisp/cl-extra.el (equalp): Doc fix.
|
||||
|
|
|
@ -1967,109 +1967,106 @@ This function could be MATCHER in a MATCH-ANCHORED `font-lock-keywords' item."
|
|||
|
||||
(defconst lisp-font-lock-keywords-1
|
||||
(eval-when-compile
|
||||
(list
|
||||
;;
|
||||
;; Definitions.
|
||||
(list (concat "(\\(def\\("
|
||||
;; Function declarations.
|
||||
"\\(advice\\|varalias\\|alias\\|generic\\|macro\\*?\\|method\\|"
|
||||
"setf\\|subst\\*?\\|un\\*?\\|"
|
||||
"ine-\\(condition\\|\\(?:derived\\|minor\\|generic\\)-mode\\|"
|
||||
"method-combination\\|setf-expander\\|skeleton\\|widget\\|"
|
||||
"function\\|\\(compiler\\|modify\\|symbol\\)-macro\\)\\)\\|"
|
||||
;; Variable declarations.
|
||||
"\\(const\\(ant\\)?\\|custom\\|face\\|parameter\\|var\\)\\|"
|
||||
;; Structure declarations.
|
||||
"\\(class\\|group\\|theme\\|package\\|struct\\|type\\)"
|
||||
"\\)\\)\\>"
|
||||
;; Any whitespace and defined object.
|
||||
"[ \t'\(]*"
|
||||
"\\(setf[ \t]+\\sw+)\\|\\sw+\\)?")
|
||||
'(1 font-lock-keyword-face)
|
||||
'(9 (cond ((match-beginning 3) font-lock-function-name-face)
|
||||
((match-beginning 6) font-lock-variable-name-face)
|
||||
(t font-lock-type-face))
|
||||
nil t))
|
||||
;;
|
||||
;; Emacs Lisp autoload cookies.
|
||||
'("^;;;###\\(autoload\\)" 1 font-lock-warning-face prepend)
|
||||
))
|
||||
`(;; Definitions.
|
||||
(,(concat "(\\(def\\("
|
||||
;; Function declarations.
|
||||
"\\(advice\\|varalias\\|alias\\|generic\\|macro\\*?\\|method\\|"
|
||||
"setf\\|subst\\*?\\|un\\*?\\|"
|
||||
"ine-\\(condition\\|\\(?:derived\\|minor\\|generic\\)-mode\\|"
|
||||
"method-combination\\|setf-expander\\|skeleton\\|widget\\|"
|
||||
"function\\|\\(compiler\\|modify\\|symbol\\)-macro\\)\\)\\|"
|
||||
;; Variable declarations.
|
||||
"\\(const\\(ant\\)?\\|custom\\|face\\|parameter\\|var\\)\\|"
|
||||
;; Structure declarations.
|
||||
"\\(class\\|group\\|theme\\|package\\|struct\\|type\\)"
|
||||
"\\)\\)\\>"
|
||||
;; Any whitespace and defined object.
|
||||
"[ \t'\(]*"
|
||||
"\\(setf[ \t]+\\sw+)\\|\\sw+\\)?")
|
||||
(1 font-lock-keyword-face)
|
||||
(9 (cond ((match-beginning 3) font-lock-function-name-face)
|
||||
((match-beginning 6) font-lock-variable-name-face)
|
||||
(t font-lock-type-face))
|
||||
nil t))
|
||||
;; Emacs Lisp autoload cookies.
|
||||
("^;;;###\\(autoload\\)" 1 font-lock-warning-face prepend)
|
||||
;; Regexp negated char group.
|
||||
("\\[\\(\\^\\)" 1 font-lock-negation-char-face prepend)))
|
||||
"Subdued level highlighting for Lisp modes.")
|
||||
|
||||
(defconst lisp-font-lock-keywords-2
|
||||
(append lisp-font-lock-keywords-1
|
||||
(eval-when-compile
|
||||
(list
|
||||
;;
|
||||
;; Control structures. Emacs Lisp forms.
|
||||
(cons (concat
|
||||
"(" (regexp-opt
|
||||
'("cond" "if" "while" "let" "let*"
|
||||
"prog" "progn" "progv" "prog1" "prog2" "prog*"
|
||||
"inline" "lambda" "save-restriction" "save-excursion"
|
||||
"save-window-excursion" "save-selected-window"
|
||||
"save-match-data" "save-current-buffer" "unwind-protect"
|
||||
"condition-case" "track-mouse"
|
||||
"eval-after-load" "eval-and-compile" "eval-when-compile"
|
||||
"eval-when"
|
||||
"with-category-table"
|
||||
"with-current-buffer" "with-electric-help"
|
||||
"with-local-quit" "with-no-warnings"
|
||||
"with-output-to-string" "with-output-to-temp-buffer"
|
||||
"with-selected-window" "with-syntax-table"
|
||||
"with-temp-buffer" "with-temp-file" "with-temp-message"
|
||||
"with-timeout" "with-timeout-handler") t)
|
||||
"\\>")
|
||||
1)
|
||||
;;
|
||||
;; Control structures. Common Lisp forms.
|
||||
(cons (concat
|
||||
"(" (regexp-opt
|
||||
'("when" "unless" "case" "ecase" "typecase" "etypecase"
|
||||
"ccase" "ctypecase" "handler-case" "handler-bind"
|
||||
"restart-bind" "restart-case" "in-package"
|
||||
"break" "ignore-errors"
|
||||
"loop" "do" "do*" "dotimes" "dolist" "the" "locally"
|
||||
"proclaim" "declaim" "declare" "symbol-macrolet"
|
||||
"lexical-let" "lexical-let*" "flet" "labels" "compiler-let"
|
||||
"destructuring-bind" "macrolet" "tagbody" "block" "go"
|
||||
"multiple-value-bind" "multiple-value-prog1"
|
||||
"return" "return-from"
|
||||
"with-accessors" "with-compilation-unit"
|
||||
"with-condition-restarts" "with-hash-table-iterator"
|
||||
"with-input-from-string" "with-open-file"
|
||||
"with-open-stream" "with-output-to-string"
|
||||
"with-package-iterator" "with-simple-restart"
|
||||
"with-slots" "with-standard-io-syntax") t)
|
||||
"\\>")
|
||||
1)
|
||||
;;
|
||||
;; Exit/Feature symbols as constants.
|
||||
(list (concat "(\\(catch\\|throw\\|featurep\\|provide\\|require\\)\\>"
|
||||
"[ \t']*\\(\\sw+\\)?")
|
||||
'(1 font-lock-keyword-face)
|
||||
'(2 font-lock-constant-face nil t))
|
||||
;;
|
||||
;; Erroneous structures.
|
||||
'("(\\(abort\\|assert\\|warn\\|check-type\\|cerror\\|error\\|signal\\)\\>" 1 font-lock-warning-face)
|
||||
;;
|
||||
;; Words inside \\[] tend to be for `substitute-command-keys'.
|
||||
'("\\\\\\\\\\[\\(\\sw+\\)]" 1 font-lock-constant-face prepend)
|
||||
;;
|
||||
;; Words inside `' tend to be symbol names.
|
||||
'("`\\(\\sw\\sw+\\)'" 1 font-lock-constant-face prepend)
|
||||
;;
|
||||
;; Constant values.
|
||||
'("\\<:\\sw+\\>" 0 font-lock-builtin-face)
|
||||
;;
|
||||
;; ELisp and CLisp `&' keywords as types.
|
||||
'("\\&\\sw+\\>" . font-lock-type-face)
|
||||
;;
|
||||
`(;; Control structures. Emacs Lisp forms.
|
||||
(,(concat
|
||||
"(" (regexp-opt
|
||||
'("cond" "if" "while" "let" "let*"
|
||||
"prog" "progn" "progv" "prog1" "prog2" "prog*"
|
||||
"inline" "lambda" "save-restriction" "save-excursion"
|
||||
"save-window-excursion" "save-selected-window"
|
||||
"save-match-data" "save-current-buffer" "unwind-protect"
|
||||
"condition-case" "track-mouse"
|
||||
"eval-after-load" "eval-and-compile" "eval-when-compile"
|
||||
"eval-when"
|
||||
"with-category-table"
|
||||
"with-current-buffer" "with-electric-help"
|
||||
"with-local-quit" "with-no-warnings"
|
||||
"with-output-to-string" "with-output-to-temp-buffer"
|
||||
"with-selected-window" "with-syntax-table"
|
||||
"with-temp-buffer" "with-temp-file" "with-temp-message"
|
||||
"with-timeout" "with-timeout-handler") t)
|
||||
"\\>")
|
||||
. 1)
|
||||
;; Control structures. Common Lisp forms.
|
||||
(,(concat
|
||||
"(" (regexp-opt
|
||||
'("when" "unless" "case" "ecase" "typecase" "etypecase"
|
||||
"ccase" "ctypecase" "handler-case" "handler-bind"
|
||||
"restart-bind" "restart-case" "in-package"
|
||||
"break" "ignore-errors"
|
||||
"loop" "do" "do*" "dotimes" "dolist" "the" "locally"
|
||||
"proclaim" "declaim" "declare" "symbol-macrolet"
|
||||
"lexical-let" "lexical-let*" "flet" "labels" "compiler-let"
|
||||
"destructuring-bind" "macrolet" "tagbody" "block" "go"
|
||||
"multiple-value-bind" "multiple-value-prog1"
|
||||
"return" "return-from"
|
||||
"with-accessors" "with-compilation-unit"
|
||||
"with-condition-restarts" "with-hash-table-iterator"
|
||||
"with-input-from-string" "with-open-file"
|
||||
"with-open-stream" "with-output-to-string"
|
||||
"with-package-iterator" "with-simple-restart"
|
||||
"with-slots" "with-standard-io-syntax") t)
|
||||
"\\>")
|
||||
. 1)
|
||||
;; Exit/Feature symbols as constants.
|
||||
(,(concat "(\\(catch\\|throw\\|featurep\\|provide\\|require\\)\\>"
|
||||
"[ \t']*\\(\\sw+\\)?")
|
||||
(1 font-lock-keyword-face)
|
||||
(2 font-lock-constant-face nil t))
|
||||
;; Erroneous structures.
|
||||
("(\\(abort\\|assert\\|warn\\|check-type\\|cerror\\|error\\|signal\\)\\>" 1 font-lock-warning-face)
|
||||
;; Words inside \\[] tend to be for `substitute-command-keys'.
|
||||
("\\\\\\\\\\[\\(\\sw+\\)]" 1 font-lock-constant-face prepend)
|
||||
;; Words inside `' tend to be symbol names.
|
||||
("`\\(\\sw\\sw+\\)'" 1 font-lock-constant-face prepend)
|
||||
;; Constant values.
|
||||
("\\<:\\sw+\\>" 0 font-lock-builtin-face)
|
||||
;; ELisp and CLisp `&' keywords as types.
|
||||
("\\&\\sw+\\>" . font-lock-type-face)
|
||||
;; Make regexp grouping constructs bold, so they stand out.
|
||||
("\\([\\][\\]\\)\\([(|)]\\)\\(\\?:\\)?"
|
||||
(1 font-lock-comment-face prepend)
|
||||
(2 'bold prepend)
|
||||
(3 font-lock-type-face prepend t))
|
||||
;; Underline innermost grouping, so that you can more easily see what belongs together.
|
||||
;; 2005-05-12: Font-lock can go into an unbreakable endless loop on this -- something's broken.
|
||||
;;("[\\][\\][(]\\(?:\\?:\\)?\\(\\(?:[^\\\"]+\\|[\\]\\(?:[^\\]\\|[\\][^(]\\)\\)+?\\)[\\][\\][)]"
|
||||
;;1 'underline prepend)
|
||||
;;; This is too general -- rms.
|
||||
;;; A user complained that he has functions whose names start with `do'
|
||||
;;; and that they get the wrong color.
|
||||
;;; ;; CL `with-' and `do-' constructs
|
||||
;;; '("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face)
|
||||
;;; ("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face)
|
||||
)))
|
||||
"Gaudy level highlighting for Lisp modes.")
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue