On Wednesday, April 26th, 2023 at 09:44, Jimmy Wong <wyuenho@gmail.com> wrote:
There hasn’t been any new releases since then, should emacs rely on devel packages?
On 26 Apr 2023 at 2:37 PM +0100, Eli Zaretskii <eliz@gnu.org>, wrote:
Date: Wed, 26 Apr 2023 14:26:09 +0100
From: Jimmy Wong <wyuenho@gmail.com>
Cc: Yuan Fu <casouri@gmail.com>, Eli Zaretskii <eliz@gnu.org>,
63086@debbugs.gnu.org
I’m using tree-sitter-go 0.19.1 from Macports.
That version was released 2 years ago. Maybe go-ts-mode.el relies on
some newer functionality, or on some bug that was fixed since then?
tree-sitter-go and a bunch of other grammars have dropped the ball of versioning, I think (some don't even try to version properly...). Since then there have plenty of changes, but it's stayed at the same version with no new tags. Anything packaging based on the tags of those repositories is going to be wildly out of date.
You can try using `M-x treesit-install-language-grammar` to install the go grammar, which will get the latest and greatest.
If I had to guess what triggers the error, it's probably the (iota) match which seems to have been added Jan 5, 2022. You can try removing that from go-ts-mode and seeing if it fixes the issue for you (although maybe that will fix the current problem but reveal a bunch more...all of which will be easily resolved by using a more up to date grammar). I'll try to get that old version installed myself and see.
I think java-ts-mode and some others have a helper that checks which queries are supported by testing them, I can make a patch for that if that's the direction we want to go.
I can reproduce this with the latest tagged tree-sitter-go version (v0.19.1 released on on Mar 3, 2021). I've attached a patch fixing it (i.e. go-ts-mode now runs and highlights), if we decide to support those older versions. Hopefully I didn't commit any elisp sins.
Please give it a try if you can, Jimmy. I still recommend that you upgrade to the latest tree-sitter-go (i.e. from the tip of the develop branch) yourself because v0.19.1 has other problems (some valid code can be highlighted as error if using the highest treesit-font-lock-level). And I would recommend that for all of the tree-sitter grammars.