Subject: bug#78703: beginning-of-defun and friends still wrong in typescript-ts-mode

From: Eli Zaretskii <[email-masked]>
Date: Fri, 06 Jun 2025 10:01:20 +0300

> From: Daniel Colascione <[email-masked]>
> Date: Thu, 05 Jun 2025 16:40:03 -0700
> 
> Right now, C-M-a runs treesit-beginning-of-defun which goes to the
> start of the previous defun in buffer text, not the enclosing defun.
> 
> If we have this program:
> 
>     1 function foo() {
>     2   function bar() {
>     3     return 5
>     4   }
>     5   return 7
>     6 }
> 
> 
> and point is on line 5, then if we hit C-M-a, point goes to line 2, not
> line 1.  In every single situation, when I use beginning-of-defun, I
> intend to go to the start of my enclosing defun not the one that happens
> to be previous in buffer linearization.

I think you want to set treesit-defun-tactic to 'top-level'.