3

tow eclipse プラグインを開発していますが、次の問題があります。

同じファイルを管理する 2 つのパースペクティブがあります。ファイル拡張子 - 編集者 - パースペクティブを関連付けたいと思います。

つまり、ファイル拡張子 .XXX をパースペクティブ 1 で開くとエディター A が使用されますが、同じファイル拡張子 .XXX をパースペクティブ 2 で開くとエディター B が使用されます。

出来ますか?今まではランチャーを使っていましたが、今はもっと差別化が必要です。

ありがとう。

4

4 に答える 4

4

(申し訳ありませんが、これは「それをしないでください!」の非回答の1つです。:))

コメントで述べたように、現在のパースペクティブに応じて別のエディターを開くことはお勧めしません。それはユーザーの期待に反するものであり、例えば私が独自のパースペクティブを作成するときなど、直感的でない結果をもたらすと思います。

たとえば、Eclipse の XML/プラグイン マニフェスト エディターのパスに進むことをお勧めします。下部のタブを使用すると、パースペクティブの選択や構成に関係なく、さまざまなビューを選択できます。

Eclipse プラグインのマニフェスト エディター

于 2011-07-28T10:26:45.933 に答える
2

開いているパースペクティブに基づいて同じファイルに対してデフォルトのエディターを異なるものにするのは少し奇妙に思えることに同意しますが、これを行う方法を次に示します。

  1. 2 つの新しいコンテンツ タイプ拡張機能を作成する
  2. 最初のエディターを最初の新しいコンテンツ タイプのデフォルト エディターとして登録する
  3. 2 番目の新しいコンテンツ タイプのデフォルト エディターとして 2 番目のエディターを登録する
  4. コンテンツ タイプごとに、「コンテンツ タイプ記述者」があります。これらの記述子クラスでは、アクティブなワークベンチ ページで現在のパースペクティブ ID をチェックし、期待値と一致する場合は VALID を、パースペクティブ ID が一致しない場合は INVALID を返します。
  5. 両方のエディターについて、これらのエディターをファイル拡張子またはファイル名ではなくコンテンツ タイプに関連付ける必要があります。
  6. 現在、開いているパースペクティブに応じて、一度に 1 つのコンテンツ タイプのみが一致します。ユーザーが他のパースペクティブを開いている場合に常に一致するように、コンテンツ タイプの 1 つが「デフォルト」であることを確認してください。

更新#1はいくつかの例を追加しました

これにはいくつかのオンライン チュートリアルがあります。ただし、必要な作業を簡単に確認できるように、コード例をいくつか示します。コンテンツ タイプを宣言する方法は次のとおりです (そのうちの 2 つが必要です)。

<plugin>
   <extension
         point="org.eclipse.core.contenttype.contentTypes">
      <content-type
            base-type="org.eclipse.core.runtime.xml"
            describer="com.liferay.ide.core.FirstContentTypeDescriber"
            id="com.liferay.ide.core.contentType1"
            name="First Content Type"
            priority="normal">
      </content-type>
   </extension>
</plugin>

次に、Describer クラスで、マッチング ロジックを実行します。次に、エディター拡張ポイントで、次のようにファイル名または拡張子の代わりにコンテンツ タイプを参照します。

   <extension
         point="org.eclipse.ui.editors">
      <editor
            class="com.liferay.ide.ui.FirstEditor"
            default="false"
            id="com.liferay.ide.ui.editor1"
            name="My First Editor">
         <contentTypeBinding
               contentTypeId="com.liferay.ide.core.firstContentType">
         </contentTypeBinding>
      </editor>
   </extension>
于 2013-12-26T07:19:56.073 に答える
1

アプローチを再考し、WindowBuilder からヒントを得ることをお勧めします。タブ付きエディターを開くファイル タイプに関連付けられたエディターを 1 つ用意します。2 つ目のプラグインを追加する場合は、同じエディターに別のタブを作成します。

于 2011-07-28T10:21:55.123 に答える
0

その他のオプションとして、に示す Java コードとのファイル タイプの関連付けをプログラムで変更することもできます。

Eclipse RCP:プログラムでファイルタイプをエディタに関連付けますか?

次に、パースペクティブ変更イベントでそのコードを実行する方法についてのみ質問があります。

于 2013-12-26T10:37:09.547 に答える