Skip to content

Conversation

@justnat3
Copy link

Moving by word gets hung up in (left or right arrow) gets hung up in the check for ModShortcut. (copy/paste/etc). In this case we should just check if the modifier comes along with an arrow key.

This also add checking for Unicode Punctuation instead of just spaces when moving a word.

Note, I'm not sure that this is the correct solution to this problem. I was hoping for some insights on how this might be done better.

However, this was the "fastest" way to get the behavior I wanted. Let me know what I can do here as to not break previous behavior (unless we want that).

!darwin:
Moving by word gets hung up in (left or right arrow) gets hung up in the
check for ModShorcut. (copy/paste/etc). In this case we should just check
if the modifer comes along with an arrow key.

This also add checking for _Unicode Punctuation_ instead of just spaces
when moving a word.

Cheers,
-Nate
moveByWord := k.Modifiers.Contain(key.ModShortcutAlt)
leftOrRightArrow := k.Name == key.NameLeftArrow || k.Name == key.NameRightArrow

if k.Modifiers.Contain(key.ModShortcut) && !leftOrRightArrow {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about checking ModShortcut modifiers in each of the copy/cut/paste commands? We can then merge the two switch clauses.

e.MoveCaret(direction, 0)
caret = e.closestToRune(e.caret.start)
for r := next(); !unicode.IsSpace(r) && !atEnd(); r = next() {
for r := next(); !unicode.IsSpace(r) && !unicode.IsPunct(r) && !atEnd(); r = next() {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another similar word related operation is word deletion. So you might have to look at the code in the delete method. And for a more general solution, code editors use configurable word seperators, here's what I have done in gvcode.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants