unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#65113: Emacs-29 and master csharp-mode with broken treesit
@ 2023-08-06 15:03 J M
  2023-08-06 15:36 ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: J M @ 2023-08-06 15:03 UTC (permalink / raw)
  To: 65113

[-- Attachment #1: Type: text/plain, Size: 341 bytes --]

Hi all

Treesit is broken for csharp-mode in the latest version in master and emacs-29 and therefore does not provide syntax highlighting. 

The latest grammar repository (https://github.com/tree-sitter/tree-sitter-c-sharp) has removed the keyword void_keyword.

Please see attached the patch to resolve the issue.

Thanks
Jean M

[-- Attachment #2.1: Type: text/html, Size: 369 bytes --]

[-- Attachment #2.2: treesit_void_keyword_removed_from_grammar.patch --]
[-- Type: application/octet-stream, Size: 629 bytes --]

diff --git a/lisp/progmodes/csharp-mode.el b/lisp/progmodes/csharp-mode.el
index 00587a8a515..1a753cb309b 100644
--- a/lisp/progmodes/csharp-mode.el
+++ b/lisp/progmodes/csharp-mode.el
@@ -844,7 +844,7 @@ csharp-ts-mode--font-lock-settings
 
      (constructor_declaration name: (_) @font-lock-type-face)
 
-     (method_declaration type: [(identifier) (void_keyword)] @font-lock-type-face)
+     (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)
 

[-- Attachment #2.3: Type: text/html, Size: 554 bytes --]

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* bug#65113: Emacs-29 and master csharp-mode with broken treesit
  2023-08-06 15:03 bug#65113: Emacs-29 and master csharp-mode with broken treesit J M
@ 2023-08-06 15:36 ` Eli Zaretskii
  2023-08-07  5:46   ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2023-08-06 15:36 UTC (permalink / raw)
  To: J M, Theodor Thornhill, Yuan Fu; +Cc: 65113

> From: J M <jean@tbm.email>
> Date: Sun, 6 Aug 2023 16:03:45 +0100
> 
> Treesit is broken for csharp-mode in the latest version in master and emacs-29 and therefore does not provide syntax highlighting. 
> 
> The latest grammar repository (https://github.com/tree-sitter/tree-sitter-c-sharp) has removed the keyword void_keyword.
> 
> Please see attached the patch to resolve the issue.

Thanks, but your patch will not work with the older version of the
grammar library, right?  Is it possible to make a patch that will work
with both?  Wed cannot rely on users having the latest grammar
versions, so a backward-compatible change is much more preferable.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#65113: Emacs-29 and master csharp-mode with broken treesit
  2023-08-06 15:36 ` Eli Zaretskii
@ 2023-08-07  5:46   ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-08-10  9:05     ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-08-07  5:46 UTC (permalink / raw)
  To: Eli Zaretskii, J M, Yuan Fu; +Cc: 65113



On 6 August 2023 17:36:47 CEST, Eli Zaretskii <eliz@gnu.org> wrote:
>> From: J M <jean@tbm.email>
>> Date: Sun, 6 Aug 2023 16:03:45 +0100
>> 
>> Treesit is broken for csharp-mode in the latest version in master and emacs-29 and therefore does not provide syntax highlighting. 
>> 
>> The latest grammar repository (https://github.com/tree-sitter/tree-sitter-c-sharp) has removed the keyword void_keyword.
>> 
>> Please see attached the patch to resolve the issue.
>
>Thanks, but your patch will not work with the older version of the
>grammar library, right?  Is it possible to make a patch that will work
>with both?  Wed cannot rely on users having the latest grammar
>versions, so a backward-compatible change is much more preferable.

We've had some similar patches lately that you can use for inspiration.

Thanks,
Theo





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#65113: Emacs-29 and master csharp-mode with broken treesit
  2023-08-07  5:46   ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-08-10  9:05     ` Eli Zaretskii
  2023-08-10 22:42       ` J M
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2023-08-10  9:05 UTC (permalink / raw)
  To: jean, Theodor Thornhill; +Cc: casouri, 65113

> Date: Mon, 07 Aug 2023 07:46:05 +0200
> From: Theodor Thornhill <theo@thornhill.no>
> CC: 65113@debbugs.gnu.org

Ping!  Can we please have a patch that is backward-compatible?

> On 6 August 2023 17:36:47 CEST, Eli Zaretskii <eliz@gnu.org> wrote:
> >> From: J M <jean@tbm.email>
> >> Date: Sun, 6 Aug 2023 16:03:45 +0100
> >> 
> >> Treesit is broken for csharp-mode in the latest version in master and emacs-29 and therefore does not provide syntax highlighting. 
> >> 
> >> The latest grammar repository (https://github.com/tree-sitter/tree-sitter-c-sharp) has removed the keyword void_keyword.
> >> 
> >> Please see attached the patch to resolve the issue.
> >
> >Thanks, but your patch will not work with the older version of the
> >grammar library, right?  Is it possible to make a patch that will work
> >with both?  Wed cannot rely on users having the latest grammar
> >versions, so a backward-compatible change is much more preferable.
> 
> We've had some similar patches lately that you can use for inspiration.
> 
> Thanks,
> Theo
> 





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#65113: Emacs-29 and master csharp-mode with broken treesit
  2023-08-10  9:05     ` Eli Zaretskii
@ 2023-08-10 22:42       ` J M
  2023-08-11  5:57         ` Eli Zaretskii
  2023-08-12  7:27         ` Eli Zaretskii
  0 siblings, 2 replies; 7+ messages in thread
From: J M @ 2023-08-10 22:42 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: casouri, 65113, Theodor Thornhill

[-- Attachment #1: Type: text/plain, Size: 64 bytes --]

Hi Eli

See attached the requested backward-compatible change.


[-- Attachment #2: 0001-Update-csharp-treesit-support-due-to-upstream-change.patch --]
[-- Type: application/octet-stream, Size: 1975 bytes --]

From ca9ad7d0738e71775bdc1d83f7aa5a2849ba5a8b Mon Sep 17 00:00:00 2001
From: J M <jean@tbm.email>
Date: Thu, 10 Aug 2023 23:23:20 +0100
Subject: [PATCH] Update csharp treesit support due to upstream changes
 (bug#65113)

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 | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/lisp/progmodes/csharp-mode.el b/lisp/progmodes/csharp-mode.el
index 00587a8a515..74968f3a06a 100644
--- a/lisp/progmodes/csharp-mode.el
+++ b/lisp/progmodes/csharp-mode.el
@@ -816,7 +816,7 @@ csharp-ts-mode--font-lock-settings
    :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 @@ csharp-ts-mode--font-lock-settings
      (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)
 
-- 


[-- Attachment #3: Type: text/plain, Size: 1172 bytes --]




> On 10 Aug 2023, at 10:05, Eli Zaretskii <eliz@gnu.org> wrote:
> 
>> Date: Mon, 07 Aug 2023 07:46:05 +0200
>> From: Theodor Thornhill <theo@thornhill.no>
>> CC: 65113@debbugs.gnu.org
> 
> Ping!  Can we please have a patch that is backward-compatible?
> 
>> On 6 August 2023 17:36:47 CEST, Eli Zaretskii <eliz@gnu.org> wrote:
>>>> From: J M <jean@tbm.email>
>>>> Date: Sun, 6 Aug 2023 16:03:45 +0100
>>>> 
>>>> Treesit is broken for csharp-mode in the latest version in master and emacs-29 and therefore does not provide syntax highlighting. 
>>>> 
>>>> The latest grammar repository (https://github.com/tree-sitter/tree-sitter-c-sharp) has removed the keyword void_keyword.
>>>> 
>>>> Please see attached the patch to resolve the issue.
>>> 
>>> Thanks, but your patch will not work with the older version of the
>>> grammar library, right?  Is it possible to make a patch that will work
>>> with both?  Wed cannot rely on users having the latest grammar
>>> versions, so a backward-compatible change is much more preferable.
>> 
>> We've had some similar patches lately that you can use for inspiration.
>> 
>> Thanks,
>> Theo
>> 


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* bug#65113: Emacs-29 and master csharp-mode with broken treesit
  2023-08-10 22:42       ` J M
@ 2023-08-11  5:57         ` Eli Zaretskii
  2023-08-12  7:27         ` Eli Zaretskii
  1 sibling, 0 replies; 7+ messages in thread
From: Eli Zaretskii @ 2023-08-11  5:57 UTC (permalink / raw)
  To: J M; +Cc: casouri, 65113, theo

> From: J M <jean@tbm.email>
> Date: Thu, 10 Aug 2023 23:42:22 +0100
> Cc: Theodor Thornhill <theo@thornhill.no>,
>  casouri@gmail.com,
>  65113@debbugs.gnu.org
> 
> See attached the requested backward-compatible change.

Thank you!  Should we perhaps swap the order, and query first about
the newer type, so as to make the code a bit faster when used with the
latest grammar?





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#65113: Emacs-29 and master csharp-mode with broken treesit
  2023-08-10 22:42       ` J M
  2023-08-11  5:57         ` Eli Zaretskii
@ 2023-08-12  7:27         ` Eli Zaretskii
  1 sibling, 0 replies; 7+ messages in thread
From: Eli Zaretskii @ 2023-08-12  7:27 UTC (permalink / raw)
  To: J M; +Cc: casouri, theo, 65113-done

> From: J M <jean@tbm.email>
> Date: Thu, 10 Aug 2023 23:42:22 +0100
> Cc: Theodor Thornhill <theo@thornhill.no>,
>  casouri@gmail.com,
>  65113@debbugs.gnu.org
> 
> See attached the requested backward-compatible change.

Thanks, installed on the emacs-29 branch, and closing the bug.

Please in the future accompany your changes with a ChangeLog-style
description of files and functions where you make changes (I did it
this time for you).





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-08-12  7:27 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-06 15:03 bug#65113: Emacs-29 and master csharp-mode with broken treesit J M
2023-08-06 15:36 ` Eli Zaretskii
2023-08-07  5:46   ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-10  9:05     ` Eli Zaretskii
2023-08-10 22:42       ` J M
2023-08-11  5:57         ` Eli Zaretskii
2023-08-12  7:27         ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).