From 8ab8545af0dc13d6e90d62063777f90c53bea911 Mon Sep 17 00:00:00 2001 From: Randy Taylor Date: Fri, 28 Oct 2022 22:39:50 -0400 Subject: [PATCH] Add more font-lock faces * lisp/font-lock.el (font-lock-escape-face, font-lock-number-face, font-lock-operator-face, font-lock-property-face, font-lock-punctuation-face): Define new faces. * lisp/cus-theme.el (custom-theme--listed-faces): Add them to the list. * doc/lispref/modes.texi (Faces for Font Lock): Document them. * etc/NEWS: Mention them. --- doc/lispref/modes.texi | 40 +++++++++++++++++++++++++++++++++++++ etc/NEWS | 5 +++++ lisp/cus-theme.el | 7 +++++-- lisp/font-lock.el | 45 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 95 insertions(+), 2 deletions(-) diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index d778636d6d..d996446189 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi @@ -3653,6 +3653,46 @@ Faces for Font Lock @item font-lock-negation-char-face @vindex font-lock-negation-char-face for easily-overlooked negation characters. + +@item font-lock-escape-face +@vindex font-lock-escape-face +for escape sequences in strings. + +@item font-lock-number-face +@vindex font-lock-number-face +for numbers. + +@item font-lock-operator-face +@vindex font-lock-operator-face +for operators. + +@item font-lock-property-face +@vindex font-lock-property-face +for properties of an object, such as the declaration and use of fields +in a struct. +This face inherits, by default, from @code{font-lock-variable-name-face}. + +For example, + +@smallexample +typedef struct +@{ + int prop; +// ^ property +@} obj; + +int main() +@{ + obj o; + o.prop = 3; +// ^ property +@} +@end smallexample + +@item font-lock-punctuation-face +@vindex font-lock-punctuation-face +for punctuation such as delimiters (e.g. @code{;}, @code{:}, @code{,}) +and brackets (e.g. @code{()}, @code{[]}, @code{@{@}}). @end table @node Syntactic Font Lock diff --git a/etc/NEWS b/etc/NEWS index c5a142b500..b1e342eff6 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -732,6 +732,11 @@ If the current buffer is visiting a file that is executable, the This determines how long to pause Emacs after a process filter/sentinel error has been handled. ++++ +** New faces for font-lock. +'font-lock-escape-face', 'font-lock-number-face', 'font-lock-operator-face', +'font-lock-property-face', 'font-lock-punctuation-face'. + +++ ** New face 'variable-pitch-text'. This face is like 'variable-pitch' (from which it inherits), but is diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el index 90680ff68f..a977d6834c 100644 --- a/lisp/cus-theme.el +++ b/lisp/cus-theme.el @@ -68,9 +68,12 @@ custom-theme--listed-faces shadow secondary-selection trailing-whitespace font-lock-builtin-face font-lock-comment-delimiter-face font-lock-comment-face font-lock-constant-face - font-lock-doc-face font-lock-doc-markup-face font-lock-function-name-face + font-lock-doc-face font-lock-doc-markup-face + font-lock-escape-face font-lock-function-name-face font-lock-keyword-face font-lock-negation-char-face - font-lock-preprocessor-face font-lock-regexp-grouping-backslash + font-lock-number-face font-lock-operator-face + font-lock-preprocessor-face font-lock-property-face + font-lock-punctuation-face font-lock-regexp-grouping-backslash font-lock-regexp-grouping-construct font-lock-string-face font-lock-type-face font-lock-variable-name-face font-lock-warning-face button link link-visited fringe diff --git a/lisp/font-lock.el b/lisp/font-lock.el index e88dc1d3b7..3870a512bc 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -359,6 +359,21 @@ font-lock-negation-char-face (defvar font-lock-preprocessor-face 'font-lock-preprocessor-face "Face name to use for preprocessor directives.") +(defvar font-lock-escape-face 'font-lock-escape-face + "Face name to use for escape sequences in strings.") + +(defvar font-lock-number-face 'font-lock-number-face + "Face name to use for numbers.") + +(defvar font-lock-operator-face 'font-lock-operator-face + "Face name to use for operators.") + +(defvar font-lock-property-face 'font-lock-property-face + "Face name to use for properties.") + +(defvar font-lock-punctuation-face 'font-lock-punctuation-face + "Face name to use for punctuation.") + ;; Fontification variables: (defvar font-lock-keywords nil @@ -2085,6 +2100,36 @@ font-lock-preprocessor-face "Font Lock mode face used to highlight preprocessor directives." :group 'font-lock-faces) +(defface font-lock-escape-face + '((t nil)) + "Font Lock mode face used to highlight escape sequences in strings." + :group 'font-lock-faces + :version "29.1") + +(defface font-lock-number-face + '((t nil)) + "Font Lock mode face used to highlight numbers." + :group 'font-lock-faces + :version "29.1") + +(defface font-lock-operator-face + '((t nil)) + "Font Lock mode face used to highlight operators." + :group 'font-lock-faces + :version "29.1") + +(defface font-lock-property-face + '((t :inherit font-lock-variable-name-face)) + "Font Lock mode face used to highlight properties." + :group 'font-lock-faces + :version "29.1") + +(defface font-lock-punctuation-face + '((t nil)) + "Font Lock mode face used to highlight punctuation." + :group 'font-lock-faces + :version "29.1") + (defface font-lock-regexp-grouping-backslash '((t :inherit bold)) "Font Lock mode face for backslashes in Lisp regexp grouping constructs." -- 2.38.1