PowerCommands for Visual Studio 2008 is now available for free download, along with source code and a readme document. PowerCommands, is a set of useful extensions for the Visual Studio 2008 adding additional functionality to various areas of the IDE.

The source code, which requires the VS SDK for VS 2008 installed, can be used to modify the exisitng PowerCommands functionality or to use as a reference sample for creating additional custom menu extensions.

PowerCommands is the type of extension for Visual Studio that contains additional command menu functions for the VS IDE that most VS developers would use regularly. Some of these cool menu commands are being considered for new IDE features in the next version of Visual Studio. PowerCommands makes a great complementary PowerToy utility to both StickyNotes and the Source Code Outliner PowerToy.

PowerCommands.jpg

Below is a list of the included in PowerCommands for Visual Studio 2008 version 1.0. Refer to the Readme document which includes many additional screenshots.

Collapse Projects
This command collapses a hierarchy in the solution explorer starting from the root selected node. It can be executed from three different places: solution, solution folders and project nodes respectively.

Copy Class
This command copies a selected class entire content to the clipboard. It can be executed from a single project item or a project item with dependent sub items.

Paste Class
This command pastes a class entire content from the clipboard. It can be executed from a project or folder node.

Copy References
This command copies a reference or set of references to the clipboard. It can be executed from the references node, a single reference node or set of reference nodes.

Paste References
This command pastes a reference or set of references from the clipboard. It can be executed from different places depending on the type of project. For CSharp projects it can be executed from the references node. For Visual Basic and Website projects it can be executed from the project node.

Copy As Project Reference
This command copies a project as a project reference to the clipboard. It can be executed from a project node.

Edit Project File
This command opens the MSBuild project file for a selected project inside Visual Studio. It can be executed from a project node.

Open Containing Folder
This command opens a Windows Explorer window pointing to the physical path of a selected item. It can be executed from a project item node

Open Command Prompt
This command opens a Visual Studio command prompt pointing to the physical path of a selected item. It can be executed from four different places: solution, project, folder and project item nodes respectively.

Unload Projects
This command unloads all projects in a solution. It can be executed from the solution node.

Reload Projects
This command reloads all unloaded projects in a solution. It can be executed from the solution node.

Remove and Sort Usings
This command removes and sort using statements for all classes given a project. It can be executed from a solution node or a single project node.
Note: The Remove and Sort Usings feature is only available for C# projects since the C# editor implements this feature as a command in the C# editor (which this command calls for each .cs file in the project). The Visual Basic IDE implements this functionality for Imports in an interactive way: Project properties, go to the References tab, then click the Unused References... button, then select which references you want removed via a listbox.

Extract Constant
This command creates a constant definition statement for a selected text. It can be executed from the code window over a selected text.

Clear Recent File List
This command clears the Visual Studio recent file list.

Clear Recent Project List
This command clears the Visual Studio recent project list.

Transform Templates
This command executes the associated custom tool with text templates items. It can be executed from a DSL project node or a folder node.

Close All
This command closes all documents. It can be executed from a document tab.