VS Extensibility Samples, Extension Extension and more...
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...
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
For more details see the readme included with each sample.
Shows how to add hooks for a simple source code provider
Displays a tool window written in WPF showing build progress
Uses line transformation API to zoom lines in proportion to cursor distance
Searches for words matching terms in an XML schema across a solution
Place combo boxes in a Visual Studio toolbar
Shows how to create a multi-instance tool window
Replaces the completion tooltip UI
Classifier with color highlighting
Creates a custom toolbox associated with a specific file extension
Use these helpers to make your images/icons in VS 2013 only scale on high dense displays
Highlight any words that match the word currently under the text cursor
Text adornment that replaces hexadecimal color values with color swatches
Creates a custom lightbulb to set text case in text files
Implements MSDN search functionality directly into Quick Search
Demonstrates how to add commands to various places in the IDE
Implements language support for a simple programming language
Shows how to add custom pages to the Tools / Options dialog
Boilerplate containing minimum requirements for a functional extension
Shows how to create and consume services as a service provider
Creates an explorer grid to log events in a tool window
Creates a file generator that uses XML as basis for creating a new C# file
More complex example of a source code provider
Classifier that highlights TODO comments and displays a matching glyph
Displays an adornment with a typing speed indicator in the Text Editor
WPF-based visual designer for editing .vstemplate XML files
Provides a sample toolwindow that can host a WPF or WinForms control
Loads custom Windows Forms controls inside the toolbox
Second we want to re-highlight Mads Kristensen's awesome Extension extension...
An extension built for and by Visual Studio extension authors.
See the changelog for changes and roadmap.
- VSCT files
- Intellisense for custom GUIDs
- Intellisense for custom IDs
- Intellisense for built-in groups and menus
- ImageMoniker Intellisense
- Auto-sync VSCT commands to C# class
- Editor margin
- Shows document encoding
- Shows content type of the
- Shows active classifications under caret
- Shows caret position and selection range
- Dialog for digitally signing VSIXs
- Pkgdef/pkgundef files
- Syntax highlighting
- Brace matching
- 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...
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
Which Visual Studio features can I extend?
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).
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 :)