Skip to content
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

Set vim.command in VSCodeContext on key press. #8718

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

raineorshine
Copy link

@raineorshine raineorshine commented Nov 7, 2023

What this PR does / why we need it:

This PR sets vim.command in VSCodeContext to recordedState.commandString. This allows pending actions that are waiting for a movement argument (e.g. d or y) to be read in the when 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 the when 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 that vim.command gets updated as the user types and properly reset when their command completes.

@Guray00
Copy link

Guray00 commented Feb 18, 2024

awesome idea, I'm still waiting for this feature.

@leftbones
Copy link

Also waiting for this feature. I use Shift+H and Shift+L to move between editors in Vim, but in VSCodeVim if I try to use rH or rL to single replace, it moves editors instead. Not a problem in Vim itself.

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.

Replace mode can't replace character with 'j' or 'k'
3 participants