Eclipse plugin 在eclipse插件中设置内容建议的帮助文本/文档

Eclipse plugin 在eclipse插件中设置内容建议的帮助文本/文档,eclipse-plugin,eclipse-rcp,jface,Eclipse Plugin,Eclipse Rcp,Jface,我正在开发一个eclipse插件,该插件使用SimpleContentProposalProvider类显示文本单元格编辑器的内容建议,目前运行良好。我的问题-我想显示内容建议的帮助文本/文档,类似于java编辑器显示每个方法的文档。如何实现此功能 我是否需要编写IContentProposalProvider的自定义实现并使用getDescription() 代码: import org.eclipse.jface.bindings.keys.KeyStroke; 导入org.eclipse.

我正在开发一个eclipse插件,该插件使用SimpleContentProposalProvider类显示文本单元格编辑器的内容建议,目前运行良好。我的问题-我想显示内容建议的帮助文本/文档,类似于java编辑器显示每个方法的文档。如何实现此功能

我是否需要编写IContentProposalProvider的自定义实现并使用getDescription()

代码:

import org.eclipse.jface.bindings.keys.KeyStroke;
导入org.eclipse.jface.bindings.keys.ParseException;
导入org.eclipse.jface.fieldassist.ContentProposal;
导入org.eclipse.jface.fieldassist.ContentProposalAdapter;
导入org.eclipse.jface.fieldassist.IContentProposalListener2;
导入org.eclipse.jface.fieldassist.SimpleContentProposalProvider;
导入org.eclipse.jface.fieldassist.TextContentAdapter;
导入org.eclipse.jface.viewers.ILabelProvider;
导入org.eclipse.jface.viewers.ILabelProviderListener;
导入org.eclipse.jface.viewers.TextCellEditor;
导入org.eclipse.swt.graphics.Image;
导入org.eclipse.swt.widgets.Composite;
公共类TextCellEditor WithContentProposal扩展了TextCellEditor{
私有ContentProposalAdapter ContentProposalAdapter;
private boolean popupOpen=false;//true,如果当前打开了弹出窗口
公共文本CellEditorWithContentProposal(复合父级,
SimpleContentProposalProvider内容ProposalProvider,
击键击键,字符[]自动激活字符){
超级(家长);
enableContentProposal(contentProposalProvider、击键、,
自动激活字符);
}
私有void enableContentProposal(
SimpleContentProposalProvider内容ProposalProvider,
击键击键,字符[]自动激活字符){
试一试{
keyStroke=keyStroke.getInstance(“Ctrl+Space”);
}捕获(解析异常){
//Logger.getLogger(“”.error(“击键解析异常”);
}
contentProposalAdapter=新的contentProposalAdapter(文本,
新建TextContentAdapter(),contentProposalProvider,按键,
自动激活字符);
内容适配器
.setProposalAcceptanceStyle(内容ProposalAdapter.PROPOSAL\u替换);
contentProposalProvider.setFiltering(true);
contentProposalAdapter.setLabelProvider(新的ILabelProvider(){
public void addListener(ILabelProviderListener arg0){
}
公共空间处置(){
}
公共布尔isLabelProperty(对象arg0,字符串arg1){
返回false;
}
公共void RemovelListener(ILabelProviderListener arg0){
}
公共映像getImage(对象元素){
图像img=null;
System.out.println(“内容提案>>>>>>>>>>>>”+((内容提案)元素).getLabel());
试一试{
img=Activator.getImageDescriptor(“icons/blue icon.png”).createImage();
}捕获(例外e){
e、 printStackTrace();
}
返回img;
}
公共字符串getText(对象元素){
return((ContentProposal)元素).getLabel();
}
});
//监听弹出打开/关闭事件,以便能够处理焦点
//事件正确
内容适配器
.addContentProposalListener(新的IContentProposalListener2(){
公共无效提案已被否决(
ContentProposalAdapter(适配器){
popupOpen=false;
}
公开无效提议被提出(
ContentProposalAdapter(适配器){
popupOpen=true;
}
});
}
/**
*返回此单元格编辑器的{@link ContentProposalAdapter}。
* 
*@返回{@link ContentProposalAdapter}
*/
公共内容ProposalAdapter getContentProposalAdapter(){
返回contentProposalAdapter;
}
受保护的无效焦点丢失(){
如果(!popupOpen){
//“焦点丢失”将停用单元编辑器。
//如果激活导致焦点丢失,则不得发生这种情况
//完成建议弹出窗口。
super.focusLost();
}
}
受保护的布尔依赖项ExternalFocusListener(){
//总是返回错误;
//否则,ColumnViewerEditor将安装额外的
//焦点听众
//即使焦点丢失,也会取消对丢失焦点的单元格编辑
//由于
//激活完成建议弹出窗口。另请参见错误58777。
返回false;
}
}

是的,请使用您自己的
IContentProposalProvider
并对每个提案使用
ContentProposal

非常简单的提供者可能如下所示:

class SpecialCharactersProposalProvider实现IContentProposalProvider
{
@凌驾
公共IContentProposal[]GetPropositions(字符串内容,int位置)
{
返回新的IContentProposal[]{
新内容提案(“插入文本”、“标签”、“详细说明”),
};
}
}

ContentProposal
的第三个参数是您想要的长文本。

非常感谢您-这很有效!你能看看这个吗?我还没有得到任何答复