4

現在、タスクツールを実装しています。この一環として、特定のコードレベルの問題を反映するようにEclipseプラグインを作成しています。

Eclipseプラグインでの私の目的は、ホストタスクのステータスに応じてさまざまなJava要素にいくつかの視覚補助をアタッチすることです。デフォルトのJavaエディターの垂直定規と、概要に表示されるリソースアイコンに、マルチカラーのマーカーを追加することに成功しました。ただし、Javaコンテンツアシストのアイコンを変更することはできませんでした。

最初は、拡張ポイントを使用し、org.eclipse.ui.decoratorsその有効化をに設定するとorg.eclipse.jdt.core.IJavaElement、概要の要素アイコンの場合と同様に、コンテンツアシスタントも影響を受けると思いました。私は、に至るまで、他のいくつかのイネーブルメントクラスを試しましたICompletionProposal

このアプローチ以降、他の多くの方法やデフォルトのJavaコンテンツアシストを拡張しても機能しませ。独自のコンテンツアシストを実装することにしました。

ここでのアイデアは、デフォルトのJavaコンテンツアシストの結果を取得し、提案された要素に対していくつかのチェックを実行し、一致する場合は、コンテンツアシストに表示されるアイコンを変更して、関連するタスクのレベルを反映することです。

EclipseのデフォルトのJavaエディターとMylynプロジェクトのソースを調べようとしましたが、それらがJavaコンテンツアシストを提供する方法と、それらにアクセス/やり直す方法を理解できません。

私が得たいと思っている最終結果:LINK

実際の質問

EclipseのデフォルトのJavaエディターに新しいコンテンツアシスト(カテゴリー)を提供する場合、デフォルトのJavaコンテンツアシスタントがその時点で生成する提案のリストをどのように取得しますか?


私の最初の質問と確かに長いイントロですが、これを何らかの方法で編集する必要があるかどうかを教えてください。最も重要なことは、事前にすべての助けに感謝します!

-J3lly

4

1 に答える 1

2

次の拡張ポイントを見てください:org.eclipse.jdt.ui.javaCompletionProposalComputer

独自のコンテンツアシストを実装するには、を実装するクラスを作成する必要がありますorg.eclipse.jdt.ui.text.java.IJavaCompletionProposalComputer。あなたの場合、デフォルトのJava Content Assistの動作を変更したいので、変更したいContent Assistに応じて、内部実装の1つまたは他の実装をオーバーライドする必要がありorg.eclipse.jdt.internal.ui.text.java.JavaCompletionProposalComputerますorg.eclipse.jdt.internal.ui.text.java.JavaAllCompletionProposalComputer

今、あなたがしなければならないのはcomputeCompletionProposals、完了提案のリストを返すメソッドをオーバーライドすることです。オーバーライドされたメソッドはsuper.computeCompletionProposals(...)、デフォルトの完了プロポーザルを取得するために呼び出す必要があります。その後、必要に応じてそれらを変更できます。

于 2012-11-27T17:47:14.223 に答える