diff options
| author | Basil L. Contovounesios | 2025-10-13 16:19:42 +0200 |
|---|---|---|
| committer | Basil L. Contovounesios | 2026-02-22 17:10:17 +0100 |
| commit | d01a33662c2b4606ee35a44493e9fab73bdbe3b5 (patch) | |
| tree | 57c2f0c372ee0d9c9d8e6fdc27758c0be33987d5 /java | |
| parent | c8f7e909daac853b196eae8188177fd4b89cef96 (diff) | |
| download | emacs-d01a33662c2b4606ee35a44493e9fab73bdbe3b5.tar.gz emacs-d01a33662c2b4606ee35a44493e9fab73bdbe3b5.zip | |
Improve m4-mode font lock
Emacs 28 started fontifying several 'composite' (non-builtin) GNU M4
macros which, while listed under '(m4) Macro index', are not defined
by GNU M4, and are included in its manual for illustrative purposes.
These macro keywords range from clearly misleading (e.g., 'example',
which the GNU M4 manual explicitly describes as nonexistent),
to common in Autoconf's M4sugar layer (e.g., 'm4_quote'),
to variations thereof (e.g., 'foreachq').
It is arguably too late to revert all of these additions, so this
patch selects a handful to remove, and categorizes the rest; this
should make it easier to hide some categories behind a font lock
level or user option in the future, if desired.
This patch reverts the Emacs 28 addition of 'example', and removes
the older 'file', 'line', and 'gnu' macros. GNU M4 renamed 'gnu' to
'__gnu__' already in 1990; and I couldn't find references to the
other two which exist as '__file__' and '__line__', respectively.
The remaining macros are partitioned into three sets: built-in,
M4sugar-like, and other (bug#80412). For discussion, see also:
https://lists.gnu.org/r/emacs-devel/2025-10/msg00357.html
* lisp/progmodes/m4-mode.el (m4-program-options): Remove stale
commentary.
(m4--macro-list): Remove, replacing with...
(m4--builtin, m4--autoconf, m4--composite): ...these new rx
definitions. All uses changed. Remove 'example', 'file', 'gnu',
and 'line' as keywords.
(m4-font-lock-keywords): For consistency with real #-comments,
fontify dnl macro with font-lock-comment-delimiter-face, and only
the rest of its line with font-lock-comment-face. Fontify argument
references with font-lock-variable-use-face rather than
font-lock-variable-name-face. Use font lock faces rather than their
eponymous but obsolete variables. Remove redundant entries for $@
and $*. Prefer shy regexp groups where applicable.
(m4-mode-syntax-table): Quote syntactically special characters.
(m4-m4-buffer): DRY using m4-m4-region.
(m4-m4-region): Take region bounds as optional arguments, as
recommended under '(elisp) The Mark'. Quote shell command.
Support non-contiguous regions.
(m4-current-defun-name): Recognize m4 backtick in addition to
Autoconf bracket. Prefer shy regexp groups where applicable.
(m4-mode): Simplify font-lock-defaults.
* test/lisp/progmodes/m4-mode-resources/font-lock.m4:
* test/lisp/progmodes/m4-mode-tests.el: New test files.
Diffstat (limited to 'java')
0 files changed, 0 insertions, 0 deletions