Both for actual cursor-movement, as well as for things like "double-click-on-word", adding a new cursor etc it is required to describe positions in the document on a semantic level, often relative to the current cursor position.
We should design an abstraction that can define things such as "Next start of a word", "next end of a word", "end of line", "next occurrence of /foo/", "previous occurrence of character )", which would then allow us to use it in movement commands as well as any other abstractions (motion-based edit commands such as vim-style diw, cw, dt), etc)
Both for actual cursor-movement, as well as for things like "double-click-on-word", adding a new cursor etc it is required to describe positions in the document on a semantic level, often relative to the current cursor position. We should design an abstraction that can define things such as "Next start of a word", "next end of a word", "end of line", "next occurrence of
/foo/
", "previous occurrence of character)
", which would then allow us to use it in movement commands as well as any other abstractions (motion-based edit commands such as vim-stylediw
,cw
,dt)
, etc)