Subject: Re: bug#78503: 30.0.92; tree-sitter elixir-ts-mode structural movement broken

From: Juri Linkov <[email-masked]>
Date: Thu, 22 May 2025 09:39:08 +0300

>>> ```
>>> def foo(arg) do
>>>    IO.inspect("some")
>>> end
>>> ```
>>>
>>> Expected:
>>> - into args
>>> - nice to have: into do block (after do)
>>> - into argument list
>>> - into quoted string
>>
>> This is exactly how 'C-M-d' already works when you toggle
>> 'M-x treesit-cycle-sexp-type RET'.
>
> It does jump to into args (inside the parens), but after that it does nothing but show a
> message indicating it is at the bottom level. Which afaik it is not.
>
> To be clear:
> - on a of arg
> - nice to have: into do block (after do)
> - on " of "some"
> - nice to have: on s of "some"

'down-list' can't go out of a position inside "(arg)"
because it is at the bottom level of parenthesis.
This is what 'up-list' intended to do.  So you need
to type 'M-)' or anything that is bound to 'up-list'.

>> This is what 'C-M-d' already does after 'M-x treesit-cycle-sexp-type RET'.
>
> Confirmed
>
>> So let's enable 'treesit-cycle-sexp-type' by default, but only for
>> 'down-list'.
>
> Would be great.

Thanks, done.