ProvideLanguageServiceAttribute クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
- 継承
- 属性
例
この例では、このユーザー定義属性を使用して、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) |
クラス コンストラクターで指定されているように、すべてのレジストリ キーとエントリを削除します。 |