次の方法で共有


カスタム エディターとデザイナーを作成する

Visual Studio 統合開発環境 (IDE) では、さまざまな種類のエディターをホストできます。

  • Visual Studio コア エディター

  • カスタム エディター

  • 外部エディター

  • デザイナー

次の情報は、必要なエディターの種類を選択するのに役立ちます。

エディターの種類

Visual Studio コア エディターの詳細については、「 エディターと言語サービスの拡張」を参照してください。

カスタム エディター

カスタム エディターは、特殊な状況で動作するように設計されたエディターです。 たとえば、Microsoft Exchange サーバーなどの特定のリポジトリに対するデータの読み取りと書き込みを行う機能を持つエディターを作成できます。 プロジェクトの種類でのみ動作するエディターが必要な場合、またはいくつかの特定のコマンドのみを含むエディターが必要な場合は、カスタム エディターを選択します。 ただし、ユーザーはカスタム エディターを使用して標準の Visual Studio プロジェクトを編集できないことに注意してください。

カスタム エディターでは、エディター ファクトリを使用して、エディターに関する情報をレジストリに追加できます。 ただし、カスタム エディターに関連付けられているプロジェクトの種類では、他の方法でカスタム エディターをインスタンス化できます。

カスタム エディターでは、インプレース アクティブ化または簡略化された埋め込みを使用してビューを実装できます。

外部エディター

外部エディターは、Microsoft Word、メモ帳、Microsoft FrontPage など、Visual Studio に統合されていないエディターです。 たとえば、VSPackage からテキストを渡す場合は、このようなエディターを呼び出すことができます。 外部エディターは自身を登録し、Visual Studio の外部で使用できます。 外部エディターを呼び出し、ホスト ウィンドウに埋め込むことができる場合は、IDE のウィンドウに表示されます。 そうでない場合は、IDE によって別のウィンドウが作成されます。

IsDocumentInProject メソッドは、VSDOCUMENTPRIORITY列挙型を使用してドキュメントの優先度を設定します。 DP_External値を指定すると、外部エディターでファイルを開くことができます。

エディターの設計上の決定

次の設計の質問は、アプリケーションに最適なエディターの種類を選択するのに役立ちます。

  • アプリケーションはデータをファイルに保存しますか? データをファイルに保存する場合、カスタム形式または標準形式になりますか?

    標準のファイル形式を使用する場合、プロジェクトに加えて他のプロジェクトの種類でも、データを開いて読み取り/書き込みを行えます。 ただし、カスタム ファイル形式を使用する場合は、プロジェクトの種類のみがデータを開いて読み取り/書き込みできます。

    プロジェクトでファイルを使用する場合は、標準エディターをカスタマイズする必要があります。 プロジェクトでファイルを使用せず、データベースまたはその他のリポジトリの項目を使用する場合は、カスタム エディターを作成する必要があります。

  • エディターで ActiveX コントロールをホストする必要がありますか?

    エディターで ActiveX コントロールがホストされている場合は、「インプレース アクティブ化」で説明されているように、イン プレース アクティブ化エディターを実装します。 ActiveX コントロールがホストされていない場合は、簡略化された埋め込みエディターを使用するか、Visual Studio の既定のエディターをカスタマイズします。

  • エディターは複数のビューをサポートしますか? エディターのビューを既定のエディターと同時に表示する場合は、複数のビューをサポートする必要があります。

    エディターで複数のビューをサポートする必要がある場合は、エディターのドキュメント データ オブジェクトとドキュメント ビュー オブジェクトを個別のオブジェクトにする必要があります。 詳細については、「 複数のドキュメント ビューをサポートする」を参照してください。

    エディターで複数のビューがサポートされている場合、ドキュメント データ オブジェクトに対して Visual Studio コア エディターのテキスト バッファー実装 (VsTextBuffer オブジェクト) を使用する予定ですか? つまり、Visual Studio コア エディターとサイド バイ サイドでエディター ビューをサポートしますか? これを行う機能は、フォーム デザイナーの基礎です。

  • 外部エディターをホストする必要がある場合は、Visual Studio 内にエディターを埋め込むことができますか?

    埋め込み可能な場合は、外部エディターのホスト ウィンドウを作成し、 IsDocumentInProject メソッドを呼び出し、 VSDOCUMENTPRIORITY 列挙値を DP_External に設定する必要があります。 エディターを埋め込むことができない場合、IDE によって自動的に別のウィンドウが作成されます。

このセクションにて

チュートリアル: カスタム エディターを作成する
カスタム エディターを作成する方法について説明します。

チュートリアル: カスタム エディターに機能を追加する
カスタム エディターに機能を追加する方法について説明します。

デザイナーの初期化とメタデータの構成
デザイナーを初期化する方法について説明します。

デザイナーに元に戻すサポートを提供する
デザイナーに元に戻す機能を提供する方法を説明します。

カスタム エディターでの構文の色分け
コア エディターとカスタム エディターでの構文の色分けの違いについて説明します。

カスタム エディターのドキュメント データとドキュメント ビュー
カスタム エディターでドキュメント データとドキュメント ビューを実装する方法について説明します。