Note about hotkeys

Mikhail Nikishin
Articles: 3

Even if our product, PVS-Studio, position itself as a tool for programmers, and it is the reason why almost all questions sent to tech support are highly specialized (i.e. usually we are not replying something like "Have you tried turning it off and on again?"), sometimes we actually have to reply in Captain Obvious style. One of the questions that is lying in this category is why don't you have a hotkey mapped to check current file / check solution or why hotkeys mapped to "Go to Next Message" and "Go to Previous Message" (Alt+'[' and Alt+']') are chosen to be so inconvenient? OK, let us try to figure out how could have that been happened.


Why these hotkeys?

In general, usually that quickly becomes a nuisance when developing Visual Studio add-ons - proper hotkeys selection. The main idea is that hotkeys is a very convenient tool because it helps to save a lot of time while others slowly move mouse cursor (that is one of the reasons why vi and emacs text editors are so popular). However, there are no use of the hotkey like "Ctrl+Shift+Alt+Numpad 4 while NumLock is off". Neither does the hotkey that requires making multiple chords like Alt+K, Ctrl+L, Ctrl+Shift+Z. Such combinations may make programmer's life more difficult because time spent on pressing those hotkeys is not a lot shorter than time spent on pair of clicks. What was the may reason of hotkeys usage? Nevertheless, there is another problem. Of course, one would like to that jump to next or previous PVS-Studio warning be more accessible, but Visual Studio hotkeys already occupies a large fraction of the keyboard, and the fraction that is not used, are almost certainly taken by the most popular add-ons. This is the reason why we chose the default hotkeys that is not used by Visual Studio nor by the most popular add-ons. However, it is just by default. As you would have probably guessed, every menu option may be mapped (or remapped) to any hotkey.

Hotkey mapping

In this paragraph, we shall explain how to map a hotkey to the "Check current file" item. We shall bind an Alt+'\' hotkey. Of course, similar method can be used to bind hotkey to any item, including "Go to Next Message" and "Go to Previous Message". It should be clear that any hotkey might be bound, not only Alt+'\'.

To do that, first of all one needs to enter "Options" menu of Visual Studio IDE. Screenshots below illustrate all the actions as applied to Microsoft Visual Studio Professional 2012.


Figure 1 - Options menu

After the dialog window pops up, next step is to open "Environment" and choose "Keyboard".


Figure 2 - Keyboard menu

To make search simpler, we recommend entering "PVSStudio" filter into "Show commands containing:" field. This should filter all the possible mapping options to the ones related to PVS-Studio.


Figure 3 - Filtering all the options to ones containing "PVSStudio" keyword.

After that, it is required to locate the required line. In our case it's "PVSStudio.CheckCurrentFile" - Check current file menu option.


Figure 4 - Selecting the "PVSStudio.CheckCurrentFile" line

Next step is to focus the "Press Shortcut Keys" field and press key combination and then click on "Assign" to make binding.


Figure 5 - Mapping "PVSStudio.CheckCurrentFile" to Alt+'\' hotkey

The last step is to press "OK" and make sure everything works as expected.


Figure 6 - Correctly mapped hotkey


Despite the fact that the subject of this note is obvious, we hope that it will be useful to somebody, because it allows not only mapping any hotkey into any command of our tool this way, but also mapping any commands of Visual Studio and commands of other add-ons as well.

Use PVS-Studio to search for bugs in C, C++, C# and Java

We offer you to check your project code with PVS-Studio. Just one bug found in the project will show you the benefits of the static code analysis methodology better than a dozen of the articles.

goto PVS-Studio;

Mikhail Nikishin
Articles: 3

Bugs Found

Checked Projects
Collected Errors
14 526
This website uses cookies and other technology to provide you a more personalized experience. By continuing the view of our web-pages you accept the terms of using these files. If you don't want your personal data to be processed, please, leave this site. Learn More →