diff options
author | Randy Taylor <dev@rjt.dev> | 2022-10-28 22:39:50 -0400 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2022-11-10 13:03:41 +0200 |
commit | e06953b02a0e7b26b33c511a22896d0db4e5d63d (patch) | |
tree | 19f62976d60e77ef66fa7168afc6e211b3b2fb4a | |
parent | 77cb95c851edc338c94cb35effdc8c9ffc64a461 (diff) | |
download | emacs-e06953b02a0e7b26b33c511a22896d0db4e5d63d.tar.gz |
Add more font-lock faces (Bug#58940)
* lisp/font-lock.el (font-lock-bracket-face, font-lock-delimiter-face,
font-lock-escape-face, font-lock-number-face,
font-lock-misc-punctuation-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.
-rw-r--r-- | doc/lispref/modes.texi | 65 | ||||
-rw-r--r-- | etc/NEWS | 8 | ||||
-rw-r--r-- | lisp/cus-theme.el | 16 | ||||
-rw-r--r-- | lisp/font-lock.el | 49 |
4 files changed, 132 insertions, 6 deletions
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index 973d183a729..f61848c9482 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi @@ -3653,6 +3653,71 @@ This face inherits, by default, from @code{font-lock-constant-face}. @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. +This face inherits, by default, from @code{font-lock-regexp-grouping-backslash}. + +Here is an example in Python, where the escape sequence @code{\n} is used: + +@smallexample +@group +print('Hello world!\n') +@end group +@end smallexample + +@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 +@group +typedef struct +@{ + int prop; +// ^ property +@} obj; + +int main() +@{ + obj o; + o.prop = 3; +// ^ property +@} +@end group +@end smallexample + +@item font-lock-punctuation-face +@vindex font-lock-punctuation-face +for punctuation such as brackets and delimiters. + +@item font-lock-bracket-face +@vindex font-lock-bracket-face +for brackets (e.g., @code{()}, @code{[]}, @code{@{@}}). +This face inherits, by default, from @code{font-lock-punctuation-face}. + +@item font-lock-delimiter-face +@vindex font-lock-delimiter-face +for delimiters (e.g., @code{;}, @code{:}, @code{,}). +This face inherits, by default, from @code{font-lock-punctuation-face}. + +@item font-lock-misc-punctuation-face +@vindex font-lock-misc-punctuation-face +for punctuation that is not a bracket or delimiter. +This face inherits, by default, from @code{font-lock-punctuation-face}. @end table @node Syntactic Font Lock @@ -733,6 +733,14 @@ This determines how long to pause Emacs after a process filter/sentinel error has been handled. +++ +** New faces for font-lock. +These faces are primarily meant for use with tree-sitter. They are: +'font-lock-bracket-face', 'font-lock-delimiter-face', +'font-lock-escape-face', 'font-lock-number-face', +'font-lock-misc-punctuation-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 slightly larger, which should help with the visual size differences diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el index 90680ff68f8..1df2ab8db7c 100644 --- a/lisp/cus-theme.el +++ b/lisp/cus-theme.el @@ -66,13 +66,17 @@ Do not call this mode function yourself. It is meant for internal use." variable-pitch escape-glyph homoglyph minibuffer-prompt highlight region 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-bracket-face font-lock-builtin-face + font-lock-comment-delimiter-face font-lock-comment-face + font-lock-constant-face font-lock-delimiter-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-regexp-grouping-construct font-lock-string-face - font-lock-type-face font-lock-variable-name-face + font-lock-number-face font-lock-misc-punctuation-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 header-line tooltip mode-line mode-line-buffer-id mode-line-emphasis mode-line-highlight mode-line-inactive diff --git a/lisp/font-lock.el b/lisp/font-lock.el index e88dc1d3b71..baeafecf162 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -2095,6 +2095,55 @@ as the constructs of Haddock, Javadoc and similar systems." "Font Lock mode face used to highlight grouping constructs in Lisp regexps." :group 'font-lock-faces) +(defface font-lock-escape-face + '((t :inherit font-lock-regexp-grouping-backslash)) + "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 of an object. +For example, the declaration and use of fields in a struct." + :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-bracket-face + '((t :inherit font-lock-punctuation-face)) + "Font Lock mode face used to highlight brackets." + :group 'font-lock-faces + :version "29.1") + +(defface font-lock-delimiter-face + '((t :inherit font-lock-punctuation-face)) + "Font Lock mode face used to highlight delimiters." + :group 'font-lock-faces + :version "29.1") + +(defface font-lock-misc-punctuation-face + '((t :inherit font-lock-punctuation-face)) + "Font Lock mode face used to highlight miscellaneous punctuation." + :group 'font-lock-faces + :version "29.1") + ;; End of Color etc. support. ;;; Menu support. |