Add display of available keybindings following incomplete command
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 15.2k
- Forks
- 1.5k
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 6
Description
Is your feature request related to a problem? Please describe.
I'd like to be able to discover keybindings easily.
Describe the solution you'd like
On pressing or any key that VSCodeVim could understand as a multi-key command , it would display a menu
-
Triggering of the menu display:
- The menu should display after pressing a key for an incomplete command. e.g. or d/c/y with no selection.
- It could display after a configurable delay so that it does not interrupt the user when they know what command they are going to type.
-
Location of the menu:
- Perhaps in the usual top-middle location for VS Code completions (like CTRL+SHIFT+P)
- Perhaps at a configurable location by the users.
(Full width of current editor, at the bottom of the current editor pane, or full width of VS Code at the bottom of screen would be my preference)
-
Ordering of the menu:
The keybinding should be displayed in alphabetical order with all non-alphabet characters listed before the alphabetic ones. -
Content and arrangement.
The menu should display completions for- VSCodeVim provided keybindings
- User configured VSCodeVim bindings
- and VS Code built-in commands (if that's possible)
It could distinguish between these by color (as well as some other indicator for color-blind users).
A distinction could be made between workspace and user configured bindings.
Describe alternatives you've considered
As far as I am aware there is no easy way to get a (combined) listing of all VS Code Vim default and user / workspace configured VIM keybindings (let-alone VS Code built-ins).
Additional context
See a screenshots from the emacs packabe which-key for an example of what the contents of the menu might look like.
I'm a spacemacs users, which is why I'm referencing an emacs package. An equivalent VIM package would be http://liuchengxu.org/vim-which-key/d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named. Start by tracing how VSCodeVim handles incomplete multi-key commands and how it exposes configured keybindings, then investigate the VS Code APIs for displaying a completion menu. Done means a scoped design and implementation covering the requested triggers, ordering, and binding sources.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- developer-experience, devtools
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100