Friday, October 11, 2013

IntelliCommand, the key to learning Visual Studio Shortcut Keys extension, is now also open source...

outcoldman - We published IntelliCommand as open source project on CodePlex

Almost year ago we published IntelliCommand extension on Visual Studio Gallery. This extension helps you to learn shortcut keys in Visual Studio (check screenshots on Gallery site). IntelliCommand was a result of Visual Studio hackathon event, which I built with my coworkers (btw, we took first place).

For last year IntelliCommand has been downloaded more than 12 000 times. I think that this is good number for so small extension.

Today we decided to publish source code of this extension on CodePlex. Feel free to take a look on it, fix any bugs you've seen or add any features you always wanted.

If you want to build this solution you need to have Visual Studio 2010 with Service Pack 1 and Visual Studio 2010 SDK SP1. We used Visual Studio 2010 on purpose, because we know that there are a lot of people who still use Visual Studio 2010 as main IDE, and also we know that Visual Studio has very good back compatibility model. We built this extension only for Visual Studio 2010, specified that it can be used in Visual Studio 2012 and 2013 and at the end it works on all three versions of Visual Studio. Pretty cool, right?

If you will decide to look deeper in source code, there are some help for you:

  • CommandScopeService.cs - this class helps us to find out current scope in Visual Studio. We need it, because different scopes have different set of shortcut keys. For example WinForms designer has completely different set of shortcut keys than Editor.
  • KeyboardListenerService.cs - global keyboard listener, which also can filter keyboard events per current process.
  • CommandInfosLoader.cs - loads all command bindings available in Visual Studio instance and store all them in CommandsContainer.
  • CommandsPresenter.cs - main class which stitch everything together.
  • CommandsPanel.cs - special WPF panel, which can calculate size of the panel based on the list of shortcut keys available.



IntelliCommand is a Visual Studio extension that helps you remember shortcut keys. This extension is supported on Visual Studio 2010, 2012, and 2013 on Professional and higher.

Get latest working version on Visual Studio Gallery: IntelliCommand

IntelliCommand shows a helpful overlay window with all of the possible shortcuts you can use when you press Ctrl, Shift, Alt or any combination of those keys (hold the keys for about 2 seconds to see the window). It also supports multi-key shortcut chords, so when you press the first key in a multi-key shortcut (like Ctrl+K, Ctrl+C), it shows you the possible next keys you can press and what they do.



IntelliCommand shows all available shortcut keys for combination of Control+Shift after a couple of seconds:



I blogged about this last year,IntelliCommand - Your VS2010/2012 Keyboard Shortcut Padawan Learner extension (Think "Damn, what was that shortcut combo?" helper), and while I didn't whine in the post that I wish it were open source/source available, I'm sure I was thinking it. Well I guess they were reading my mind (or guys who like to pay it forward... ;)

I really appreciate the extra effort they made too call out specific classes and their purpose. Thanks for paying it forward guys!


Related Past Post XRef:
IntelliCommand - Your VS2010/2012 Keyboard Shortcut Padawan Learner extension (Think "Damn, what was that shortcut combo?" helper)

Visual Studio 2010 Keyboard Shortcuts/Keybinding Cards v2 – More page size options, more content, fewer faces
What key [binding] does what again? The “Visual Studio 2010 Keybinding Cards” for C++, C#, F# and VB
Can you smell it? VS2008 RTM is getting close (and it smells good...) - Visual Basic 2008 Keybinding Reference Poster
One step toward becoming a Visual Studio Keyboard Shortcut Ninja – ShortcutVisualizer Visual Studio Addin

No comments: