Subject: Re: bug#59662: 29.0.50; [PATCH] Add treesit--indent-defun

From: Yuan Fu <[email-masked]>
Date: Wed, 7 Dec 2022 11:54:37 -0800

Theodor Thornhill <[email-masked]> writes:

> Eli Zaretskii <[email-masked]> writes:
>
>>> From: Theodor Thornhill <[email-masked]>
>>> Cc: "Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife
>>>  of text editors" <[email-masked]>, Eli Zaretskii <[email-masked]>,
>>>  [email-masked], [email-masked]
>>> Date: Sun, 04 Dec 2022 13:33:35 +0100
>>> 
>>> Theodor Thornhill <[email-masked]> writes:
>>> 
>>> > On 2 December 2022 22:09:55 CET, "Daniel Martín" <[email-masked]> wrote:
>>> >>Theodor Thornhill <[email-masked]> writes:
>>> >>
>>> >>> Right - thanks.  However, this makes me wonder - should we really be
>>> >>> setting mark here? I see that c-indent-defun does not, and it feels
>>> >>> weird that indenting adds to the mark ring.  What do you think?  My
>>> >>> first patch used
>>> >>>
>>> >>> (indent-region
>>> >>>   (treesit-node-start node)
>>> >>>   (treesit-node-end node))
>>> >>>
>>> >>> Which behaves similarly to c-indent-defun.
>>> >>>
>>> >>> See attached patch.
>>> >>
>>> >>I don't have a strong opinion, but if we can indent without setting the
>>> >>mark, I think it'd be a cleaner command.  Specially if c-indent-defun
>>> >>doesn't set the mark either.
>>> >
>>> > Yeah, we don't need to set the mark. Thanks for the feedback :)
>>> > Theo
>>> 
>>> Eli, do you have any opinion on this matter? Should we implement this
>>> function without using marks?  That will make the function a smidge
>>> bigger, but would not mess up the mark-ring.  I think that's desirable,
>>> at least.
>>
>> IMO, it is better not to set the mark, indeed.
>
> Agreed, see attached patch.  What do you think, Yuan and Eli?
>
> Should we expose the internal helper I used, or maybe this function
> could just as well live in treesit.c?
>
> Theo
>

Very nice, I applied this patch with some changes to the function. I
think using treesit-beginning/end-of-defun is more robust.

Yuan