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

VS Code keyboard shortcuts suggestion to learn #26729

Open
gsipos opened this issue May 16, 2017 · 70 comments
Open

VS Code keyboard shortcuts suggestion to learn #26729

gsipos opened this issue May 16, 2017 · 70 comments
Labels
feature-request Request for new features or functionality keybindings VS Code keybinding issues

Comments

@gsipos
Copy link

gsipos commented May 16, 2017

Keyboard shortcuts are central part of VS Code, there are a lot of them and I think I use only a fraction of them. It would be awesome if VS Code could suggest what shortcut should I learn, based on how I use the app with mouse. For example if I click between editors a lot, then VS Code could somehow tell me to use ctrl+1 and ctrl+2. This way I could gradually learn shortcuts that would increase my productivity the most.

@ramya-rao-a
Copy link
Contributor

cc @kieferrm

@Tyriar Tyriar added the feature-request Request for new features or functionality label May 16, 2017
@Tyriar
Copy link
Member

Tyriar commented May 16, 2017

I was actually looking at building an extension for this a long time ago, we don't have the right extension points though. We would need an event for when any command is run and be able to determine the source of the command (menu, command palette, keybinding, etc.)

@Tyriar
Copy link
Member

Tyriar commented May 16, 2017

😄 #1775 #1431

@bpasero bpasero added the keybindings VS Code keybinding issues label Nov 17, 2017
@jcrben
Copy link

jcrben commented Jun 13, 2018

prior art: https://github.com/halirutan/IntelliJ-Key-Promoter-X

@bbohen
Copy link

bbohen commented Nov 12, 2018

I was actually looking at building an extension for this a long time ago, we don't have the right extension points though. We would need an event for when any command is run and be able to determine the source of the command (menu, command palette, keybinding, etc.)

I tried this over the weekend and hit the same limitations. Was thinking about it a bit and I think this could be a nice feature to add to vscode itself (disabled by default perhaps). Could be something to consider if for some reason the extension points themselves aren't desired. Would be happy to work on a PR to help if there is any interest.

@guider
Copy link

guider commented Nov 17, 2018

keep remain

@stansw
Copy link

stansw commented Mar 15, 2019

Before extension points are added to listen for commands it might be possible to to use log stream to build a dataset for training such suggestions. Once proven that such suggestions can bring a lot of value it should be easier to prioritize the work in the extension surface.

Has anyone looked into telemetry emitted by VS Code with this scenario in mind?

@RJSonnenberg
Copy link

Anyone working on this? I haven't found anything similar to this yet in extensions or anything.

@pastuh
Copy link

pastuh commented Nov 12, 2019

Looks like no one :X

@lincolnaleixo
Copy link

Need more interest to catch their attention

@dahelg
Copy link

dahelg commented Nov 13, 2019

I am also looking forward to such a feature/extension.

@kbysiec
Copy link

kbysiec commented Nov 14, 2019

I really miss this feature from WebStorm as well. It would be great to have it in VSC.

@alexdeveng
Copy link

I am also looking forward to such feature

@imWildCat
Copy link

Currently, do we have enough extension API to implement this feature?
If so, I can start to explore it.

@kbysiec
Copy link

kbysiec commented Jan 19, 2020

I don't think so. And this is the main problem. There was a proposal API some time ago in Insiders version but it has been revoked and from that time the topic is suspended as I know.

@jt3k
Copy link

jt3k commented Feb 4, 2020

I am also looking forward to such feature

@JaqueLB
Copy link

JaqueLB commented Feb 13, 2020

Hey, I am also looking forward to this feature! Something similar as what I had with PHPStorm...

I would rather learn the VSCode Keybinds than to use of extensions to change the shortcuts, as these extensions sometimes leave some commands behind, and you end up not making the most of what the editor can do

@ArthurWietzorek
Copy link

I, too, think that such a feature would be a great addition to VSCode.

@ClausClaus
Copy link

I am also looking forward to such feature

@chrishna1
Copy link

#78091 (comment)

I have pushed 21de711 that removes the proposed API - as explained in my previous comment. This wasn't an easy decision but there were too many doubts around the usefulness of this API, the performance impact, and accidental leakage of arguments.

However, the internal API is there and we are open to accept features like the "keybindings teacher" or "macro recording" as a core contribution to VS Code.

@ztroop
Copy link

ztroop commented Apr 16, 2020

I would love to see this feature! IntelliJ IDEA has Key Promoter X and it's amazing.

@Vitaly-V
Copy link

Vitaly-V commented May 4, 2020

I'm currently using Android Studio as my primary editor but I tend to migrate to VS Code.
And having the feature that will help me to learn VS Code shortcuts would make my transition between the editors easier.
Thanks in advance!

@andrei-micuda
Copy link

I am also looking for this feature, helped me loads while working with JetBrains products.

@JonLevin25
Copy link

I would also love this - Key Promoter X is very useful on IntelliJ products

@Michael-Nolan
Copy link

I would also really appreciate this feature. It's a huge productivity boost to know the keyboard shortcuts.

@oleg-korolenko
Copy link

+1

@StephenJBrasel
Copy link

I'd love for this to become a feature; I, too, miss Key Promoter X from IntelliJ/Webstorm.

@flipbit03
Copy link

flipbit03 commented Jul 14, 2021

Are we able to hook into the functions needed for this to happen at an Extension level or does this need work inside VSCode itself to enable these kinds of hooks? Sounds like a fun extension for a weekend project and I am interested in creating something along the lines of the excellent "Key Promoter X" which several people already use on IntelliJ-based IDEs.

Thanks in advance o/

@gsipos
Copy link
Author

gsipos commented Jul 15, 2021

@flipbit03 There was a discussion about this. I believe here: #78091 (comment)
So it would be preferred to be in the core rather than an extension, if I understand it correctly.

@supervanya
Copy link

Seems like onDidExecuteCommand could be a possibility after all - VSCode team moved it to a backlog #135616

My friend and I started working on a plugin similar to Key Promoter X. I can share it here once we have a prototype.

@He110te4m
Copy link

It is a great idea

@barrynorman
Copy link

Seems like onDidExecuteCommand could be a possibility after all - VSCode team moved it to a backlog #135616

My friend and I started working on a plugin similar to Key Promoter X. I can share it here once we have a prototype.

As far as I understand it's not possible at the moment to create an extension like Key Promoter X. You would need some hook/listener like onDidExecuteCommand .

I guess the biggest chance is that it will be added to the core, even if onDidExecuteCommand won't be part of the extension API.

@QDEMANGE
Copy link

+1

1 similar comment
@Alttaf
Copy link

Alttaf commented May 10, 2022

+1

@YovelB
Copy link

YovelB commented Jul 9, 2022

Keep the pressure on VSCode, it should be an integral part of every IDE.

@kebuAAA
Copy link

kebuAAA commented Aug 1, 2022

I am also looking forward to such a feature/extension.

@iFission
Copy link

looking forward to have this feature in vscode, like key prompter x in intellij

@lobsterkatie
Copy link

lobsterkatie commented Nov 9, 2022

@SamTobias - Just a friendly reminder that in general it's better to 👍🏻 the issue description than add a '+1' comment because a) the maintainers actually do pay attention to that count, and b) it saves the other 51 of us from getting our hopes up when we see this issue pop up in our notifications.

EDIT: Comment was removed. Thanks for taking the feedback, @SamTobias! 🙂

@ettubrute47
Copy link

Not sure if good or bad that my desire for something like this has been open and active since 2017...

My feature request is based on the same philosophy of making it easy to learn keybindings, but I have a slightly more aggressive variation. I think it would be good to have an option that specifically stops any commands which have an associated keybinding from being executed if done with the mouse, with a popup telling you the keybinding, so you have to execute the keybinding to actually do it. I think that's the fastest way to learn them.

I was going to look into making an extension, but I figured the ability to hook into the API at such a fundamental level is probably not supported - which I think this thread has pointed out. I don't have experience with buidling vscode extensions but I wonder if supporting a listener for commands that are specifically mapped to keybindings can be a middle-ground option? I know there are extensions which add keybindings and features along with it, so there is some support for keybindings, but if you can make a subset of commands which are 'bindable' and/or are 'binded' have a callback for when they're executed.

I'd love having a method for being able to interrupt those commands but I feel like that level of flexibility could just add a ton of risk to support...

Again not sure on the extension ecosystem, if its easy to support the necessary API's then I think that's the way to go, I think there are enough people that are interested in the keybinding 'game' that some good extensions would come through pretty quickly - I could see something like a 'tracker' for how well each keyboard shortcut is being learned - and maybe even an 'anki' like system for personalizing when keybinding popups are shown - targeting the ones you need to 'practice' the most. Customizing which keybindings you actually care about learning is probably something that'd be cool too - but to me more realistically would fit only in the domain of an extension.

@Darkzarich
Copy link

Darkzarich commented Dec 28, 2022

Looking forward to seeing this feature in vscode, would be really cool and productivity-growing 👍

@Darkzarich
Copy link

I was trying to make this extension the way it was made for WebStorm and the problem is there is no API for Visual Studio Code extensions to work with mouse events globally. And it was mentioned in this #47239 issue that they do not plan to add API for this. I guess there is nothing we can do for now

@alexdeveng
Copy link

I was trying to make this extension the way it was made for WebStorm and the problem is there is no API for Visual Studio Code extensions to work with mouse events globally. And it was mentioned in this #47239 issue that they do not plan to add API for this. I guess there is nothing we can do for now

Thank you for the information

@jt3k
Copy link

jt3k commented Feb 3, 2023

any updates ?

@gsipos
Copy link
Author

gsipos commented Feb 3, 2023

I spotted this: https://code.visualstudio.com/updates/v1_75#_commonly-used-section-in-the-command-palette
Not exactly a solution, but if you turn on workbench.commandPalette.experimental.suggestCommands then at least you see some potentially useful command+shortcut pairs in the command palette

@NnicanBuak
Copy link

NnicanBuak commented Feb 17, 2023

+1
It would be enough for me just a notification that you can use a hotkey when I repeatedly perform some action with the mouse and place the button in the notification itself, which no longer reminds me of a particular action with the mouse.

@ahmeducf
Copy link

Looking forward to this feature

@jt3k
Copy link

jt3k commented May 24, 2023

any updates ?

@howel52
Copy link

howel52 commented Jun 26, 2023

I am also looking forward to such a feature, any updates ?

@zhw-rneumann
Copy link

I would love this feature as well, missing it since leaving WebStorm.

@Sojborg
Copy link

Sojborg commented Sep 27, 2023

+1 we need this feature. Rider/webstorm have it via plugins.

@riZZZhik
Copy link

riZZZhik commented Oct 5, 2023

Also looking forward for this feature!

@supervanya
Copy link

@jrieken I am going to take a crack at adding a "keyboard tutor" to the vscode under an experimental setting. I started digging into the code, currently trying to understand how to architect it and I have a couple of questions, where is the best place for me to ask them?

@zhw-rneumann
Copy link

Nice, will you keep us updated here when it's available?

@donebd
Copy link

donebd commented Nov 21, 2023

New plugin for this purpose is already released!
https://marketplace.visualstudio.com/items?itemName=donebd.vscode-keypromoter

@debu999
Copy link

debu999 commented Nov 26, 2023

wow guess its my lucky day. will try the vscode-keypromoter and share feedback may 2017 - dec 2023 quite a journey.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request Request for new features or functionality keybindings VS Code keybinding issues
Projects
None yet
Development

No branches or pull requests