Set vim.command in VSCodeContext on key press. #8718
Merged
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.
What this PR does / why we need it:
This PR sets
vim.command
in VSCodeContext torecordedState.commandString
. This allows pending actions that are waiting for a movement argument (e.g.d
ory
) to be read in thewhen
clause of keyboard shortcuts.There is currently no change to VSCodeContext in such a pending state, making it impossible to correctly configure some keyboard shortcuts, such as commands that should be activated in Normal mode, but not if a command is started. Making that information available in VS Code's context gives users greater flexibility and precision in setting up custom keyboard shortcuts.
Which issue(s) this PR fixes
Fixes #7833 by allowing users to add
!vim.command
to thewhen
clause of the keyboard shortcut.Special notes for your reviewer:
I didn't see a good way to add a unit test for this, as I am not sure how to access VSCodeContext within a test, but I did build and debug the change with
Inspect context keys
and confirm thatvim.command
gets updated as the user types and properly reset when their command completes.