ProvideLanguageServiceAttribute 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
通知 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
- 繼承
- 屬性
範例
此範例示範如何使用這個使用者定義的屬性來註冊支援 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) |
拿掉類別建構函式所指定的所有登錄機碼和專案。 |