Subject: bug#67357: [PATCH] Fix c-ts-mode block indent when first-siblings are comments

From: Dmitry Gutov <[email-masked]>
Date: Thu, 23 Nov 2023 16:41:10 +0200

On 23/11/2023 16:33, Eli Zaretskii wrote:
>> Date: Thu, 23 Nov 2023 15:17:40 +0200
>> Cc: [email-masked]
>> From: Dmitry Gutov <[email-masked]>
>>
>> On 23/11/2023 09:35, Eli Zaretskii wrote:
>>> I'm not sure I can reproduce these, it seems to me that the
>>> indentation is correct in these case when I try the examples.  So
>>> please show a detailed recipe, starting from "emacs -Q", for each of
>>> the two problems, so that we could be sure that we are seeing the same
>>> problems.
>>
>> I can easily reproduce the first one (comment-related): the two
>> indicated lines just don't reindent at all. That's with the default
>> 'gnu' indentation style, but also with 'linux' and perhaps others (I
>> haven't tried).
> 
> I don't understand what you mean by "reindent".  That wasn't what the
> original report was about, AFAIU.

Reindent is when you press tab, and the indentation on a given line 
changes. In that example, no matter which indentation you set on those 
line, pressing TAB doesn't change it.

> I still think a complete recipe is needed.
> 
>> To reproduce the second one, you first need to enable the 'linux' style:
> 
> I tried to reproduce _only_ with the 'linux' style, as the bug report
> said.
> 
>>     (setq c-ts-mode-indent-style 'linux)
>>     M-x c-ts-mode
> 
> The style is a per-buffer setting, so AFAIU one needs to set the style
> after turning on the mode in a buffer, whether manually or
> automatically.

Did you use 'M-x c-ts-mode-set-style', then? That also repros for me.

The style can be set locally - as the above command does - but initially 
the global value is used. And it's applied during the major mode's 
execution, so a simple 'setq' doesn't work.

> A full recipe is supposed to remove all those confusing details and
> potential mistakes.

I don't mind.