GNU bug report logs - #67357
[PATCH] Fix c-ts-mode block indent when first-siblings are comments

Previous Next

Package: emacs;

Reported by: Noah Peart <noah.v.peart <at> gmail.com>

Date: Wed, 22 Nov 2023 01:52:02 UTC

Severity: normal

Tags: patch

Done: Yuan Fu <casouri <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


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

From: Noah Peart <noah.v.peart <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: dmitry <at> gutov.dev, casouri <at> gmail.com, 67357 <at> debbugs.gnu.org
Subject: Re: bug#67357: [PATCH] Fix c-ts-mode block indent when first-siblings
 are comments
Date: Fri, 24 Nov 2023 06:35:06 -0800
[Message part 1 (text/plain, inline)]
> I'm sorry I insist on a complete recipe with all the details

Ok, lemme try again :)

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.

On Fri, Nov 24, 2023 at 6:07 AM Eli Zaretskii <eliz <at> gnu.org> wrote:

> > From: Noah Peart <noah.v.peart <at> gmail.com>
> > Date: Fri, 24 Nov 2023 05:47:34 -0800
> > Cc: Eli Zaretskii <eliz <at> gnu.org>, casouri <at> gmail.com,
> 67357 <at> debbugs.gnu.org
> >
> > Sorry for the confusion: to setup the `c-ts-mode` buffers to reproduce
> bugs,
> > run the following to configure `c-ts-mode` with `linux` style:
> >
> >     (defun example-setup ()
> >       (interactive)
> >       (c-ts-mode)
> >       (setq-local indent-tabs-mode nil)
> >       (setq-local c-ts-mode-indent-offset 2)
> >       (c-ts-mode-set-style 'linux))
>
> Thanks, but what to do after (or before?) the above, to actually
> reproduce the problem?
>
> I'm sorry I insist on a complete recipe with all the details, but IME
> without having such a recipe, it is all too easy to create
> misunderstandings about the problem, and harder to test solutions.
>
[Message part 2 (text/html, inline)]

This bug report was last modified 1 year and 196 days ago.

Previous Next


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