2012-01-15 6 views
3

私は自分のEclipseプラグインで提供したいカスタムのクイックフィックスに問題があります。私はEclipse PDEで私より経験豊富な人にこの問題についていくつかのヒントを期待しています。Eclipse PDE:カスタムQuickFixは問題ビューでのみ使用できますか?

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

これは、デフォルトのマーカータイプのため、カスタムマーカーの種類のために私の作品しかし:私のIMarkerResolutionGeneratorが提供する 簡易修正は、唯一の「問題」-Viewからではなく、エディタからアクセス可能です、私のマーカーが現れる。

は私がを持って何を:私は、(1)マーカーとアイコンのツールチップのメッセージは、マーカーが割り当てられているラインで左エディタ定規、上に表示させ、デフォルトのテキストエディタでマーカーを作成します(2)エディタの右側のマーカ、(3)エディタ内の下線を引いた文字、(4)「Problems」ビューのエントリがあります。

私が望むもの:Java IDEのサポートと同様に、Strg + 1、またはコンテキストメニュー - >クイックフィックスを押すか、左側のルーラーのエラーアイコンをクリックして、利用可能なクイックフィックスを参照して選択してください。

:Problems-Viewでのみ、Strg + 1またはコンテキストメニューからQuick-Fixesを取得できます。

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

完了するために、ここに私の拡張ポイントの定義は次のとおりです。

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

私は現在、最も重要なことを忘れていました:私は現在、Eclipse Indigo SR1、クリーンなRCP&RAPディストリビューションで作業しています。 – Janos

答えて

2

私は同じ問題を抱えていると、これは正しい方法であれば、私は、わからないんだけど、少なくともそれが動作:

ソースビューアで簡単に修正するには、QuickAssistAssistantを設定する必要があります。あなたのクラスでSourceViewerConfigurationを実装すると、getQuickAssistAssistantが上書きされます。 org.eclipse.jface.text.quickassist.QuickAssistAssistantをインスタンス化できますが、QuickAssistProcessorを設定する必要があります。org.eclipse.jface.text.quickassist.IQuickAssistProcessorインターフェイス、特にcomputeQuickAssistProposalsを実装して、クイックフィックスプロポーザルを返すようにしてください。最後のポストhereのコードを見て

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

はまた、それは少し厄介ですが、あなたはそれを取得します。このコードhereは、ICompletionProposalの実装例です。QuickAssistProcessorに返却する必要があります。

+0

ありがとう、これは確かに正しい方向に私を導くでしょう!ちょうど今のところ:**カスタム 'SourceViewerConfiguration' **を使ってカスタムエディタ**を充実させることがすべてのようです。カスタムの 'SourceViewerConfiguration'を持つ_既存のエディタ(例えば、テキストエディタ、XMLエディタ)を提供することも可能ですか? – Janos

+0

'org.eclipse.ui.editors.text.TextEditor'を拡張し、カスタム' SourceViewerConfiguration'を設定するために 'setSourceViewerConfiguration(new MySourceViewerConfiguration(new ColorManager()));'を使います。 しかし、私は既存のXMLエディタについてはわかりませんが、おそらくこのリンクがあなたを助けるかもしれません:http://vzurczak.wordpress.com/2010/09/25/merge-compare-dialogs-and-xml-syntax-highlighting/ –

0

あなたは、単にマーカー拡張ポイントに1行を追加する場合:

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

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

あなたはこのもらうことができるようになります。

displayed quick fix as text hover

をしかし、私はまだ後も、注釈アイコンをクリックしてくださいショーの可能なクイックフィックス(電球付きバリアントに)マーカーアイコンを変更する方法を見つけることができません。

+0

注釈でバルブアイコンを取得できますが、スクリーンショットに示されているようにクイックフィックスを取得することはできません。 私を助けてもらえますか? – Shalin

+0

@shalinあなた自身の質問を作成し、実装に関する詳細情報を提供することができます。 –

関連する問題