Extending the Editor

You can extend most features of the Visual Studio code editor by using the Managed Extensibility Framework (MEF) instead of implementing a VSPackage. For example, if the editor feature you want to extend is syntax coloring, you can write a MEF component part that defines the classifications for which you want different coloring and how you want them handled. The editor also supports multiple extensions of the same feature.

The editor presentation layer is based the Windows Presentation Framework (WPF). WPF provides a graphics library for flexible text formatting, and also provides visualizations such as graphics and animations.

The Visual Studio SDK provides adapters known as shims to support VSPackages that were written for earlier versions. Nevertheless, if you have an existing VSPackage, we recommend that you update it to the new technology to obtain better performance and reliability.

Title

Description

Getting Started with Editor Extensions

Explains how to create an extension to the editor.

Using Editor Templates to Create Extensions

Explains how to use the editor extension templates to create an extension.

Inside the Editor

Describes the general structure of the editor, and lists some of its features.

Managed Extensibility Framework in the Editor

Explains how to use the Managed Extensibility Framework (MEF) with the editor.

Editor Extension Points

Lists the extension points of the editor. Extension points represent the editor features that can be extended.

Editor Imports

Lists the services that an extension can import.

Adapting Legacy Code to the New Editor

Explains different ways to adapt legacy code to extend the editor.

Migrating a Legacy Language Service

Explains how to migrate a legacy language service.

Walkthrough: Linking a Content Type to a File Name Extension

Shows how to link a content type to a file name extension.

Walkthrough: Creating a Margin Glyph

Shows how to add an icon to a margin.

Walkthrough: Highlighting Text

Shows how to use tags to highlight text.

Walkthrough: Outlining

Shows how to add outlining for specific kinds of braces.

Walkthrough: Displaying Matching Braces

Shows how to highlight matching braces.

Walkthrough: Displaying QuickInfo Tooltips

Shows how to display QuickInfo popups that describe elements of code such as properties, methods, and events.

Walkthrough: Displaying Signature Help

Shows how to display popups that give information about the number and types of parameters in a signature.

Walkthrough: Displaying Statement Completion

Shows how to implement statement completion.

Walkthrough: Implementing Code Snippets

Shows how to implement code-snippet expansion.

Walkthrough: Displaying SmartTags

Shows how to implement smart tags.

Walkthrough: Using a Shell Command with an Editor Extension

Shows how to associate a menu command in a VSPackage with a MEF component.

Walkthrough: Using a Shortcut Key with an Editor Extension

Shows how to associate a menu shortcut in a VSPackage with a MEF component.

Managed Extensibility Framework Overview

Provides information about the Managed Extensibility Framework (MEF).

Windows Presentation Foundation

Provides information about the Windows Presentation Foundation (WPF).

Reference

The Visual Studio editor includes the following namespaces.

Microsoft.VisualStudio.Language.Intellisense

Microsoft.VisualStudio.Language.StandardClassification

Microsoft.VisualStudio.Editor

Microsoft.VisualStudio.Text

Microsoft.VisualStudio.Text.Adornments

Microsoft.VisualStudio.Text.Classification

Microsoft.VisualStudio.Text.Differencing

Microsoft.VisualStudio.Text.Document

Microsoft.VisualStudio.Text.Editor

Microsoft.VisualStudio.Text.Editor.OptionsExtensionMethods

Microsoft.VisualStudio.Text.Formatting

Microsoft.VisualStudio.Text.IncrementalSearch

Microsoft.VisualStudio.Text.Operations

Microsoft.VisualStudio.Text.Outlining

Microsoft.VisualStudio.Text.Projection

Microsoft.VisualStudio.Text.Tagging

Microsoft.VisualStudio.Utilities

Change History

Date

History

Reason

August 2010

Added a link to a walkthrough that teaches how to implement code snippets.

Information enhancement.