次の方法で共有


言語サービスとエディター拡張機能の利用を開始する

エディター拡張機能を使用して、アウトライン、中かっこの照合、IntelliSense、電球などの言語サービス機能を、独自のプログラミング言語または任意のコンテンツ タイプに追加できます。 また、テキストの色分け、余白、装飾、その他のビジュアル要素など、Visual Studio エディターの外観と動作をカスタマイズすることもできます。 独自の種類のコンテンツを定義し、コンテンツが表示されるテキスト ビューの外観と動作を指定することもできます。

エディター拡張機能の作成を開始するには、Visual Studio SDK の一部としてインストールされているエディター プロジェクト テンプレートを使用します。 Visual Studio SDK は、VSPackage を使用するか、Managed Extensibility Framework (MEF) を使用して、Visual Studio 拡張機能の開発を容易にする、ダウンロード可能な一連のツールです。

Visual Studio SDK の詳細については、「 Visual Studio SDK」を参照してください。

独自のエディター拡張機能を記述する前に、次の概念とテクノロジについて学習することをお勧めします。

Windows Presentation Foundation (WPF) およびエディター拡張機能

Visual Studio エディターのユーザー インターフェイス (UI) は、Windows Presentation Foundation (WPF) を使用して実装されます。 WPF は、豊富なビジュアル エクスペリエンスと、コードの視覚的側面をビジネス ロジックから分離する一貫したプログラミング モデルを提供します。 エディター拡張機能を作成するときに、多くの WPF 要素と機能を使用できます。 詳細については、「 Windows Presentation Foundation」を参照してください。

Managed Extensibility Framework (MEF) およびエディター拡張機能

Visual Studio エディターでは、Managed Extensibility Framework (MEF) を使用してそのコンポーネントと拡張機能を管理します。 MEF を使用すると、開発者は Visual Studio などのホスト アプリケーションの拡張機能をより簡単に作成できます。 このフレームワークでは、MEF コントラクトに従って拡張機能を定義し、MEF コンポーネント パーツとしてエクスポートします。 ホスト アプリケーションは、コンポーネント パーツを検索して登録し、正しいコンテキストに適用されるようにすることで、コンポーネント パーツを管理します。

エディターの MEF の詳細については、エディターの 「Managed Extensibility Framework」を参照してください

Visual Studio エディターの拡張機能ポイントと拡張機能

エディター拡張ポイントは、カスタマイズおよび拡張できる MEF コンポーネント パーツです。 場合によっては、インターフェイスを実装し、正しいメタデータと共にエクスポートすることで拡張ポイントを拡張します。 それ以外の場合は、拡張機能を宣言し、特定の型としてエクスポートするだけです。

エディター拡張機能の基本的な種類の一部を次に示します。

エディター拡張機能のデプロイ

Visual Studio では、 source.extension.vsixmanifest という名前のメタデータ ファイルをソリューションに追加し、ソリューションをビルドしてから、Visual Studio で認識されているフォルダーにバイナリ ファイルとマニフェストのコピーを追加することで、エディター拡張機能をデプロイします。 マニフェスト ファイルは、拡張子に関する基本的な事実 (名前、作成者、バージョン、コンテンツの種類など) を定義します。 VSIX マニフェスト ファイルと拡張機能の展開方法の詳細については、「 Ship Visual Studio extensions」を参照してください。

コンピューターに拡張機能をインストールする場合は、バイナリとマニフェストを、Visual Studio で認識されているフォルダーのサブフォルダーに含めます。

Warnung

Visual Studio に含まれているエディター拡張機能テンプレートのいずれかを使用する場合は、マニフェストと配置場所の詳細について心配する必要はありません。 テンプレートには、拡張機能の登録とデプロイに必要なすべてのものが含まれています。

実験用インスタンスで拡張機能を実行する

拡張機能を開発している間は、次の実験用フォルダー (Windows Vista および Windows 7) に展開することで、Visual Studio の作業バージョンを絶縁できます。

{%LOCALAPPDATA%}\VisualStudio\10.0Exp\Extensions\{Company}\{ExtensionID}

ここで、%LOCALAPPDATA% はログオン ユーザーの名前、Company は拡張機能を所有する会社の名前、ExtensionID は拡張機能の ID です。

実験用の場所に拡張機能をデプロイすると、デバッグ モードで実行されます。 Visual Studio の 2 番目のインスタンスが開始され、 Microsoft Visual Studio - Experimental Instance という名前が付けられます。

拡張機能の管理

Visual Studio の拡張機能は、[ツール] メニュー[拡張機能と更新プログラム] に表示されます。 実験用インスタンスで拡張機能をテストする場合は、実験用インスタンスの 拡張機能と更新プログラム に表示されますが、開発インスタンスには表示されません。

詳細については、「 Visual Studio 拡張機能の検索と使用」を参照してください。

テンプレートを使用してエディター拡張機能を作成する

エディター テンプレートを使用して、分類子、装飾、および余白をカスタマイズする MEF 拡張機能を作成できます。 C# プロジェクトと Visual Basic プロジェクトの両方のテンプレートがあります。 詳細については、「 エディター項目テンプレートを使用して拡張機能を作成する」を参照してください。

VSIX プロジェクト テンプレートを使用して拡張機能を作成することもできます。 このテンプレートは、任意の種類の拡張機能をデプロイするために必要な要素のみを提供し、 source.extension.vsixmanifest ファイル、必要なアセンブリ参照、および拡張機能を配置できるビルド タスクを含むプロジェクト ファイルを含めます。 詳細については、 VSIX プロジェクト テンプレートを参照してください。

Visual Studio パッケージ拡張機能からエディター MEF コンポーネントを作成することもできます。 詳細については、次のチュートリアルを参照してください。