ProvideLanguageServiceAttribute 类

请注意 Visual Studio VSPackage 提供语言服务。 用于管理的包结构 (MPF)。

继承层次结构

System.Object
  System.Attribute
    Microsoft.VisualStudio.Shell.RegistrationAttribute
      Microsoft.VisualStudio.Shell.ProvideLanguageServiceAttribute

命名空间:  Microsoft.VisualStudio.Shell
程序集:  Microsoft.VisualStudio.Shell.11.0(在 Microsoft.VisualStudio.Shell.11.0.dll 中)

语法

声明
<AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple := True, Inherited := True)> _
Public NotInheritable Class ProvideLanguageServiceAttribute _
    Inherits RegistrationAttribute
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class ProvideLanguageServiceAttribute : RegistrationAttribute

ProvideLanguageServiceAttribute 类型公开以下成员。

构造函数

  名称 说明
公共方法 ProvideLanguageServiceAttribute 初始化 Shell.ProvideLanguageServiceAttribute 类的新实例。

页首

属性

  名称 说明
公共属性 AutoOutlining 确定语言服务是否支持自动大纲显示。
公共属性 CodeSense 确定语言服务是否支持 IntelliSense 操作。
公共属性 CodeSenseDelay ,在分析操作开始支持 IntelliSense 操作之前,确定时间。
公共属性 DebuggerLanguageExpressionEvaluator 确定为计算表达式的表达式计算器。
公共属性 DefaultToInsertSpaces 确定设置为 选项 对话框的 插入空格 选项的默认语言服务的。
公共属性 DefaultToNonHotURLs 确定最初设置在 选项 对话框的 启用单击 URL 导航 选项。
公共属性 EnableAdvancedMembersOption 确定 隐藏高级成员 选项是否在 选项 对话框中启用。
公共属性 EnableAsyncCompletion 确定该语言是否支持背景分析。
公共属性 EnableCommenting 确定语言服务使用一条命令,是否可以注释和取消对源代码。
公共属性 EnableFormatSelection 确定语言服务是否支持源代码的自动套用格式。
公共属性 EnableLineNumbers 确定 行号 选项是否在 选项 对话框中选择。
公共属性 HideAdvancedMembersByDefault 确定 隐藏高级成员 选项的初始状态在 " 选项 " 对话框中。
公共属性 LanguageName 基础结构。返回该语言的名称。
公共属性 LanguageResourceID 基础结构。返回使用的资源 ID 获取语言名称的本地化版本。
公共属性 LanguageServiceSid 基础结构。返回语言服务的 GUID。
公共属性 MatchBraces 确定语言服务是否支持匹配的语言为。
公共属性 MatchBracesAtCaret 确定语言服务是否支持匹配的语言为,在键入时。
公共属性 MaxErrorMessages 确定语言服务可以用于分析操作在报告错误消息的最大数目。
公共属性 QuickInfo 确定语言服务是否支持 IntelliSense 快速信息的。
公共属性 RequestStockColors 确定是否使用内置可着色项如 Visual Studio提供语言服务。
公共属性 ShowCompletion 确定 语句完成 选项是否在 选项 对话框中启用。
公共属性 ShowDropDownOptions 确定 导航栏 选项是否在 选项 对话框中启用。
公共属性 ShowHotURLs 确定 URL 是否显示方式与显示它们可以单击。不使用此选项。
公共属性 ShowMatchingBrace 确定匹配是否在状态栏语言对于显示。
公共属性 ShowSmartIndent 确定 智能缩进 选项是否在 选项 对话框中启用。
公共属性 SingleCodeWindowOnly 确定是否 窗口 - AMP_GT 新窗口 命令的语言服务被禁用。
公共属性 SupportCopyPasteOfHTML 确定语言服务是否支持剪贴板格式 HTML 的复制和粘贴操作。
公共属性 TypeId 获取此属性的当前实例。 (继承自 RegistrationAttribute。)

页首

方法

  名称 说明
公共方法 Equals 基础结构。返回一个值,该值指示此实例是否与指定的对象相等。 (继承自 Attribute。)
公共方法 GetHashCode 返回此实例的哈希代码。 (继承自 Attribute。)
公共方法 GetType 获取当前实例的 Type。 (继承自 Object。)
公共方法 IsDefaultAttribute 当在派生类中重写时,指示此实例的值是否是派生类的默认值。 (继承自 Attribute。)
公共方法 Match 当在派生类中重写时,返回一个指示此实例是否等于指定对象的值。 (继承自 Attribute。)
公共方法 Register 基础结构。创建任何注册表项和项按照指定由类构造函数。 (重写 RegistrationAttribute.Register(RegistrationAttribute.RegistrationContext)。)
公共方法 ToString 返回表示当前对象的字符串。 (继承自 Object。)
公共方法 Unregister 移除任何注册表项和项按照指定由类构造函数。 (重写 RegistrationAttribute.Unregister(RegistrationAttribute.RegistrationContext)。)

页首

显式接口实现

  名称 说明
显式接口实现私有方法 _Attribute.GetIDsOfNames 将一组名称映射为对应的一组调度标识符。 (继承自 Attribute。)
显式接口实现私有方法 _Attribute.GetTypeInfo 检索对象的类型信息,然后可以使用该信息获取接口的类型信息。 (继承自 Attribute。)
显式接口实现私有方法 _Attribute.GetTypeInfoCount 检索对象提供的类型信息接口的数量(0 或 1)。 (继承自 Attribute。)
显式接口实现私有方法 _Attribute.Invoke 提供对某一对象公开的属性和方法的访问。 (继承自 Attribute。)

页首

备注

特定于 Visual C#) 的此用户定义的属性 (用于提供必要的信息注册语言服务。 Visual Studio。 此属性指定的值存储为元数据程序集中。 此元数据由一个程序将在以后用于例如 regpkg.exe (的一部分 VSIP SDK) 创建通知语言服务的 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 类构造函数的第二个参数中指定)。

备注

所影响的每个属性指定确切的注册表项,以便这些项在上述示例中未显示。这些附加输入项显示在级别和显示的三项相同。

类构造函数指定最少量必需的参数。 用户定义的特性类还支持选项命名参数。 这些命名参数在构造函数中指定必需的形参之后。 支持获取和设置运算符的所有此类中的属性可指定为命名参数。 示例演示如何使用命名参数。

备注

某些命名参数是特定于托管包结构 (MPF),并且在每个属性声明注意。

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

特性

说明

ProvideLanguageServiceAttribute

注册 Visual Studio 的语言服务并指定哪些功能支持。

ProvideLanguageExtensionAttribute

将文件扩展名与语言服务。

ProvideLanguageEditorOptionPageAttribute

为选项 " 对话框明确指定属性节点或页中语言服务。

ProvideLanguageCodeExpansionAttribute

在语言服务中指定位置信息支持代码段。

ProvideServiceAttribute

注册语言服务作为 Visual Studio 服务。 在托管代码中使用提供的所有服务此属性。

对实现者的说明

此特性类不能继承因此没有任何实现。

对调用者的说明

此特性类通常会应用于母版 VSPackage 类,不过,它可以出现在任何类。 此类应为 VSPackage 支持的每种语言服务只出现一次。

示例

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

备注

Visual C# 允许用户定义的属性的简短窗体中删除该名称的 “属性”部分。本快速输入窗体用于此和此类中的其他示例。

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
    {
    }
}

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

请参见

参考

Microsoft.VisualStudio.Shell 命名空间