Eclipse RCP でコンテンツ アシストのドキュメント ポップアップを実装する方法
-
23-08-2019 - |
質問
独自のエディタを実装し、コード補完機能を追加しました。私のコンテンツ アシスタントは、次のようにソース ビューア設定に登録されています。
public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) {
if (assistant == null) {
assistant = new ContentAssistant();
assistant.setDocumentPartitioning(getConfiguredDocumentPartitioning(sourceViewer));
assistant.setContentAssistProcessor(getMyAssistProcessor(),
MyPartitionScanner.DESIRED_PARTITION_FOR_MY_ASSISTANCE);
assistant.enableAutoActivation(true);
assistant.setAutoActivationDelay(500);
assistant.setProposalPopupOrientation(IContentAssistant.PROPOSAL_OVERLAY);
assistant.setContextInformationPopupOrientation(IContentAssistant.CONTEXT_INFO_ABOVE);
}
return assistant;
}
押すと Ctrl + 空間 目的のパーティション内に完了ポップアップが表示され、期待どおりに機能します。
そして、ここで私の質問です。完了ポップアップの隣に表示されるドキュメントポップアップを実装/登録するにはどうすればよいですか?(例: Java エディター)
解決
さて、
私は質問を自分自身answearます; - )
あなたはこの行を追加する必要があります。
assistant.setInformationControlCreator(getInformationControlCreator(sourceViewer));
上記構成に。 のをCompletionProposalsを作成するときに、コンストラクタののadditionalProposalInfoのと呼ばれる第八(最後)のパラメータは、ドキュメントのポップアップに表示されるテキストです。
new CompletionProposal(replacementString,
replacementOffset,
replacementLength,
cursorPosition,
image,
displayString,
contextInformation,
additionalProposalInfo);
の詳細については、<のhref = "http://www.50001.com/language/javaside/lec/java_ibm/Equipping%20SWT%20%BE%D6%C7%C3%B8%AE%見つけることができますC4%C9%C0%CC%BC%C7%BF%A1%20content%20assistants%20%C3%DF%B0%A1%C7%のCF%のB1%E2の20%(%のBF%のB5の%のB9の%AE)。 HTMここを」のrel = "nofollowをnoreferrer">。
簡単に、あなたがそれを行う方法を知っていれば、それは...ではありません。)
他のヒント
スタイル付き情報ボックスの場合 (JDT と同様)。
HTMLTextPresenter
.import org.eclipse.jface.internal.text.html.HTMLTextPresenter;
public class MyConfiguration extends SourceViewerConfiguration {
[...]
public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) {
if (assistant == null) {
[...]
assistant.setInformationControlCreator(getInformationControlCreator(sourceViewer));
}
return assistant;
}
@Override
public IInformationControlCreator getInformationControlCreator(ISourceViewer sourceViewer) {
return new IInformationControlCreator() {
public IInformationControl createInformationControl(Shell parent) {
return new DefaultInformationControl(parent,new HTMLTextPresenter(false));
}
};
}
}
public class MyProposal implements ICompletionProposal {
[...]
@Override
public String getAdditionalProposalInfo() {
return "<b>Hello</b> <i>World</i>!";
}
}
所属していません StackOverflow