March 14, 2016 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 SamplesThese 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 IDEAdd tool windows for new functionalityAdd support in Visual Studio for new programming languagesAdd refactoring or language analyzers to fix and improve codeAdd a custom project type or new project or item templatesEnable high-DPI/high resolution, theme-aware, and high contrast images and icons in your UIFor Visual Studio 2013, only high-DPI images/icons are supported; use the below sample High-DPI_Images_IconsFor 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 hereReach millions of developers via the Visual Studio Gallery…Samples OverviewFor more details see the readme included with each sample.Sample NameDescriptionBasic_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_EyeUses line transformation API to zoom lines in proportion to cursor distanceCode_SweepSearches for words matching terms in an XML schema across a solutionCombo_BoxPlace combo boxes in a Visual Studio toolbarCommandTargetRGBShows how to create a multi-instance tool windowCompletion_Tooltip_CustomizationReplaces the completion tooltip UIDiff_ClassifierClassifier with color highlightingEditor_With_ToolboxCreates a custom toolbox associated with a specific file extensionHigh-DPI_Images_IconsUse these helpers to make your images/icons in VS 2013 only scale on high dense displaysHighlight_WordHighlight any words that match the word currently under the text cursorIntra-text_AdornmentText adornment that replaces hexadecimal color values with color swatchesLightBulb*Creates a custom lightbulb to set text case in text filesMSDNSearchImplements MSDN search functionality directly into Quick SearchMenu_And_Commands*Demonstrates how to add commands to various places in the IDEOok_Language_IntegrationImplements language support for a simple programming languageOptions_Page*Shows how to add custom pages to the Tools / Options dialogReference_PackageBoilerplate containing minimum requirements for a functional extensionReference_ServicesShows how to create and consume services as a service providerRunningDocumentTable(RDT)_Event_ExplorerCreates an explorer grid to log events in a tool windowSingle_File_GeneratorCreates 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_ClassificationClassifier that highlights TODO comments and displays a matching glyphTyping_Speed_MeterDisplays an adornment with a typing speed indicator in the Text EditorWPFDesigner_XMLWPF-based visual designer for editing .vstemplate XML filesWPF_Toolwindow*Provides a sample toolwindow that can host a WPF or WinForms controlWindows_Forms_Controls_InstallerLoads 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 2015An extension built for and by Visual Studio extension authors.See the changelog for changes and roadmap.FeaturesVSCT filesIntellisense for custom GUIDsIntellisense for custom IDsIntellisense for built-in groups and menusImageMoniker IntellisenseSnippetsAuto-sync VSCT commands to C# classEditor marginShows document encodingShows content type of the ITextBuffer under caretShows active classifications under caretShows caret position and selection rangeDialog for digitally signing VSIXsPkgdef/pkgundef filesSyntax highlightingIntellisenseSnippetsBrace matchingValidationFormattingVsixManifest filesAuto-sync to Resx fileAutomatically create .ico file based on icon fileSupport for VsixGallery.comShow Project information (for debug purposes)Export KnownMonikers to PNG fileVS Theme color swatch windowView Activity LogEnable VSIP LoggingItem templatesSnippet fileBrowser Link Provider classEditor drop handler… [Extensibility Tools 2015]Lastly a few MSDN doc’s for anyone getting started build VS Extensions…Starting to Develop Visual Studio ExtensionsIf 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 supportProductivity tools that extend the core IDE experience with additional templates, code refactoring, new dialogs or tool windowsDomain-specific designers for scenarios like data design or cloud supportFor 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?… [Starting to Develop Visual Studio Extensions]Visual Studio User Experience GuidelinesThe 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 ReferenceThis 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 CPSVisual Studio Extension that helps you create Visual Studio ExtensionsThe Future of Visual Studio Extensions is Bright (and easier 🙂Follow @CH9 Follow @coding4fun Follow @gduncan411 Source link