The 'same' anchor isn't implemented. This is most noticeable when the next/previous line navigation loses the cursors current location and jumps to the start/end of the line.
Lots of "off-by-one" issues when navigating to the start/end/before/after anchors.
Misplaced logic/refactoring; the logic for locating line/word anchors really belongs under the textobject module, but right now it lives under buffer. With the addition of the iterators module and iterators::CharIndices we should be in a slightly better place to start refactoring this.
Missing commands and inconsistencies with traditional vi semantics. Does typing w in vi move to the start of the next word, or the end of the next word? Or perhaps the "next end-of-word"? Same for typing b, end of previous word or last end-of-word? Right now w moves to the start of the next word, but typing .w moves to the word AFTER the next word (the way it's coded now, the correct behavior should be to move to the END of the next word... another slightly broken thing).
Hooks/refactoring to allow customizing "kinds". What characters constitute a "word" and how/where can we best allow customization of that.
Future extensibility, I suspect we might be better served if textobject::Kind were actually a trait instead of an enum.
Plenty of others I'm sure I'm forgetting...
All that said, it's kind of cool to use 5,wto "jump to the start of the 5th word in the file" ord,3j` to "delete to the start of the third line after the cursor".
Lots of known issues, in no particular order:
textobject
module, but right now it lives underbuffer
. With the addition of theiterators
module anditerators::CharIndices
we should be in a slightly better place to start refactoring this.w
in vi move to the start of the next word, or the end of the next word? Or perhaps the "next end-of-word"? Same for typingb
, end of previous word or last end-of-word? Right noww
moves to the start of the next word, but typing.w
moves to the word AFTER the next word (the way it's coded now, the correct behavior should be to move to the END of the next word... another slightly broken thing).textobject::Kind
were actually a trait instead of an enum.All that said, it's kind of cool to use
5,
wto "jump to the start of the 5th word in the file" or
d,3j` to "delete to the start of the third line after the cursor".