bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Noah Peart
Subject: bug#67357: [PATCH] Fix c-ts-mode block indent when first-siblings are comments
Date: Fri, 24 Nov 2023 05:47:34 -0800

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))

The patch should also fix the missing indent for the `else_clause` mentioned 
in https://lists.gnu.org/archive/html/bug-gnu-emacs/2023-11/msg01266.html.

On Thu, Nov 23, 2023 at 6:41 AM Dmitry Gutov <dmitry@gutov.dev> wrote:
On 23/11/2023 16:33, Eli Zaretskii wrote:
>> Date: Thu, 23 Nov 2023 15:17:40 +0200
>> Cc: 67357@debbugs.gnu.org
>> From: Dmitry Gutov <dmitry@gutov.dev>
>>
>> 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.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]