• Stars
    star
    153
  • Rank 243,368 (Top 5 %)
  • Language
    C#
  • License
    Other
  • Created over 9 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Tools for writing Visual Studio extensions

Extensibility Tools for Visual Studio

Build status

Download this extension from the VS Gallery or get the nightly build.


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
  • Create ImageManifest files

VSCT files

The Visual Studio Command Table leaves a lot to be desired in terms of both Intellisense and discoverability of even the most common use cases.

This extension improves on that.

Intellisense for custom GUIDs

Get Intellisense for symbols and groups through out the .vsct file whether you're defining Groups, Menus, Buttons, KeyBindings or CommandPlacements.

VSCT Intellisense GUIDs

Intellisense for custom IDs

Provides Intellisense for IDs based on the guid attribute on the same XML element.

VSCT Intellisense IDs

Intellisense built-in groups and menus

All the built-in groups and menus are located under the guidSHLMainMenu GUID and Intellisense is now provided for all the corresponding IDs.

VSCT Intellisense groups menus

ImageMoniker Intellisense

Over 3500 images is available as ImageMonikers in the KnownMonikers collection in VS. You can now see all the images directly inside Intellisense.

VSCT Intellisense groups menus

Snippets

All main XML elements in the VSCT file has snippets associated with them and can be invoked by hitting the Tab key.

VSCT snippets

Auto-sync VSCT commands

Auto-generate the PackageGuids and PackageIds classes every time you save the VSCT file. This keeps your code in sync with the VSCT file at all times.

VSCT auto-sync

Feature contributed by phofman

Editor margin

The margin is located below the bottom scrollbar and comes in handy when writing extensions that extends the VS editor.

Bottom margin

Document encoding

Shows the encoding of the current document and more details on hover.

Document encoding

Content type

Shows the content type of the ITextBuffer at the caret position. The over tooltip shows the name of the base content type.

Classification

Displays the name of the classification at the caret position in the document. The hover tooltip shows the inheritance hierarchy of the EditorFormatDefinition's BaseDefinition attribute.

Classifications

Selection

Displays the start and end position of the editor selection as well as the total length of the selection.

Selection

Pkgdef files

Syntax highlighting

Colorizes registry keys, strings, keywords, comments and more.

Pkgdef colorization

Intellisense

Intellisense is provided for tokens and GUIDs.

Pkgdef token Intellisense

Pkgdef token Intellisense

Snippets

By typing a question mark on an empty line, a list of snippets appear. Hit Tab on the snippet you want and it will be inserted.

Pkgdef snippets

Brace matching

Matches parentheses and square brackets.

Validation

Validates various common mistakes like unknown tokens and unclosed strings and braces.

Pkgdef validation

Formatting

Format the entire document or just the selected lines.

VsixManifest files

You can enable auto-sync on any .vsixmanifest file. Simply right-click the file in Solution Explorer and select Auto-sync Resx and Icon Files.

Auto-sync vsixmanifest

Auto-sync resx files

This will generate a file called source.extension.resx that is designed to replace the VSPackage.resx file that is added by default by the VSIX project template.

Whenever you change the .vsixmanifest file, the .resx files is updated accordingly as well.

Auto-sync icon file

Icon files (.ico) are always hard to create and maintain, so this feature will auto-generate it for you automatically.

All that is required is that you've referenced an image file in the .vsixmanifest's Icon property and a new .ico file is automtically generated with the right dimensions for VS extensions.

Auto-sync C# class file

A C# class file is also produced which contains a static class with various string constants such as Name, Description and Version of the VSIX.

Example:

namespace MyExtension
{
    public static class Vsix
    {
        public const string Id = "f86b5aa5-733c-4e8f-8d3b-ea6f9b97b344";        
        public const string Name = "Name of VSIX";
        public const string Description = "Description of VSIX";
        public const string Version = "1.0";
    }
}

Support for VsixGallery.com

VsixGallery.com is an open source gallery for Visual Studio extensions and is primarily used for hosting CI built extensions - a staging environment.

There are two things that make automatic integration with VsixGallery.com easy. Put your code on GitHub and automate the build process with AppVeyor.

It sounds like a lot of work, but it isn't. Right-click the solution node in Solution Explorer and click both of the buttons shown below.

vsixgallery.com

That will add some files to the solution folder that require almost no modifications by you. These files are AppVeyor.yml as well as common GitHub files such as CONTRIBUTION.md (tailored to VSIX development), CHANGELOG.md etc.

Read more about adding your extension to VsixGallery.

Show Project Information

A context-menu command is available on every project type that makes it very easy to see all the properties on said project.

Show Project Information

This makes it easy to troubleshoot and debug project related issues.

Export KnownMonikers to file

You can now easily export any of the KnownMonikers from IVsImageService2 to a PNG file on disk in the size you need it in.

Export Knownmonikers

The button to invoke the Export Image Moniker dialog is located in the top level Tools menu.

Theme color swatch window

To see all the VS environment colors available used in the Light, Blue and Dark theme, you can use the Theme Swatches window.

Open it from View -> Other Windows -> Theme Swatches

Theme Swatches

The tool window lets you search for colors and provides an easy way to copy them into XAML or C#.

Theme Swatches

View Activity Log

Getting to the Visual Studio Activity Log can sometimes be a bit cumbersome when dealing with both the regular and the experimental instance.

A menu command under the top level View menu let's you open the right Activity Log easily.

View Activity Log

This will open the Activity Log in the Visual Studio web browser.

Enable VSIP Logging

VSIP Logging allows you to see GUIDs and command ids for menu commands. Just press Ctrl+Shift as you click a menu item or group with the mouse.

Enable VSIP Logging

Read more about VSIP Logging.

Item Templates

Several item templates are added to make it easier to create extension. These item templates all come with functionality that's easy to modify to your needs.

Item Templates

Create Image Manifest files

Right-click any .png or .xaml files and invoke the Generate Image Manifest command from the context menu.

This will ask you where to put the .imagemanifest file and then generate it. If a .imagemanifest file already exist, the guid will remain the same but the sources and IDs will be updated.

Contribute

Check out the contribution guidelines if you want to contribute to this project.

License

Apache 2.0

More Repositories

1

Miniblog.Core

An ASP.NET Core blogging engine
JavaScript
1,466
star
2

WebEssentials2013

Visual Studio extension
C#
949
star
3

MiniBlog

A minimal blog engine using Razor Web Pages
C#
915
star
4

BundlerMinifier

Visual Studio extension
C#
616
star
5

ShortcutExporter

Visual Studio extension
C#
481
star
6

WebCompiler

Visual Studio extension for compiling LESS and Sass files
C#
448
star
7

MarkdownEditor

A Visual Studio extension
C#
397
star
8

WebEssentials.AspNetCore.ServiceWorker

C#
342
star
9

WebEssentials2015

A Visual Studio extension for web developers
C#
302
star
10

AddAnyFile

A Visual Studio extension
C#
256
star
11

Tweakster

A Visual Studio extension
C#
241
star
12

PhotoGallery

ASP.NET Core Photo Gallery
C#
172
star
13

MarkdownEditor2022

A Visual Studio extension
C#
168
star
14

OpenCommandLine

A Visual Studio extension
C#
158
star
15

JavaScriptPrettier

A Visual Studio extension
C#
151
star
16

RainbowBraces

A Visual Studio extension
C#
132
star
17

EditorConfigLanguage

A Visual Studio extension
C#
129
star
18

FileDiffer

A Visual Studio extension
C#
128
star
19

TrailingWhitespace

Display trailing whitespace in any VS editor
C#
118
star
20

PrivateGalleryCreator

Create private extension galleries for Visual Studio
C#
118
star
21

FileNesting

Nest files in Solution Explorer
C#
117
star
22

FileIcons

A Visual Studio extension
C#
115
star
23

WebEssentials2012

C#
96
star
24

NpmTaskRunner

Visual Studio extension
C#
88
star
25

TypeScriptDefinitionGenerator

A Visual Studio extension
C#
85
star
26

SolutionColors

A Visual Studio extension
C#
76
star
27

ZenCodingVS

A Visual Studio extension
C#
70
star
28

ExtensionPackTools

A Visual Studio extension
C#
67
star
29

MarkSite

A markdown powered CMS written in ASP.NET
C#
66
star
30

TextmateBundleInstaller

A Visual Studio extension
C#
65
star
31

RestClientVS

C#
65
star
32

ShowTheShortcut

A Visual Studio extension
C#
65
star
33

PackageInstaller

A Visual Studio extension
C#
64
star
34

CodeCleanupOnSave

C#
62
star
35

VuePack

C#
61
star
36

OpenInVsCode

A Visual Studio extension
C#
61
star
37

WebAnalyzer

A Visual Studio extension
C#
55
star
38

WebEssentials.AspNetCore.OutputCaching

C#
53
star
39

CommentRemover

A Visual Studio extension
C#
51
star
40

WebEssentials.AspNetCore.CdnTagHelpers

A CDN helper for ASP.NET Core
C#
49
star
41

WebEssentials2019

C#
49
star
42

ImageOptimizerWebJob

C#
47
star
43

DialToolsForVS

A Visual Studio extension
C#
47
star
44

ReverseProxyCDN

C#
42
star
45

CommandTaskRunner

A Visual Studio extension
C#
42
star
46

JSON-Intellisense

NPM package Intellisense in package.json
C#
40
star
47

WebPackTaskRunner

A Visual Studio extension
C#
40
star
48

VuePack2017

A Visual Studio extension
C#
38
star
49

AspNetCoreTemplatePack

C#
38
star
50

SolutionExtensions

A Visual Studio extension
C#
36
star
51

FeedCollector

A simple website for aggregating RSS/Atom feeds
C#
36
star
52

WebAccessibilityChecker

A Visual Studio extension
C#
34
star
53

VsixGallery

The Open VSIX Gallery
C#
34
star
54

ClearComponentCache

A Visual Studio extension
C#
33
star
55

Surrounder

A Visual Studio extension
C#
33
star
56

PrettyPaste

Fixes the added blank lines when copying and pasting from IE
C#
32
star
57

ImageSprites

A Visual Studio extension
C#
32
star
58

Editorsk

A Visual Studio extension
C#
30
star
59

JavaScriptSnippetPack

A Visual Studio extension
Vim Snippet
30
star
60

CloseAllTabs

A Visual Studio extension
C#
30
star
61

WorkspaceFiles

C#
30
star
62

IgnoreFiles

A Visual Studio extension
C#
29
star
63

DarkTheme2019

C#
29
star
64

zencoding

Provides hybrid ZenCoding for Web Essentials
C#
29
star
65

CommandTableInfo

A Visual Studio extension
C#
29
star
66

Madskristensen.VisualStudio.SDK

Visual Studio SDK meta packages
29
star
67

ImagePreview

C#
28
star
68

ExtensionGallery

A Visual Studio extension gallery
C#
28
star
69

Packman

A client-side package manager
C#
28
star
70

KnownMonikersExplorer

A Visual Studio extension
C#
28
star
71

SvgViewer

Shows the rendered image of .svg files
C#
27
star
72

SqlFormatter

C#
27
star
73

TemplateCreator

A Visual Studio extension
C#
27
star
74

BasicEssentials

26
star
75

DeveloperNews

C#
26
star
76

BrowserReloadOnSave

A Visual Studio extension
C#
26
star
77

StaticWebHelper

Perf optimize static websites hosted on IIS
C#
25
star
78

MIDL

A Visual Studio extension
C#
24
star
79

Community.VisualStudio.Toolkit

A community toolkit for writing Visual Studio extensions
C#
24
star
80

vswebessentials.com

The official website of Web Essentials for Visual Studio
C#
23
star
81

ExtensionUpdater

Visual Studio extension for auto updating extensions
C#
23
star
82

CssTools

A Visual Studio extension
C#
22
star
83

ExtensionScripts

PowerShell
22
star
84

InsertGuid

A Visual Studio extension
C#
22
star
85

CopyNice

A Visual Studio extension
C#
22
star
86

ErrorHighlighter

Visual Studio extension
C#
21
star
87

EditorColorPreview

C#
21
star
88

JsonSchemaGenerator

A Visual Studio extension
C#
20
star
89

SpaTemplatePack

A Visual Studio extension
C#
20
star
90

VsctIntellisense

Intellisense for VSCT files
C#
20
star
91

Madskristensen.VisualStudio.SDK.HelpersOLD

C#
19
star
92

PkgdefLanguage

A Visual Studio extension
C#
19
star
93

JavaScriptRegions

A Visual Studio extension
C#
19
star
94

OptionsSample

A Visual Studio extension sample
C#
19
star
95

GitHubThemes

C#
18
star
96

WebEssentialsChrome

A browser extension
JavaScript
18
star
97

OutputWindowFilter

C#
17
star
98

MiniBlogFormatter

C#
17
star
99

ShowKeybindings

A Visual Studio extension
HTML
17
star
100

GitPull

Easy way to "git pull" in Visual Studio
C#
16
star