Eclipse 相当于 Intellij 动态属性

Eclipse equivalent of Intellij Dynamic Properties

在我们的开发团队中,我们有 Eclipse 和 Intellij IDEA 用户,我的团队主要在 Groovy.

工作

我们是这个特定团队的初级开发人员,虽然我们在 IDE 上工作,可以完全访问我们需要的所有相关 类,但仍然将脚本复制粘贴到我们的 web-ui,它根据特定的规则和设置在内部运行它们。

由于脚本运行器 afaik 将某些变量注入到环境中,因此它们可用于脚本,但无法用于 IDE 自动完成。 在 Intellij 中,我们将它们声明为 IDE 级别上每个脚本的动态属性,以便 IntelliSense 将它们视为它们所在类型的对象,但我无法找到 equivalent Eclipse 中的功能,也没有太多关于有类似情况的人的信息。

例如,在下面的脚本中:

def location = locationService.findLocationById(123)

其中 locationService 是实现 ILocationService 的类型的对象。当服务器上的 运行 时,location 被正确识别为 Location 类型,但是 IDE 无法推断出它,当然。 在 Intellij 中,我可以为 locationService 添加动态 属性,将其标识为 'ILocationService' 类型。

在 Eclipe 上这甚至可能吗?

谢谢!

如果您想向编辑器添加类型推断建议,以便它可以为变量表达式提供内容辅助,Eclipse 中有两种可能性:

  1. 将插入符号(光标)放在脚本中的 "location" 上,按 Ctrl+1 打开“快速协助”菜单并选择 添加推理建议。在对话框中,将类型设置为变量的完全限定类型。除非您在工作区中启用了 DSLD 支持(Window > 首选项 > Groovy > DSLD > 在工作区中禁用 DSLD 支持 必须未选中)。

  2. 为提供类型的脚本创建 DSLD。这有点复杂,但在处理委托类型等方面要灵活得多。参见 https://github.com/groovy/groovy-eclipse/wiki/DSL-Descriptors(IntelliJ 有非常相似的 GDSL)。

  3. 在脚本中强制转换或强制变量。可能有点笨手笨脚,但肯定是最容易实现的。

  4. 我认为您可以提供一个 BaseScript 注释,它可以提供一些额外的提示,说明脚本的绑定中将出现什么。