-
Notifications
You must be signed in to change notification settings - Fork 759
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor Mode API and implement v_CTRL-O #1078
Merged
Merged
+1,347
−579
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Wanting to add `ReturnTo.SELECT` would be very tricky, as we would have to recreate the mode, but have no details about the selection type.
citizenmatt
changed the title
Refractor Mode and implement v_CTRL-O
Refactor Mode API and implement v_CTRL-O
Jan 2, 2025
From Select mode, enters Visual for a single command
citizenmatt
force-pushed
the
feature/v_CTRL-O
branch
from
January 3, 2025 00:03
0168ee6
to
272bea0
Compare
4 tasks
Yay, this looks cool! Thank you! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements
v_CTRL-O
. That is, pressing<C-O>
in Select mode will switch to Visual for the duration of a single command. This can be a motion, in which case we switch back to Select, or an operator, which usually removes the selection and so switches to Normal.The implementation led to refactoring
Mode
, specifically how to represent the mode to return to. Adding aReturnTo.SELECT
singleton object would require updates to variouswhen
statements that need to convertReturnTo
to aMode
, and there are some transitions to Select that don't make sense, and would either require guessing the selection type, or throwing a runtime error. It is simpler and cleaner to just useMode
as the "return to" type.This PR also updates the text in the "show mode" widget to show the pending modes, e.g. "(insert) NORMAL", "(replace) VISUAL" and so on.