【问题标题】:Content assist with javaCompletionProposalComputer for Eclipse JSDT gives no proposalEclipse JSDT 的 javaCompletionProposalComputer 内容辅助不提供建议
【发布时间】:2013-12-26 06:02:31
【问题描述】:

org.eclipse.wst.jsdt.ui.javaCompletionProposalComputer for Eclipse JSDT 的内容协助未提供任何建议。

Preferences -> JavaScript -> Editor -> Content Assist -> Advanced “Nodeclipse 提案”可见并被选中。

按照 Bananaweizen 向Content assist for Eclipse JSDT based Editor 的建议

在 plugin.xml 中

<extension point="org.eclipse.wst.jsdt.ui.javaCompletionProposalComputer"
   id="nodeclispe_textual_proposals"
   name="Nodeclipse Text Proposals">
   <proposalCategory icon="icons/npm/npm.gif"/>
 </extension>
 <extension point="org.eclipse.wst.jsdt.ui.javaCompletionProposalComputer"
   id="NodeclipseProposals"
   name="Nodeclipse Proposals">
   <javaCompletionProposalComputer
      class="org.nodeclipse.ui.contentassist.JSDTProposalComputer"
      categoryId="org.eclipse.ui.texteditor.textual_proposals">
      <partition type="__java_javadoc"/>
   </javaCompletionProposalComputer>
 </extension>

JSDTProposalComputer 只是 NodeContentAssistant 的包装器
(实现IContentAssistProcessor),非常适合基于TextEditor 的编辑器。

public class JSDTProposalComputer implements IJavaCompletionProposalComputer {

    IContentAssistProcessor assistant = new NodeContentAssistant();

    @Override
    public List<ICompletionProposal> computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
        return Arrays.asList(assistant.computeCompletionProposals(context.getViewer(), context.getInvocationOffset()));
    }

    @Override
    public List<IContextInformation> computeContextInformation(ContentAssistInvocationContext context, IProgressMonitor monitor) {
        return Arrays.asList(assistant.computeContextInformation(context.getViewer(), context.getInvocationOffset()));
    }

help 的例子是

所有代码都在Github上contentassisthttps://github.com/Enide/nodeclipse-1/tree/master/org.nodeclipse.ui/src/org/nodeclipse/ui/contentassist

【问题讨论】:

  • help.eclipse.org/kepler/index.jsp 上搜索 没有结果,但在 Juno help.eclipse.org/juno/index.jsp 上返回“JavaScript 完成建议计算机”和“Java 完成建议计算机”
  • 在 Kepler 帮助中找不到“JavaScript Completion Proposal Computer”
  • 在这个例子中 categoryId 不匹配 proposalCategory id
  • 而不是这个:尝试在 javaCompletionProposalComputer 中添加 activate="true" 并删除
  • 好的,那就是explorerjavaCompletionProposalComputeroptions

标签: java eclipse-plugin content-assist jsdt nodeclipse


【解决方案1】:

正如@zulus 所说:

尝试在 javaCompletionProposalComputer 中添加 activate="true" 并删除

有效的是:

<extension point="org.eclipse.wst.jsdt.ui.javaCompletionProposalComputer"
   id="nodeclispe_textual_proposals"
   name="Nodeclipse Text Proposals">
   <proposalCategory icon="icons/npm/npm.gif"/>
 </extension>
 <extension point="org.eclipse.wst.jsdt.ui.javaCompletionProposalComputer"
   id="NodeclipseProposals"
   name="Nodeclipse Proposals">
   <javaCompletionProposalComputer
      class="org.nodeclipse.ui.contentassist.JSDTProposalComputer"
      categoryId="org.eclipse.ui.texteditor.textual_proposals"
      activate="true">
   </javaCompletionProposalComputer>
 </extension>


(来源:nodeclipse.org

【讨论】:

  • 在哪里可以找到要编辑的文件?由于某种原因,我最近才开始出现此错误。在火星上。
【解决方案2】:

如果您需要一个实现 Pauls 答案的简单示例实现,您可以查看本教程:http://codeandme.blogspot.co.at/2014/05/extending-jsdt-adding-your-own-content.html

【讨论】:

  • SO 不用于共享链接。这个解决方案有什么不同吗?
  • 抱歉分享链接。我认为拥有一个可下载的、开箱即用的解决方案也会很有帮助。提供的链接还显示了默认类实现以及所需的插件依赖项
猜你喜欢
  • 1970-01-01
  • 2019-05-07
  • 1970-01-01
  • 1970-01-01
  • 2019-01-26
  • 1970-01-01
  • 1970-01-01
  • 2013-07-05
  • 1970-01-01
相关资源
最近更新 更多