【问题标题】:ContentAssistant for Editor in Eclipse RCP ProjectEclipse RCP 项目中编辑器的 ContentAssistant
【发布时间】:2018-04-22 06:12:59
【问题描述】:

我正在构建一个 Eclipse RCP 并使用一个用 Xtext 编写的编辑器。编辑器项目不是我开发的,所以我不能只实现DSLProposalProvider。

如果在编辑器中使用了具体的模型元素,我想在我的项目中添加一些额外的内容助手。编辑器没有提供扩展点来扩展ProposalProvider,所以我正在寻找另一种可能性。

我看到了这个example,但它不起作用,因为我没有使用 XML 编辑器,我无法通过这种方式来满足我的要求。我目前不知道如何解决这个问题,对于这种糟糕且不准确的描述,我深表歉意,但我什至不知道从哪里开始,所以我愿意接受任何帮助。

【问题讨论】:

  • 我不明白你为什么不简单地在yourdsl.ui中实现MyDslProposalProvider
  • 哦,不好意思,我没有提到编辑器不是我自己开发的,所以我无法在编辑器项目内部进行任何更改。我会将此信息添加到我最初的问题中。
  • 您要添加什么样的提案
  • 如果用户使用来自 DSL 的特定属性,我想为他提供从数据库导入的字符串列表,这样他就不必自己查找它们,只需添加通过内容提议将字符串值传递给属性。
  • xtext 的钩子为零。

标签: eclipse-plugin eclipse-rcp xtext content-assist


【解决方案1】:

您可能对org.eclipse.jface.fieldassist.ContentProposalAdapterclass 感兴趣
例如,您将创建此类的一个实例,并将其附加到 org.eclipse.swt.widgets.Text 组件
要创建ContentProposalAdapter 的实例,您需要提供TextContentAdapter 和IContentProposalProvider 的实例,这将实现内容辅助的逻辑以及其他一些事情(即什么键将触发内容辅助等)This page 在官方 eclipse 文档中解释了如何使用这些类

【讨论】:

  • 非常感谢。我去看看。
【解决方案2】:

在这个用例中,正确的解决方案是在ProposalProvider 中添加提案,您可以根据在编辑器中输入的值提供提案。您还可以探索 scope provider 并检查它是否适合您的用例。

【讨论】:

    猜你喜欢
    • 2011-01-13
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    相关资源
    最近更新 更多