Subject: bug#62416: 30.0.50; Symbols skipped in the navigation in ruby-ts-mode

From: Juri Linkov <[email-masked]>
Date: Sat, 25 Mar 2023 21:04:52 +0200

>> Navigating word forward/backward skips the Ruby symbol in the ruby-ts-mode.
>> Adding "simple_symbol" to the treesit-sexp-type-regexp is fixing it.
>>    (setq-local treesit-sexp-type-regexp
>>                (regexp-opt '("class"
>>                              "module"
>>                              "method"
>>                              "argument_list"
>>                              "array"
>>                              "hash"
>>                              "parenthesized_statements"
>>                              "if"
>>                              "case"
>>                              "when"
>>                              "block"
>>                              "do_block"
>>                              "begin"
>>                              "binary"
>>                              "simple_symbol" ;; <-- missing
>>                              "assignment")))
>
> Juri, what do you think?
>
> In the context of your previous feedback regarding sexp navigation in
> ruby-ts-mode.

This is fine.  But anyway I think in its current state
treesit-sexp-type-regexp is underdesigned as noted in
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62238#59
so no tweaking could fix its design flaws.  For example,

  foo = {
    a: b
  }

when point is on the left curly bracket, 'C-M-f C-M-b' doesn't
move back to the original position, etc.