It seams that there is an issue with the behavior of `treesit-beginning-of-defun` function in `c++-ts-mode` when there are static variables present in the source code. For instance, in the provided code snippet, if the cursor is initially placed on the line containing `int b`, and the "C-M-a" is pressed, the cursor is positioned on line 4 instead of line 1 where the beginning of the function is located. ,---- | void func // c-ts-mode: treesit-beginning-of-defun stops in this line, RIGHT | { | char * msg; | static int a; // c++-ts-mode: treesit-beginning-of-defun stops in this line, WRONG | int b; // PUT CUSOR HERE | } `---- it works in c-ts-mode works normally. Regards. On Tue, Sep 12 2023, help-debbugs@gnu.org (GNU bug Tracking System) wrote: > Thank you for filing a new bug report with debbugs.gnu.org. > > This is an automatically generated reply to let you know your message > has been received. > > Your message is being forwarded to the package maintainers and other > interested parties for their attention; they will reply in due course. > > Your message has been sent to the package maintainer(s): > bug-gnu-emacs@gnu.org > > If you wish to submit further information on this problem, please > send it to 65885@debbugs.gnu.org. > > Please do not send mail to help-debbugs@gnu.org unless you wish > to report a problem with the Bug-tracking system. Regards, -- *Yang Yingchao*