Managed Language Service Overview (Managed Package Framework)
A language service provides editor support for a particular programming language. This support lets you implement certain Visual Studio features, depending on the requirements of the programming language. The Managed Package Framework (MPF) language service classes provide full support for frequently used features and partial support for other features.
MPLEX and MPPG
When you create a managed-code language service project, you can use the MPLEX and MPPG tools to generate the scanner and the parser. MPLEX takes a lex-like specification to create a C# scanner. MPPG takes a yacc-like specification to produce a C# parser. Include the specification files in your project, together with the ManagedBabel project, to integrate the generated code with the MPF.
You can find MPLEX and MPPG in Visual Studio SDK installation path\VisualStudioIntegration\Tools\Bin\.
You can find the supporting documentation in Visual Studio SDK installation path\VisualStudioIntegration\ExtraDocumentation\. Look for Managed Babel Overview.pdf, MPLEX.pdf, and MPPG.pdf.
Notes
MPLEX and MPPG are written on .NET Framework 2.0. They are not supported on earlier versions of the .NET Framework.
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.
Implementation
You must complete several steps to implement the language service itself and the language service features that you want to support for your language. These steps are discussed in the following topics:
Supporting IntelliSense Complete Word (Managed Package Framework)
Supporting IntelliSense Member Completion (Managed Package Framework)
Supporting IntelliSense Parameter Info (Managed Package Framework)
Supporting IntelliSense Quick Info (Managed Package Framework)