vim: Change logic in subword motion subword_start calculation (#45341)

- Update subword boundary detection to stop at semantic punctuation
  (quotes, brackets, parens)
- Treat `.`, `-`, and `_` as subword separators for consistent behavior
- Extract `is_subword_start` and `is_subword_end` helpers for reuse in
  motion and object handling
- Add comprehensive tests for all subword motions matching vim's
  CamelCaseMotion behavior

Closes #23344

Release Notes:

- Fixed bug in Vim mode's subword motion punctuation handling

---------

Co-authored-by: dino <dinojoaocosta@gmail.com>
5a8a7d8666Will Garrison committed on 1/13/2026, 6:02:59 PM· committed by GitHubparent6b1b5fa
2 files changedLine totals unavailable