[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#68652: 29.1.50; treesit defun commands broken near beginning of func
From: |
Yuan Fu |
Subject: |
bug#68652: 29.1.50; treesit defun commands broken near beginning of function |
Date: |
Sat, 27 Jan 2024 19:55:52 -0800 |
> On Jan 27, 2024, at 2:40 AM, Eli Zaretskii <eliz@gnu.org> wrote:
>
>> From: Troy Brown <brownts@troybrown.dev>
>> Date: Sun, 21 Jan 2024 23:47:08 -0500
>>
>> I've noticed that "defun" related treesit commands/functions do not
>> appear to work correctly near the beginning of a function. I've seen
>> this behavior in multiple languages and believe the problem is an issue
>> in the treesit.el library. Also, I believe the issue occurs on the
>> first token of the function definition. The following example uses
>> c-ts-mode to demonstrate the issue.
>>
>> --8<---------------cut here---------------start------------->8---
>> // -*- mode: c-ts -*-
>>
>> void previous (void);
>> void next (void);
>>
>> void previous (void) {
>> }
>>
>> void main (void) {
>> previous();
>> next();
>> printf("Hello, world!\n");
>> }
>>
>> void next (void) {
>> }
>> --8<---------------cut here---------------end--------------->8---
>>
>> To reproduce the issue, place point between the "o" and "i" of the
>> "void" return type for the "main" function. When point is at this
>> location, I've noticed incorrect behavior for the following commands:
>>
>> M-x treesit-beginning-of-defun RET
>>
>> Moves point to the beginning of the previous function instead of the
>> beginning of the current (i.e., "main") function.
>>
>> M-x treesit-end-of-defun RET
>>
>> This does not move point, when it should move to the end of the current
>> function.
>>
>> I've also noticed functions, such as "treesit-defun-at-point" behave
>> incorrectly here as well (i.e., returns "nil" instead of the function
>> definition node).
>
> This seems to be already fixed on the master branch, so I think we can
> close this bug.
>
> Yuan, any comments?
I just tried it and yeah it’s fixed on master. I couldn’t find which commit
fixed it though…
Yuan