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

From: Eli Zaretskii <[email-masked]>
Date: Wed, 29 Nov 2023 15:47:25 +0200

> Date: Fri, 24 Nov 2023 16:46:32 +0200
> From: Eli Zaretskii <[email-masked]>
> Cc: [email-masked], [email-masked], [email-masked]
> 
> > From: Noah Peart <[email-masked]>
> > Date: Fri, 24 Nov 2023 06:35:06 -0800
> > Cc: [email-masked], [email-masked], [email-masked]
> > 
> > To reproduce the indentation bugs for unbracketed `else_clause`, and 
> > do-while:
> > 1. open a buffer and insert the following:
> > 
> >     int main() {
> >       if (true) 
> >         puts("Hello");
> >       else 
> >                     puts("No matched rule!"); // 1
> >       do 
> >         puts("Hello");
> >                     while (indented_as_part_of_block);  // 2
> >     }
> > 
> > 2. call `M-x example-setup` to configure `c-ts-mode`
> > 3. `M-x indent-region` to indent the whole buffer
> > You should see that the line with comment `1` has not been
> > indented, and the line with comment `2` has been indented to the 
> > same level as the previous line.
> > 
> > To reproduce the indentation bugs when comments are the first
> > siblings:
> > 1. open a buffer and insert:
> > 
> >     int main() {
> >       while (true) { /* foo */
> >                           if (true) { // 1
> >                           puts ("Hello"); // 2
> >        }
> >       }
> >     }
> > 
> > 2. call `M-x example-setup` to configure `c-ts-mode`
> > 3. `M-x indent-region` to indent the whole buffer
> > 
> > You should see that the lines with comments `1` and `2` have
> > not been indented at all.
> 
> Thanks, I see the problems now.
> 
> Let's wait for Yuan to chime in.

Yuan, could you please comment on the proposed solution?  TIA.