[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: |
Eli Zaretskii |
Subject: |
bug#68652: 29.1.50; treesit defun commands broken near beginning of function |
Date: |
Sat, 27 Jan 2024 12:40:35 +0200 |
> 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?