3

Eclipse プラグインで提供したいカスタムのクイックフィックスに問題があります。Eclipse PDE で私よりも経験豊富な人がこの問題についてヒントをくれることを期待しています。

私が理解しているように、次のような特定のマーカー IDの拡張ポイントorg.eclipse.ui.ide.markerResolutionを拡張することにより、カスタムのいわゆる「クイック フィックス」(Eclipse 内の用語では「解像度」) を提供できます。たとえば、デフォルトの Eclipse マーカーorg.eclipse.core.resources.problemmarkerなどです。

これは、デフォルトのマーカー タイプとカスタム マーカー タイプで機能しますが、IMarkerResolutionGeneratorが提供するクイックフィックスは、マーカーが表示されるエディターからではなく、「問題」ビューからのみアクセスできます。

私が持っているもの:デフォルトのテキストエディターでマーカーを作成します。これにより、(1)マーカーのツールチップメッセージを含むアイコンが、マーカーが割り当てられている行の左側のエディタールーラーに表示されます。(2)マーカーエディタの右側、(3) エディタ内の下線付きの文字、(4) 「問題」ビューのエントリ。

欲しいもの: Java IDE サポートと同じように、Strg+1 を押すか、Context-Menu->Quick Fix を押すか、左側のルーラーのエラー アイコンをクリックして、利用可能なクイック フィックスを表示します。と選択します。

ただし、問題ビューでのみ、Strg+1 を押すか、コンテキスト メニューからクイック フィックスを取得できます。

これは通常の動作ですか? また、クイック フィックスをフックするために、別の拡張ポイントまたは特定のエディター機能にアクセスする必要がありますか? 私はそれについてあまり詳細なことを見つけていませんが、私が上で述べたこの唯一の拡張ポイントに誰もがかなり満足しているようです. 私は何が欠けていますか?

完成させるために、ここに私の拡張ポイントの定義を示します。

<extension point="org.eclipse.ui.ide.markerResolution">
    <markerResolutionGenerator
        class="com.markers.test.MarkerResolutionGenerator"
        markerType="org.eclipse.core.resources.problemmarker">
    </markerResolutionGenerator>
</extension>
4

2 に答える 2

3

私は同じ問題を抱えており、これが正しい方法であるかどうかはわかりませんが、少なくとも機能します:

ソース ビューアでクイック フィックスを表示するには、 を設定する必要がありますQuickAssistAssistant。クラスでSourceViewerConfigurationoverrideを実装しますgetQuickAssistAssistant。をインスタンス化できますorg.eclipse.jface.text.quickassist.QuickAssistAssistantが、 を設定する必要があるため、特にクイック フィックスの提案を返すQuickAssistProcessorために、インターフェイスを実装します。org.eclipse.jface.text.quickassist.IQuickAssistProcessorcomputeQuickAssistProposals

public IQuickAssistAssistant getQuickAssistAssistant(ISourceViewer sourceViewer) {
  IQuickAssistAssistant quickAssist = new QuickAssistAssistant();
  quickAssist.setQuickAssistProcessor(new MyQuickAssistProcessor());
  quickAssist.setInformationControlCreator(getInformationControlCreator(sourceViewer));
  return quickAssist; 
}

こちらの前回の投稿のコードも見てください。少し面倒ですが、理解できます。の実装例については、このコードを参照ICompletionProposalしてください。これは、 で返す必要がありますQuickAssistProcessor

于 2012-01-23T14:28:22.790 に答える
0

マーカー延長ポイントに1本の線を追加するだけの場合:

<super type="org.eclipse.core.resources.textmarker"/>

マーカーに属性を追加しますmarker.setAttribute(IMarker.CHAR_START、...); mark.setAttribute(IMarker.CHAR_END、...);

あなたはこれを得ることができるでしょう:

テキストホバーとしてクイックフィックスを表示

しかし、注釈アイコンをクリックした後でも、マーカーアイコンを(電球で変形するように)変更して、可能なクイックフィックスを表示する方法をまだ見つけることができません。

于 2012-08-20T05:36:29.477 に答える