Develop a legacy language service

Applies to: yesVisual Studio noVisual Studio for Mac

Note

This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

This section links to topics that help you create a legacy language service.

Legacy language services are implemented as part of a VSPackage, but the newer way to implement language service features is to use MEF extensions. To find out more about the new way to implement a language service, see Editor and language service extensions.

Note

We recommend that you begin to use the new editor API as soon as possible. This will improve the performance of your language service and let you take advantage of new editor features.

In this section

Provides a model of a minimal language service for the Visual Studio core editor. You can use this model as a guide for creating your own language service.

Discusses the objects required to implement a language service and provides a listing of additional objects that you can use to provide syntax highlighting, method data, and other features.

Describes how to insert a command filter into your language service to intercept commands that the text view would otherwise handle.

Provides information about how to register your language service by using Visual Studio.

Describes how a language service can provide features to support a debugger.

Provides step-by-step instructions for creating and integrating a language service for the core editor.

Discusses how to implement syntax highlighting in your language service.

Discusses statement completion, the process by which a language service helps users finish a language keyword or element that they have started typing.

Describes how to provide method tips for overloaded functions and methods.

Explains the purpose of a hidden text region and provides instructions about how to implement a hidden text region.

Explains the two options that extend outlining support for your language beyond supporting the Collapse to Definitions command.