Language Services

link: http://msdn.microsoft.com/en-us/library/bb165099.aspx

利用vs开发自己的新语言的方法:语言服务

The purpose of a language service in Visual Studio is to provide language-specific support for editing source code in the integrated development environment (IDE). You implement a language service as part of a VSPackage.

This section discusses the structure and implementation of a Visual Studio language service.

For an end-to-end sample of a language project system that incorporates a language service, see theIronPython Samples. 

Language Service Essentials

To integrate a programming language into Visual Studio, you must provide a language service. You can develop the service in either managed or native code.

  • For managed code, you can use the Managed Package Framework. For more information, see Implementing a Language Service By Using the Managed Package Framework.

  • For either managed or native code, you can implement the language service interfaces directly. For more information, seeChecklist: Creating a Language Service.


    Language Service Overview (Managed Package Framework)

    A language service provides editor support that lets you implement certain Visual Studio features. The Managed Package Framework (MPF) language service classes provide full support for frequently-used features and partial support for other features.

      Fully Supported Features in the MPF

    The MPF language service classes support the following features:

    • Syntax highlighting

    • Outlining

    • Commenting blocks of code

    • Brace matching

    • Code snippets

    • Custom document properties

    • IntelliSense parameter information

    • IntelliSense Quick Info

    • IntelliSense member completion

    • IntelliSense word completion

      Partially Supported Features in the MPF

    The MPF provides only partial support for the following features. This means that you must implement the methods that are called by the MPF.

    • Reformatting code. You supply the code that implements the reformatting.

    • Validating breakpoints by identifying valid code spans. You supply the code that identifies the code spans.

    • Supporting the debugger Autos window for displaying variables. You supply the code that determines what to show in the window.

    • Supporting the Navigation bar for quick navigation between types and members. You implement and return a helper class that populates the lists in the Navigation bar combo boxes.

 
原文地址:https://www.cnblogs.com/xiexiaokui/p/2060053.html