共用方式為


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# 可藉由卸除名稱的 「屬性」部分,來允許使用者定義屬性的速記形式。 這個簡短形式用於這個和這個類別中所有其他範例。

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 和 [language name] 是類別建構函式的第二個參數 ProvideLanguageServiceAttribute 中所指定之語言 (的名稱) 。

注意

每個屬性都會指定其影響的確切登錄專案,因此上述範例中不會顯示這些專案。 這些額外的項目會顯示在與所顯示三個專案相同的層級。

類別建構函式會指定最小必要參數。 用戶定義的屬性類別也支持選擇性的具名參數。 這些具名參數會在建構函式的參數清單中指定,並在必要參數之後指定。 這個類別上支援 get 和 set 運算子的所有屬性都可以指定為具名參數。 此範例示範如何使用具名參數。

注意

某些具名參數是受控套件架構的特定參數, (MPF) ,而且這些參數會在每個屬性描述中加以說明。

下列使用者定義的屬性會用於語言服務:

屬性 Description
ProvideLanguageServiceAttribute 向 Visual Studio 註冊語言服務,並指定支援的功能。
ProvideLanguageExtensionAttribute 將擴展名與語言服務產生關聯。
ProvideLanguageEditorOptionPageAttribute 指定語言服務專屬之 [選項] 對話框的屬性節點或頁面。
ProvideLanguageCodeExpansionAttribute 指定支援語言服務代碼段的位置資訊。
ProvideServiceAttribute 將語言服務註冊為 Visual Studio 服務。 Managed 程式代碼中提供的所有服務都會使用這個屬性。

給繼承者的注意事項

這個屬性類別無法繼承自 ,因此不會實作任何專案。

給呼叫者的注意事項

這個屬性類別通常會套用至您的主要 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

傳回用來取得語言名稱當地語系化版本的資源識別碼。

LanguageServiceSid

通知 Visual Studio VSPackage 提供語言服務。 與受控套件架構搭配使用, (MPF) 。

MatchBraces

判斷語言服務是否支援比對語言組。

MatchBracesAtCaret

判斷語言服務是否支援在輸入時比對語言組。

MaxErrorMessages

決定語言服務可以報告剖析作業的錯誤訊息數目上限。

QuickInfo

判斷語言服務是否支援 IntelliSense 快速諮詢。

RequestStockColors

判斷語言服務是否使用Visual Studio所提供的內建可著色專案。

ShowCompletion

判斷 [選項] 對話框中是否已啟用語句完成選項。

ShowDropDownOptions

判斷 [選項] 對話框中是否已啟用導覽列選項。

ShowHotURLs

判斷 URL 是否以顯示 URL 的方式顯示,以便按兩下它們。 這個選項不適用。

ShowMatchingBrace

判斷相符的語言組是否顯示在狀態列中。

ShowSmartIndent

判斷 [選項] 對話框中是否已啟用 [智慧縮排] 選項。

SingleCodeWindowOnly

判斷語言服務是否停用 Window -> New Window 命令。

SupportCopyPasteOfHTML

判斷語言服務是否支援複製和貼上作業的剪貼簿格式 HTML。

TypeId

覆寫 TypeID 屬性,讓 RegistrationAttribute 衍生類別使用 System.ComponentModel.TypeDescriptor.GetAttributes (...) 。衍生自這個屬性的屬性必須覆寫此屬性,只有在實例上需要更好的控件,才能套用至類別。

(繼承來源 RegistrationAttribute)

方法

GetPackageRegKeyPath(Guid)

取得相對於 VSPackage 應用程式) 之登錄根目錄的登錄路徑 (。

(繼承來源 RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

建立類別建構函式所指定的所有登錄機碼和專案。

Unregister(RegistrationAttribute+RegistrationContext)

拿掉類別建構函式所指定的所有登錄機碼和專案。

適用於