Skip to content

Instantly share code, notes, and snippets.


Mads Kristensen madskristensen

View GitHub Profile
madskristensen / SetEditorSettings.cs
Created Aug 22, 2016
How to set basic settings to any language in VS
View SetEditorSettings.cs
using System.ComponentModel.Composition;
using Microsoft.VisualStudio.Text.Editor;
using Microsoft.VisualStudio.Utilities;
namespace YamlSpacesFix
public class YamlCreationListener : IWpfTextViewCreationListener
madskristensen /
Last active Apr 5, 2018
Links to samples of how to use various APIs in the Visual Studio SDK
madskristensen /
Last active May 3, 2018
Extensibility tools
madskristensen / KnownMonikersToBitmap.cs
Created Sep 24, 2015
Uses the IVsImageService2 to convert a KnownMoniker to BitmapSource
View KnownMonikersToBitmap.cs
public static BitmapSource GetImage(ImageMoniker moniker, int size)
ImageAttributes imageAttributes = new ImageAttributes();
imageAttributes.Flags = (uint)_ImageAttributesFlags.IAF_RequiredFlags;
imageAttributes.ImageType = (uint)_UIImageType.IT_Bitmap;
imageAttributes.Format = (uint)_UIDataFormat.DF_WPF;
imageAttributes.LogicalHeight = size;
imageAttributes.LogicalWidth = size;
imageAttributes.StructSize = Marshal.SizeOf(typeof(ImageAttributes));
madskristensen / ImportMefComponent.cs
Last active May 3, 2020
Import MEF components from non-MEF exported classes
View ImportMefComponent.cs
using System.ComponentModel.Composition;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.TableManager;
public class ExtensionPackage : Package
private ITableManagerProvider _tableManagerProvider;
protected override void Initialize()
madskristensen / devenv.pkgundef
Last active Sep 15, 2020
Disable built-in Visual Studio packages
View devenv.pkgundef
// HOW TO:
// Create a file called devenv.pkgundef in the same directory as devenv.exe.
// It's usually located at C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE
// Then call "devenv.exe /updateconfiguration" from an elevated command prompt.
// Each GUID below represent a package that Visual Studio is loading. This is the
// list of package that I personally don't ever use. You can modify the list of
madskristensen / VSIX UIContext
Last active Jan 15, 2021
Shows how to add custom UIContexts
View VSIX UIContext
On the package
"(CSharpFileOpen | VBFileOpen)",
new[] { "CSharpFileOpen", "VBFileOpen" },
new[] { "ActiveEditorContentType:CSharp", "ActiveEditorContentType:Basic" })]
In the VSCT
madskristensen /
Last active Jan 23, 2021
VS extension checklist

Visual Studio Extensibility Checklist

Here is a list of things to make sure to remember before publishing your Visual Studio extension.

Adhere to threading rules

Add the Microsoft.VisualStudio.SDK.Analyzers NuGet package to your VSIX project, which will help you discover and fix common violations of best practices regarding threading.

Add high-quality icon

All extensions should have an icon associated with it. Make sure the icon is a high-quality .png file with the size 90x90 pixels in 96 DPI or more. After adding the icon to your VSIX project, register it in the .vsixmanifest file as both the Icon and Preview image.

Name and description

madskristensen / _Layout.cshtml
Last active Apr 15, 2021
Social sharing buttons for ASP.NET Core
View _Layout.cshtml
<!-- Render the partial -->
@{await Html.RenderPartialAsync("_SocialSharing", ViewData["Title"]);}