1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-05 11:45:45 +00:00

Update csharp tree-sitter support due to upstream changes

A change in tree-sitter-c-sharp grammar for csharp (commit
18a531), has removed the keyword void_keyword and advised
we should use predefined_type.
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
Support both old and new style of keywords in tree-sitter-c-sharp
grammar.  (Bug#65113)
This commit is contained in:
J M 2023-08-10 23:23:20 +01:00 committed by Eli Zaretskii
parent 556cb01b48
commit 78999d5213

View File

@ -816,7 +816,7 @@ compilation and evaluation time conflicts."
:language 'c-sharp
:feature 'definition
:override t
'((qualified_name (identifier) @font-lock-type-face)
`((qualified_name (identifier) @font-lock-type-face)
(using_directive (identifier) @font-lock-type-face)
(using_directive (name_equals
(identifier) @font-lock-type-face))
@ -843,8 +843,13 @@ compilation and evaluation time conflicts."
(class_declaration (identifier) @font-lock-type-face)
(constructor_declaration name: (_) @font-lock-type-face)
(method_declaration type: [(identifier) (void_keyword)] @font-lock-type-face)
;;; Handle different releases of tree-sitter-c-sharp.
;;; Check if keyword void_keyword is available, then return the correct rule."
,@(condition-case nil
(progn (treesit-query-capture 'csharp '((void_keyword) @capture))
`((method_declaration type: [(identifier) (void_keyword)] @font-lock-type-face)))
(error
`((method_declaration type: [(identifier) (predefined_type)] @font-lock-type-face))))
(method_declaration type: (generic_name (identifier) @font-lock-type-face))
(method_declaration name: (_) @font-lock-function-name-face)