GNU bug report logs - #60983
29.0.60; Tree-sitter user-level control

Previous Next

Package: emacs;

Reported by: Eli Zaretskii <eliz <at> gnu.org>

Date: Sat, 21 Jan 2023 11:12:01 UTC

Severity: normal

Found in version 29.0.60

Full log


Message #35 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Theodor Thornhill <theo <at> thornhill.no>
To: Eli Zaretskii <eliz <at> gnu.org>, Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: casouri <at> gmail.com, bug-gnu-emacs <at> gnu.org
Subject: Re: 29.0.60; Tree-sitter user-level control
Date: Wed, 25 Jan 2023 21:12:53 +0100
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Date: Mon, 23 Jan 2023 22:08:27 +0100
>> From: Theodor Thornhill <theo <at> thornhill.no>
>> CC: bug-gnu-emacs <at> gnu.org
>> 
>> 
>> 
>> On 23 January 2023 20:59:14 CET, Eli Zaretskii <eliz <at> gnu.org> wrote:
>> >> From: Yuan Fu <casouri <at> gmail.com>
>> >> Date: Mon, 23 Jan 2023 11:37:24 -0800
>> >> Cc: Eli Zaretskii <eliz <at> gnu.org>,
>> >>  Bug Report Emacs <bug-gnu-emacs <at> gnu.org>
>> >> 
>> >> Sorry for the delay, overall I agree with your changes.
>> >
>> >Thanks.  What about the questions I asked regarding indentation
>> >features, and specifically about c-ts-mode-indent-style?
>> 
>> I am working on that, but I hit some issues where I cannot make treesit recognize the new settings before the whole treesit-major-mode-setup reruns. Just setting the symbol doesn't work, and reenabling the mode inside of the :set function isn't the best idea maybe?
>> 
>> I'd love some pointers to how other modes do similar stuff, but I didn't really find anything.
>
> Thanks, but can you add some details of what you are trying to do and
> what are the difficulties?
>
> Adding Stefan in case he has some advice.

Ok, I added a patch below.


try:

1. open some c buffer and make some edits, for example
```
void
main()
{
  if (x)
    {
    }
}
```

This should be the expected output when using the gnu style.

2. M-x c-ts-mode-set-style "bsd" RET

3. C-h o c-ts-mode-indent-style RET
  Observe variable has changed, but indenting the code does not.

4 C-h o treesit-simple-indent-rules RET
  Observe variable keeps old value

5. C-x x g

Now the bsd style takes effect, and the treesit-simple-indent-rules
variable has changed.

I'm sure the fix is easy, but I don't see it.  I purposely kept the
functions simple until I know what approach is best:)


Thanks,
Theo

[0001-Initial-c-ts-mode-set-style-attempt.patch (text/x-patch, attachment)]

This bug report was last modified 2 years and 192 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.