]> git.eshelyaron.com Git - emacs.git/commitdiff
c-ts-mode: Highlight name in parameter declarations
authorDmitry Gutov <dgutov@yandex.ru>
Sat, 4 Feb 2023 20:46:41 +0000 (22:46 +0200)
committerDmitry Gutov <dgutov@yandex.ru>
Sat, 4 Feb 2023 20:47:08 +0000 (22:47 +0200)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings):
Uncomment parameter declaration highlighting (bug#61275).
(c-ts-mode--fontify-declarator): Check that identifier was found.
Some declarations can miss identifier name.

lisp/progmodes/c-ts-mode.el

index 390f67a8e8cf5fd3378c0d7f997146d42757ebd4..2a164af26ead08575a619cdec1d160b5dd19d223 100644 (file)
@@ -440,11 +440,10 @@ MODE is either `c' or `cpp'."
       declarator: (_) @c-ts-mode--fontify-declarator)
 
      (function_definition
-      declarator: (_) @c-ts-mode--fontify-declarator))
+      declarator: (_) @c-ts-mode--fontify-declarator)
 
-   ;; Should we highlight identifiers in the parameter list?
-   ;; (parameter_declaration
-   ;;  declarator: (_) @c-ts-mode--fontify-declarator))
+     (parameter_declaration
+      declarator: (_) @c-ts-mode--fontify-declarator))
 
    :language mode
    :feature 'assignment
@@ -552,9 +551,10 @@ For NODE, OVERRIDE, START, END, and ARGS, see
                                               identifier)))
                  ("function_declarator" 'font-lock-function-name-face)
                  (_ 'font-lock-variable-name-face))))
-    (treesit-fontify-with-override
-     (treesit-node-start identifier) (treesit-node-end identifier)
-     face override start end)))
+    (when identifier
+      (treesit-fontify-with-override
+       (treesit-node-start identifier) (treesit-node-end identifier)
+       face override start end))))
 
 (defun c-ts-mode--fontify-variable (node override start end &rest _)
   "Fontify an identifier node if it is a variable.