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

From: Juri Linkov <[email-masked]>
Date: Mon, 27 Mar 2023 19:29:02 +0300

>> 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.
>
> Hm, yeah, it's a little unexpected that not only it doesn't move back
> exactly, it skips the full assignment expression in both directions.
>
> What is the downside of dropping "binary" and "assignment" from
> treesit-sexp-type-regexp, added there not too long ago? Without
> "assignment" there, your example becomes a round-trip.

This will break other cases, e.g.

  b = %Q{This is a "string"}
  c = %w!foo
   bar
   baz!
  d = %(hello (nested) world)

when point is after "b", 'C-M-f' will move to "c" instead of the end of line.