This week is going to be a Visual Studio Extension Theme Week and what better way to kick if off then to highlight a number of great resources for creating them!
First a shout-out to Carlos Quintero of http://www.visualstudioextensibility.com for pointing out these resources (and we're going to give him a second one on Wednesday ;)
We start with a must have repo for any VS Extension dev...
Visual Studio Extensibility Samples
These samples demonstrate how to customize the appearance and behavior of the Visual Studio IDE and editor using the Visual Studio SDK. The following are some of the ways in which you can extend Visual Studio:
- Add commands, buttons, menus, and other UI elements to the IDE
- Add tool windows for new functionality
- Add support in Visual Studio for new programming languages
- Add refactoring or language analyzers to fix and improve code
- Add a custom project type or new project or item templates
- Enable high-DPI/high resolution, theme-aware, and high contrast images and icons in your UI
- For Visual Studio 2013, only high-DPI images/icons are supported; use the below sample High-DPI_Images_Icons
- For Visual Studio 2015, samples that demonstrate using the Image Service/Catalog (for high-DPI, theme-aware, and high contrast support) are denoted below with * and docs can be found here
- Reach millions of developers via the Visual Studio Gallery
...
Samples Overview
For more details see the readme included with each sample.
Sample Name
DescriptionBasic_Source_Control_Provider*
Shows how to add hooks for a simple source code providerBuild_Progress_Bar*
Displays a tool window written in WPF showing build progressCaret_Fish_Eye
Uses line transformation API to zoom lines in proportion to cursor distanceCode_Sweep
Searches for words matching terms in an XML schema across a solutionCombo_Box
Place combo boxes in a Visual Studio toolbarCommandTargetRGB
Shows how to create a multi-instance tool windowCompletion_Tooltip_Customization
Replaces the completion tooltip UIDiff_Classifier
Classifier with color highlightingEditor_With_Toolbox
Creates a custom toolbox associated with a specific file extensionHigh-DPI_Images_Icons
Use these helpers to make your images/icons in VS 2013 only scale on high dense displaysHighlight_Word
Highlight any words that match the word currently under the text cursorIntra-text_Adornment
Text adornment that replaces hexadecimal color values with color swatchesLightBulb*
Creates a custom lightbulb to set text case in text filesMSDNSearch
Implements MSDN search functionality directly into Quick SearchMenu_And_Commands*
Demonstrates how to add commands to various places in the IDEOok_Language_Integration
Implements language support for a simple programming languageOptions_Page*
Shows how to add custom pages to the Tools / Options dialogReference_Package
Boilerplate containing minimum requirements for a functional extensionReference_Services
Shows how to create and consume services as a service providerRunningDocumentTable(RDT)_Event_Explorer
Creates an explorer grid to log events in a tool windowSingle_File_Generator
Creates a file generator that uses XML as basis for creating a new C# fileSource_Code_Control_Provider*
More complex example of a source code providerTodo_Classification
Classifier that highlights TODO comments and displays a matching glyphTyping_Speed_Meter
Displays an adornment with a typing speed indicator in the Text EditorWPFDesigner_XML
WPF-based visual designer for editing .vstemplate XML filesWPF_Toolwindow*
Provides a sample toolwindow that can host a WPF or WinForms controlWindows_Forms_Controls_Installer
Loads custom Windows Forms controls inside the toolbox... [Visual Studio Extensibility Samples]
Second we want to re-highlight Mads Kristensen's awesome Extension extension...
Extensibility Tools 2015
An extension built for and by Visual Studio extension authors.
See the changelog for changes and roadmap.
Features
- VSCT files
- Intellisense for custom GUIDs
- Intellisense for custom IDs
- Intellisense for built-in groups and menus
- ImageMoniker Intellisense
- Snippets
- Auto-sync VSCT commands to C# class
- Editor margin
- Shows document encoding
- Shows content type of the
ITextBuffer
under caret- Shows active classifications under caret
- Shows caret position and selection range
- Dialog for digitally signing VSIXs
- Pkgdef/pkgundef files
- Syntax highlighting
- Intellisense
- Snippets
- Brace matching
- Validation
- Formatting
- VsixManifest files
- Auto-sync to Resx file
- Automatically create .ico file based on icon file
- Support for VsixGallery.com
- Show Project information (for debug purposes)
- Export KnownMonikers to PNG file
- VS Theme color swatch window
- View Activity Log
- Enable VSIP Logging
- Item templates
- Snippet file
- Browser Link Provider class
- Editor drop handler
... [Extensibility Tools 2015]
Lastly a few MSDN doc's for anyone getting started build VS Extensions...
Starting to Develop Visual Studio Extensions
If you’ve never written a Visual Studio extension before, you probably have some questions. We’ve listed some of the most common ones here. If you don’t see the information you’re looking for, use the feedback buttons (Was this page helpful? at the bottom of the screen) to ask for what you want.
What software do I need to develop Visual Studio extensions?
You need to install the Visual Studio 2015 SDK in addition to Visual Studio 2015 in order to develop Visual Studio extensions. You can install the Visual Studio 2015 SDK as part of regular setup, or you can install it later on. For more information about installing the Visual Studio SDK, see Visual Studio SDK.
What kinds of things can I do with Visual Studio extensions?
The sky’s the limit when it comes to imagining different Visual Studio extensions. Of course, most extensions have something to do with writing code, but that doesn’t have to be the case. Here are some examples of the kinds of extensions you can build:
Support for languages that aren’t included in Visual Studio, with syntax coloring, IntelliSense, and compiler and debug support
Productivity tools that extend the core IDE experience with additional templates, code refactoring, new dialogs or tool windows
Domain-specific designers for scenarios like data design or cloud support
For examples of extensions, check out the Visual Studio Gallery. You can also take a look at Visual Studio Open Source Extensions.
Which Visual Studio features can I extend?
Visual Studio User Experience Guidelines
The Visual Studio User Experience Guidelines are intended for those who design new features for Visual Studio. These guidelines contain information about common user models and interaction patterns so that designers of new user interfaces (UI) can create user experiences that are seamless and consistent within the development environment.
Developing software for Microsoft products means understanding the guidance provided by Windows. There are three important resources to be aware of:
The Windows User Experience Interaction Guidelines. These guidelines are the basics for Windows desktop behavior and appearance.
These Visual Studio guidelines, which are platform-specific guidelines that supersede the general Windows guidelines wherever appropriate to our environment.
The patterns and guides for Windows Store apps are a reference for emerging patterns that may be used in some instances within Visual Studio.
These guidelines give you information about what to do when designing for Visual Studio, and in some cases information regarding how to do it is also included. For more detailed implementation information and to learn about specific application programming interfaces (APIs) that allow you to write code for solutions that integrate into the Visual Studio integrated development environment (IDE), use the Visual Studio Software Development Kit (SDK).
Visual Studio SDK Reference
This section contains information about Visual Studio namespaces, related namespaces, and other areas of interest for developers who use the Visual Studio SDK.
That should be enough to get you started... :)
Here’s a few more links you might find interesting:
- Extending Visual Studio 2015, VS SDK NuGet and the CPS
- Visual Studio Extension that helps you create Visual Studio Extensions
- The Future of Visual Studio Extensions is Bright (and easier :)
Follow @CH9
Follow @coding4fun
Follow @gduncan411
