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

From: Yuan Fu <[email-masked]>
Date: Fri, 6 Jun 2025 00:23:23 -0700

> On Jun 6, 2025, at 12:01 AM, Eli Zaretskii <[email-masked]> wrote:
> 
>> 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’.

Yes. Most likely top-level is what you want. 

Yuan