Samples for building your own Visual Studio extensions
C# C++ PowerShell
Switch branches/tags
Nothing to show
Latest commit f59cecb Jun 7, 2017 @WillBrown2000 WillBrown2000 committed with justcla Upgraded extensibility documentation (#92)
* Updated new picture for ReadMe file.

* Updated Example.BuildProgressBar.png, Updated ReadMe file with correct references.

* Updated Example.CaretFishEye.png and Readme.md with current references

* Updated Example.CodeSweep.png and Readme.md with current references

* ReadMe.md updates and ComboBox.png update

* fixed typo

* Updated ReadMe.md references.

* Updated Example.CommandTargetRGB.png

* Updated references in Readme.md and Example.CompletionTooltipCustimzation.png.  Upgraded to make roundtripable.

* Fixed Typo in Readme.md

* Removed typo.

* Updated ReadMe.md and Example.DiffClassifier.png

* Updated Reame.md and Example.EditorWithToolBox

* Updated Readme.md and Example.SpelllingError.png

* fixed typo

* updated Example.HighlighWord.png and Readme.md

* Updated ReadMe.md and Example.IntraTextAdornment.png

* Updated Example.LightBulb.png and readme.md

* Updated Example.MSDN.png and Readme.md

* Updated Example.MenusAndCommands.png and ReadMe.md

* Fixed Typo

* Updated Example.Ook.png and Readme.md

* updated ReadMe.md

* Updated Example.OptionsPage1.png and Readme.md

* Updated Example.Package.png and readme.md

* Updated Example.Reference.Service.png and Readme.md

* Fixed Typo

* updated Example.RTDEvent.png and readme.md

* Fixed typo.

* Fixed Typo

* Fixed typo in png name

* updated Example.SingleFileGenerator.png and Readme.md

* updated Example.SingleFileGenerator.png

* Updated Example.SccProvider.png and readme.md

* Updated Example.SourceControlStatus.png and readme.md

* Fixed file locations

* Fixed typo

* Updated Readme.md and Example.ToDoClassification.png

* Fixed Typo

* Updated Readme.md

* Updated png and readme.md

* Fixed white space

* Corrected file location

* Updated Example.ToolWindow.png and Readme.md

* Fixed Typo

* Updated Readme.md

* Fixed white space
Permalink
Failed to load latest commit information.
Basic_Source_Control_Provider Upgraded extensibility documentation (#92) Jun 6, 2017
Build_Progress_Bar Upgraded extensibility documentation (#92) Jun 6, 2017
Caret_Fish_Eye Upgraded extensibility documentation (#92) Jun 6, 2017
Code_Sweep Upgraded extensibility documentation (#92) Jun 6, 2017
Combo_Box Upgraded extensibility documentation (#92) Jun 6, 2017
CommandTargetRGB Upgraded extensibility documentation (#92) Jun 6, 2017
Completion_Tooltip_Customization Upgraded extensibility documentation (#92) Jun 6, 2017
Diff_Classifier Upgraded extensibility documentation (#92) Jun 6, 2017
Editor_With_Toolbox Upgraded extensibility documentation (#92) Jun 6, 2017
ErrorList Upgraded extensibility documentation (#92) Jun 6, 2017
High-DPI_Images_Icons More readme cleanup Dec 30, 2015
Highlight_Word Upgraded extensibility documentation (#92) Jun 6, 2017
Intra-text_Adornment Upgraded extensibility documentation (#92) Jun 6, 2017
LightBulb Upgraded extensibility documentation (#92) Jun 6, 2017
MSDNSearch Upgraded extensibility documentation (#92) Jun 6, 2017
Menu_And_Commands Upgraded extensibility documentation (#92) Jun 6, 2017
Ook_Language_Integration Upgraded extensibility documentation (#92) Jun 6, 2017
Open_Folder_Extensibility Upgraded extensibility documentation (#92) Jun 6, 2017
Options_Page Upgraded extensibility documentation (#92) Jun 6, 2017
Reference_Package Upgraded extensibility documentation (#92) Jun 6, 2017
Reference_Services Upgraded extensibility documentation (#92) Jun 6, 2017
RunningDocumentTable(RDT)_Event_Explorer Upgraded extensibility documentation (#92) Jun 6, 2017
Single_File_Generator Upgraded extensibility documentation (#92) Jun 6, 2017
Source_Code_Control_Provider Upgraded extensibility documentation (#92) Jun 6, 2017
Source_Control_Provider_Status_Bar_Integration Upgraded extensibility documentation (#92) Jun 6, 2017
Todo_Classification Upgraded extensibility documentation (#92) Jun 6, 2017
Typing_Speed_Meter Upgraded extensibility documentation (#92) Jun 6, 2017
WPFDesigner_XML Upgraded extensibility documentation (#92) Jun 6, 2017
WPF_Toolwindow Upgraded extensibility documentation (#92) Jun 6, 2017
Windows_Forms_Controls_Installer Upgraded extensibility documentation (#92) Jun 6, 2017
.gitattributes Add the all-important .gitattributes file Mar 20, 2016
.gitignore Use project.json in all samples Mar 22, 2016
ISSUE_TEMPLATE.md Adding GitHub ISSUE_TEMPLATE Apr 4, 2016
LICENSE Initial commit Jun 23, 2015
NuGet.config Merge remote-tracking branch 'origin/master' into FixBuildIssues Mar 24, 2016
README.md Deprecate VS2013 content and update references May 31, 2017
Visual Studio Code.lnk Added files via upload May 1, 2016
appveyor.yml Move build script from appveyor.yml to build.ps1 Jun 5, 2016
build.ps1 Move build script from appveyor.yml to build.ps1 Jun 5, 2016

README.md

Visual Studio Extensibility Samples

Join the chat at https://gitter.im/Microsoft/extendvs Build status

These samples demonstrate how to customize the appearance and behavior of the Visual Studio IDE and editor. 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

If you've never written a Visual Studio extension before, we've got some great resources to get started.

Getting started

  1. Clone the repo to download all samples (How to)

    git clone https://github.com/Microsoft/VSSDK-Extensibility-Samples.git

  2. Find samples in the table below

  3. Read the readme included with each sample and try it in Visual Studio

Samples overview

For more details see the readme included with each sample.

Sample Name Description
Basic_Source_Control_Provider* Shows how to add hooks for a simple source code provider
Build_Progress_Bar* Displays a tool window written in WPF showing build progress
Caret_Fish_Eye Uses line transformation API to zoom lines in proportion to cursor distance
Code_Sweep Searches for words matching terms in an XML schema across a solution
Combo_Box Place combo boxes in a Visual Studio toolbar
CommandTargetRGB Shows how to create a multi-instance tool window
Completion_Tooltip_Customization Replaces the completion tooltip UI
Diff_Classifier Classifier with color highlighting
Editor_With_Toolbox Creates a custom toolbox associated with a specific file extension
High-DPI_Images_Icons Use these helpers to make your images/icons in VS 2013 only scale on high dense displays
Highlight_Word Highlight any words that match the word currently under the text cursor
Intra-text_Adornment Text adornment that replaces hexadecimal color values with color swatches
LightBulb* Creates a custom lightbulb to set text case in text files
MSDNSearch Implements MSDN search functionality directly into Quick Search
Menu_And_Commands* Demonstrates how to add commands to various places in the IDE
Ook_Language_Integration Implements language support for a simple programming language
Options_Page* Shows how to add custom pages to the Tools / Options dialog
Reference_Package Boilerplate containing minimum requirements for a functional extension
Reference_Services Shows how to create and consume services as a service provider
RunningDocumentTable(RDT)_Event_Explorer Creates an explorer grid to log events in a tool window
Single_File_Generator Creates a file generator that uses XML as basis for creating a new C# file
Source_Code_Control_Provider* More complex example of a source code provider
Source_Control_Provider_Status_Bar_Integration Display source control information in the Status Bar.
Todo_Classification Classifier that highlights TODO comments and displays a matching glyph
Typing_Speed_Meter Displays an adornment with a typing speed indicator in the Text Editor
WPFDesigner_XML WPF-based visual designer for editing .vstemplate XML files
WPF_Toolwindow* Provides a sample toolwindow that can host a WPF or WinForms control
Windows_Forms_Controls_Installer Loads custom Windows Forms controls inside the toolbox
ErrorList generates errors in error list when the user spelling errors in the editor

High-quality icons and image assets

Visual Studio 2015 introduced support for the Image Service, which makes it easy for your extension to support high-DPI displays, Visual Studio themes and high contrast modes for accessibility. We also have a catalog of thousands of icons and images that you can use as part of your extension for consistency with other parts of the Visual Studio interface. Samples that demonstrate using the Image Service / Catalog are denoted with * in the list above. We also have an Image Service and Catalog cookbook, which provides extensive documentation on using these capabilities.

For Visual Studio 2013, only high-DPI images/icons are supported; the High-DPI_Images_Icons sample shows examples of the limited support available.

Other extensibility samples

  • If you're building XAML controls for UWP that are deployed as NuGet packages, you can add design-time support so that they automatically appear in the toolbox when they are referenced. This sample is in the NuGet repo.

  • We have separate repositories and documentation for writing extensions for other members of the Visual Studio family:

Other useful resources

  • Publish your completed extension to the Visual Studio Marketplace, which provides a convenient place for developers to find and install your extension.

  • Join the Visual Studio Partner Program for free to get access to dedicated resources to support you as an extension publisher.

  • For details on how to create user experiences that are seamless and consistent within the IDE, visit the Visual Studio User Experience Guidelines. You will also find information about the common user models and interaction patterns that are used and how you can utilize them as well.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Thank you for your support for Visual Studio - we're excited to see what extensions you build!