Eli Zaretskii writes: >> Date: Mon, 23 Jan 2023 22:08:27 +0100 >> From: Theodor Thornhill >> CC: bug-gnu-emacs@gnu.org >> >> >> >> On 23 January 2023 20:59:14 CET, Eli Zaretskii wrote: >> >> From: Yuan Fu >> >> Date: Mon, 23 Jan 2023 11:37:24 -0800 >> >> Cc: Eli Zaretskii , >> >> Bug Report Emacs >> >> >> >> 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