ProvideLanguageServiceAttribute クラス

定義

VSPackage が言語サービスを提供することを Visual Studio に通知します。 マネージド パッケージ フレームワーク (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 に言語サービスを登録するために必要な情報を提供するために使用されます。 この属性で指定された値は、アセンブリにメタデータとして格納されます。 このメタデータは、後で 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、[language name] は言語の名前です (クラス コンストラクターの 2 番目のパラメーターProvideLanguageServiceAttributeで指定)。

注意

各プロパティは、影響を受ける正確なレジストリ エントリを指定するため、これらのエントリは上記の例では表示されません。 これらの追加エントリは、表示される 3 つのエントリと同じレベルで表示されます。

クラス コンストラクターは、最低限必要なパラメーターを指定します。 ユーザー定義属性クラスでは、省略可能な名前付きパラメーターもサポートされます。 これらの名前付きパラメーターは、コンストラクターのパラメーター リストで、必要なパラメーターの後に指定されます。 get 演算子と set 演算子の両方をサポートするこのクラスのすべてのプロパティは、名前付きパラメーターとして指定できます。 この例では、名前付きパラメーターの使用方法を示します。

注意

名前付きパラメーターの一部はマネージド パッケージ フレームワーク (MPF) に固有であり、これらは各プロパティの説明に記載されています。

言語サービスには、次のユーザー定義属性が使用されます。

属性 説明
ProvideLanguageServiceAttribute 言語サービスを Visual Studio に登録し、サポートされる機能を指定します。
ProvideLanguageExtensionAttribute ファイル拡張子を言語サービスに関連付けます。
ProvideLanguageEditorOptionPageAttribute 言語サービスに固有の [オプション] ダイアログ ボックスのプロパティ ノードまたはページを指定します。
ProvideLanguageCodeExpansionAttribute 言語サービスでコード スニペットをサポートする場所情報を指定します。
ProvideServiceAttribute 言語サービスを Visual Studio サービスとして登録します。 マネージド コードで提供されるすべてのサービスでは、この属性が使用されます。

注意 (継承者)

この属性クラスは から継承できないため、実装するものはありません。

注意 (呼び出し元)

この属性クラスは通常、プライマリ VSPackage クラスに適用されますが、任意のクラスで使用できます。 このクラスは、VSPackage がサポートする言語サービスごとに 1 回だけ表示されます。

コンストラクター

ProvideLanguageServiceAttribute(Object, String, Int32)

Shell.ProvideLanguageServiceAttribute クラスの新しいインスタンスを初期化します。

プロパティ

AutoOutlining

言語サービスで自動アウトラインがサポートされているかどうかを判断します。

CodeSense

言語サービスが IntelliSense 操作をサポートしているかどうかを判断します。

CodeSenseDelay

IntelliSense 操作をサポートするために解析操作が開始されるまでの時間を決定します。

DebuggerLanguageExpressionEvaluator

式の評価に使用される式エバリュエーターを決定します。

DefaultToInsertSpaces

言語サービスの [オプション] ダイアログ ボックスの [スペースの挿入] オプションの既定の設定を決定します。

DefaultToNonHotURLs

[オプション] ダイアログ ボックスの [シングルクリック URL ナビゲーションを有効にする] オプションの初期設定を決定します。

EnableAdvancedMembersOption

[オプション] ダイアログ ボックスで [詳細メンバーの非表示] オプションを有効にするかどうかを指定します。

EnableAsyncCompletion

言語がバックグラウンド解析をサポートしているかどうかを判断します。

EnableCommenting

言語サービスが 1 つのコマンドを使用してソース コードにコメントを付け、コメントを解除できるかどうかを決定します。

EnableFormatSelection

言語サービスがソース コードの自動書式設定をサポートしているかどうかを判断します。

EnableLineNumbers

[オプション] ダイアログ ボックスで [行番号] オプションを選択できるかどうかを指定します。

FontColorDefaults

VSPackage が言語サービスを提供することを Visual Studio に通知します。 マネージド パッケージ フレームワーク (MPF) で使用されます。

HideAdvancedMembersByDefault

[オプション] ダイアログ ボックスの [詳細メンバーを非表示にする] オプションの初期状態を決定します。

LanguageName

言語の名前を返します。

LanguageResourceID

言語名のローカライズされたバージョンを取得するために使用されるリソース ID を返します。

LanguageServiceSid

VSPackage が言語サービスを提供することを Visual Studio に通知します。 マネージド パッケージ フレームワーク (MPF) で使用されます。

MatchBraces

言語サービスが一致する言語ペアをサポートしているかどうかを判断します。

MatchBracesAtCaret

入力中に言語サービスが一致する言語ペアをサポートしているかどうかを判断します。

MaxErrorMessages

言語サービスが解析操作について報告できるエラー メッセージの最大数を決定します。

QuickInfo

言語サービスが IntelliSense クイック ヒントをサポートしているかどうかを判断します。

RequestStockColors

言語サービスが、Visual Studio によって提供される組み込みの色分け可能な項目を使用しているかどうかを判断します。

ShowCompletion

[オプション] ダイアログ ボックスで [ステートメント入力候補] オプションを有効にするかどうかを指定します。

ShowDropDownOptions

[オプション] ダイアログ ボックスでナビゲーション バー オプションを有効にするかどうかを指定します。

ShowHotURLs

URL をクリックできることを示すように表示するかどうかを決定します。 このオプションは使用されません。

ShowMatchingBrace

一致する言語ペアがステータス バーに表示されるかどうかを判断します。

ShowSmartIndent

[オプション] ダイアログ ボックスで [スマート インデント] オプションを有効にするかどうかを指定します。

SingleCodeWindowOnly

言語サービスに対して [ウィンドウ -> 新しいウィンドウ] コマンドが無効になっているかどうかを判断します。

SupportCopyPasteOfHTML

言語サービスがコピー操作と貼り付け操作でクリップボード形式の HTML をサポートしているかどうかを判断します。

TypeId

RegistrationAttribute 派生クラスが System.ComponentModel.TypeDescriptor.GetAttributes(...) と連携できるように、TypeID プロパティをオーバーライドします。このプロパティから派生した属性は、クラスに適用できるインスタンスをより適切に制御する必要がある場合にのみ、このプロパティをオーバーライドする必要があります。

(継承元 RegistrationAttribute)

メソッド

GetPackageRegKeyPath(Guid)

VSPackage のレジストリ パス (アプリケーションのレジストリ ルートに対する相対パス) を取得します。

(継承元 RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

クラス コンストラクターで指定されたすべてのレジストリ キーとエントリを作成します。

Unregister(RegistrationAttribute+RegistrationContext)

クラス コンストラクターで指定されているように、すべてのレジストリ キーとエントリを削除します。

適用対象