ProvideLanguageServiceAttribute 类

定义

通知 Visual Studio VSPackage 提供语言服务。 与托管包框架一起使用 (MPF) 。

public ref class ProvideLanguageServiceAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
public ref class ProvideLanguageServiceAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
public sealed class ProvideLanguageServiceAttribute : Microsoft.VisualStudio.Shell.RegistrationAttribute
[<System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)>]
type ProvideLanguageServiceAttribute = class
    inherit RegistrationAttribute
Public NotInheritable Class ProvideLanguageServiceAttribute
Inherits RegistrationAttribute
继承
ProvideLanguageServiceAttribute
属性

示例

此示例演示如何使用此用户定义的属性来注册支持 IntelliSense 操作、大括号匹配、异步 (背景) 分析和自定义着色项的语言服务。

注意

Visual C# 通过删除名称的“Attribute”部分,允许用户定义属性的速记形式。 此速记形式用于本类和所有其他示例中。

using Microsoft.VisualStudio.Shell;  

namespace MyLanguagePackage  
{  
    internal class MyConstants  
    {  
        public const string languageName           = "MyLanguage";  
        public const int    languageNameResourceID = 106;  
    }  

    [ProvideLanguageService(typeof(MyLanguageService),  
                            MyConstants.languageName,  
                            MyConstants.languageNameResourceID,  
        // Optional language service properties  
        CodeSense             = true,  // General IntelliSense support  
        RequestStockColors    = false, // Custom colorable items  
        EnableASyncCompletion = true,  // supports background parsing  
        MatchBraces           = true,  // Match braces on command  
        MatchBracesAtCaret    = true   // Match braces while typing  
                           )]  

    class MyLanguagePackage  
    {  
    }  
}  

注解

此用户定义的属性 (特定于 Visual C#) 用于提供向 Visual Studio 注册语言服务所需的信息。 此属性指定的值作为元数据存储在程序集中。 此元数据稍后由 VSIP SDK) regpkg.exe (等程序用于创建相应的注册表项和条目,以告知 Visual Studio 语言服务。

受 影响的 ProvideLanguageServiceAttribute 注册表项位于以下注册表项下:

HKEY_LOCAL_MACHINE\  
  SOFTWARE\  
    Microsoft\  
      VisualStudio\  
        [X.Y]\  
          Languages\  
            Language Services\  
              [language name]\  
                (Default) = reg_sz: [Language Service GUID]  
                Package   = reg_sz: [Package GUID]  
                LangResID = reg_dword: [language name resource ID]  

其中 [X.Y] 是 Visual Studio 的版本,例如 8.0Exp, [语言名称] 是类构造函数) 的第二个参数 ProvideLanguageServiceAttribute 中指定的语言 (的名称。

注意

每个属性指定其影响的确切注册表项,因此这些条目不会在上面的示例中显示。 这些附加条目与显示的三个条目在同一级别显示。

类构造函数指定所需的最小参数。 用户定义的属性类还支持可选的命名参数。 这些命名参数在构造函数的参数列表中指定为所需参数。 此类上支持 get 和 set 运算符的所有属性都可以指定为命名参数。 此示例演示如何使用命名参数。

注意

某些命名参数特定于托管包框架 (MPF) ,每个属性说明中都记录了这些参数。

以下用户定义的属性用于语言服务:

Attribute 说明
ProvideLanguageServiceAttribute 将语言服务注册到 Visual Studio 并指定支持的功能。
ProvideLanguageExtensionAttribute 将文件扩展名与语言服务相关联。
ProvideLanguageEditorOptionPageAttribute 指定特定于语言服务的“选项”对话框的属性节点或页面。
ProvideLanguageCodeExpansionAttribute 指定位置信息以支持语言服务中的代码片段。
ProvideServiceAttribute 将语言服务注册为 Visual Studio 服务。 托管代码中提供的所有服务都使用此属性。

继承者说明

此属性类无法继承自,因此无需实现任何内容。

调用方说明

此属性类通常应用于主 VSPackage 类,尽管它可以出现在任何类上。 对于 VSPackage 支持的每个语言服务,此类应只出现一次。

构造函数

ProvideLanguageServiceAttribute(Object, String, Int32)

初始化 Shell.ProvideLanguageServiceAttribute 类的新实例。

属性

AutoOutlining

确定语言服务是否支持自动大纲。

CodeSense

确定语言服务是否支持 IntelliSense 操作。

CodeSenseDelay

确定开始分析操作以支持 IntelliSense 操作之前的时间量。

DebuggerLanguageExpressionEvaluator

确定用于计算表达式的表达式计算器。

DefaultToInsertSpaces

确定语言服务的“选项”对话框中“插入空格”选项的默认设置。

DefaultToNonHotURLs

确定“选项”对话框中“启用单单击 URL 导航”选项的初始设置。

EnableAdvancedMembersOption

确定是否在“选项”对话框中启用“隐藏高级成员”选项。

EnableAsyncCompletion

确定语言是否支持后台分析。

EnableCommenting

确定语言服务是否可以使用单个命令对源代码进行注释和取消注释。

EnableFormatSelection

确定语言服务是否支持源代码的自动格式设置。

EnableLineNumbers

确定是否可以在“选项”对话框中选择“行号”选项。

FontColorDefaults

通知 Visual Studio VSPackage 提供语言服务。 与托管包框架一起使用 (MPF) 。

HideAdvancedMembersByDefault

确定“选项”对话框中“隐藏高级成员”选项的初始状态。

LanguageName

返回语言名称。

LanguageResourceID

返回用于获取语言名称本地化版本的资源 ID。

LanguageServiceSid

通知 Visual Studio VSPackage 提供语言服务。 与托管包框架一起使用 (MPF) 。

MatchBraces

确定语言服务是否支持匹配的语言对。

MatchBracesAtCaret

确定语言服务在键入时是否支持匹配的语言对。

MaxErrorMessages

确定语言服务可以报告分析操作的最大错误消息数。

QuickInfo

确定语言服务是否支持 IntelliSense 快速信息。

RequestStockColors

确定语言服务是否使用 Visual Studio 提供的内置可着色项。

ShowCompletion

确定是否在“选项”对话框中启用“语句完成”选项。

ShowDropDownOptions

确定是否在“选项”对话框中启用导航栏选项。

ShowHotURLs

确定 URL 的显示方式是否显示为可以单击它们。 未使用此选项。

ShowMatchingBrace

确定匹配的语言对是否显示在状态栏中。

ShowSmartIndent

确定是否在“选项”对话框中启用智能缩进选项。

SingleCodeWindowOnly

确定是否对语言服务禁用“窗口 -> 新建窗口”命令。

SupportCopyPasteOfHTML

确定语言服务是否支持用于复制和粘贴操作的剪贴板格式 HTML。

TypeId

重写 TypeID 属性,使 RegistrationAttribute 派生类能够与 System.ComponentModel.TypeDescriptor.GetAttributes 一起使用 (...) 。仅当派生自此属性的属性需要对可应用于类的实例使用更好的控件时,它才必须重写此属性。

(继承自 RegistrationAttribute)

方法

GetPackageRegKeyPath(Guid)

获取相对于 VSPackage 的应用程序) 注册表根目录 (注册表路径。

(继承自 RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

创建类构造函数指定的所有注册表项和条目。

Unregister(RegistrationAttribute+RegistrationContext)

删除类构造函数指定的所有注册表项和条目。

适用于