GNU bug report logs -
#75362
29.4; go-ts-mode.el: wrong indentation inside var list
Previous Next
Reported by: Roi Martin <jroi.martin <at> gmail.com>
Date: Sat, 4 Jan 2025 17:47:02 UTC
Severity: normal
Found in version 29.4
Done: Yuan Fu <casouri <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #28 received at 75362-done <at> debbugs.gnu.org (full text, mbox):
> On Jan 4, 2025, at 7:40 AM, Roi Martin <jroi.martin <at> gmail.com> wrote:
>
> When using the Go tree-sitter grammar v0.23.4 from
> https://github.com/tree-sitter/tree-sitter-go.git, indentation inside
> var lists does not work correctly.
>
> For instance, the following code is indented as:
>
> ```
> var (
> one = 1
> )
> ```
>
> Instead of:
>
> ```
> var (
> one = 1
> )
> ```
>
> Just in case it can help, I think this stopped working with grammar
> version `v0.21.1`, that introduced `var_spec_list`:
>
> https://github.com/tree-sitter/tree-sitter-go/compare/v0.21.0...v0.21.1
>
> Please, take it with a pinch of salt because I'm not very familiar with
> tree-sitter.
Thanks Roi, and especially thanks for finding the change in grammar!
The good news is, I just checked and it’s fixed in Emacs 30. Before then, something like this should fix it for you:
(add-hook 'go-ts-mode-hook #'fix-go-ts-mode-indentation)
(defun fix-go-ts-mode-indentation ()
(setf (alist-get 'go treesit-simple-indent-rules)
(append (alist-get 'go treesit-simple-indent-rules)
'(((parent-is "var_spec_list") parent-bol go-ts-mode-indent-offset)))))
Yuan
This bug report was last modified 207 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.