GNU bug report logs - #76908
31.0.50; Extending c-ts-common-baseline-indent-rule

Previous Next

Package: emacs;

Reported by: jm <at> pub.pink

Date: Mon, 10 Mar 2025 02:56:02 UTC

Severity: wishlist

Found in version 31.0.50

Done: john muhl <jm <at> pub.pink>

Bug is archived. No further changes may be made.

Full log


Message #15 received at 76908-done <at> debbugs.gnu.org (full text, mbox):

From: john muhl <jm <at> pub.pink>
To: Yuan Fu <casouri <at> gmail.com>
Cc: 76908-done <at> debbugs.gnu.org
Subject: Re: bug#76908: 31.0.50; Extending c-ts-common-baseline-indent-rule
Date: Tue, 11 Mar 2025 12:09:24 -0500
Yuan Fu <casouri <at> gmail.com> writes:

>> On Mar 9, 2025, at 7:55 PM, jm <at> pub.pink wrote:
>> 
>> Hi Yuan.
>> 
>> I’ve been working on replacing some of the bespoke indentation
>> rules in lua-ts-mode with c-ts-common-baseline-indent-rule and ran
>> into one spot it didn’t handle.
>
> Glad to hear it’s getting used!
>
>> 
>> If the parent (table, args, params) starts with a comment all the
>> siblings follow that indentation instead of ignoring the comment
>> and falling back to the default indent-offset; e.g.
>> 
>>  -- currently lua-ts-mode indents like:
>>  local my_table = { -- there is a comment here
>>      x_offset = 12,
>>      y_offset = 30,
>>  }
>> 
>>  -- using c-ts-common-baseline-indent-rule we get:
>>  local my_table = { -- there is a comment here
>>                     x_offset = 12,
>>                     y_offset = 30,
>>  }
>> 
>> And similarly for arguments & parameters:
>> 
>>  -- current:
>>  very_fun(-- do the very fun stuff
>>      "This is a string",
>>      3.1415926535897932,
>>      { x = 1, y = 2 },
>>  )
>> 
>>  -- c-t-c-b-i-r:
>>  very_fun(-- do the very fun stuff
>>           "This is a string",
>>           3.1415926535897932,
>>           { x = 123, y = 99 },
>>  )
>> 
>> Is this something it could be extended to do or should I just
>> stick with custom rules for this kind of thing?
>
> The first example seems to work fine for me.

You’re right. I must of got Emacs into a funky state or had the
wrong file loaded or something.

> The second example is indeed a bug, I fixed it.

Works perfect now. Thanks.

> I tried 
>
> (defvar lua-ts--simple-indent-rules
>   `((lua
>      c-ts-common-baseline-indent-rule)))
>
> with
>
> (setq-local c-ts-common-indent-offset 'lua-ts-indent-offset)
> (setq-local c-ts-common-list-indent-style 'simple)
>
> (BTW you don’t need to set c-ts-common-indent-type-regexp-alist to use the baseline-indent-rule. I forgot to update the comment in Commentary.)
>
> Yuan




This bug report was last modified 68 days ago.

Previous Next


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