This documentation is archived and is not being maintained.

Language Service Overview (Managed Package Framework)

Updated: July 2008

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.

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 generate a scanner, and MPPG takes a yacc-like specification to produce a parser. You include the specification files in your project, together with the Managed Babel source code, 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 Managed Babel source code in

Visual Studio SDK installation path\VisualStudioIntegration\Common\Source\CSharp\Babel

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.


MPLex and MPPG are written on .NET Framework 2.0. They are not supported on earlier versions of the .NET Framework.

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

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.




July 2008

Rewrote and refactored project.

Content bug fix.