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

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

bug#64442: 29.0.92; treesit-beginning-of-defun fails in DEFUN functions


From: Yuan Fu
Subject: bug#64442: 29.0.92; treesit-beginning-of-defun fails in DEFUN functions in C
Date: Tue, 15 Aug 2023 00:30:53 -0700


> On Aug 14, 2023, at 4:59 AM, Eli Zaretskii <eliz@gnu.org> wrote:
> 
>> From: Yuan Fu <casouri@gmail.com>
>> Date: Sun, 13 Aug 2023 22:20:56 -0700
>> Cc: 64442@debbugs.gnu.org
>> 
>>> I like this much better than what we have now, thanks.  But I have a
>>> question: can we perhaps recognize the "function" of the body as such,
>>> and then automatically move to the previous defun, which is the right
>>> place?  The "defun" that is the body has no name, so maybe that could
>>> be used as a sign?  
>> 
>> We can easily tell the body from the declaration, but we can’t easily tell 
>> whether we should automatically move forward or backward. When point arrives 
>> at the point between the declaration and the body, should it move to the 
>> beginning of the next defun or the beginning of the declaration? This, plus 
>> it’s not straightforward to know whether we are in between a body and a 
>> declaration. I really don’t want to add even more cursed hacks into 
>> c-ts-mode.el :-)
> 
> Too bad, but okay.
> 
>>> That would allow "C-x 4 a" to work inside a DEFUN,
>>> something that still works less reliably with this patch: you must be
>>> in the "first defun" to get it to find the name of the function.
>> 
>> C-x 4 a should’ve been fixed already. And it shouldn’t rely on this fix to 
>> work. Do you have a recipe for when it doesn’t work?
> 
> Just try it with your patch.  If point is inside the body, the
> function's name is not captured by "C-x 4 a”.

My bad, I must’ve been trying C-x 4 a in a different Emacs session, which 
worked. Anyway, I updated the patch and C-x 4 a should now work.

Yuan

Attachment: defun.patch
Description: Binary data




reply via email to

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