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 中有两种可能性:
将插入符号(光标)放在脚本中的 "location" 上,按 Ctrl+1 打开“快速协助”菜单并选择 添加推理建议。在对话框中,将类型设置为变量的完全限定类型。除非您在工作区中启用了 DSLD 支持(Window > 首选项 > Groovy > DSLD > 在工作区中禁用 DSLD 支持 必须未选中)。
为提供类型的脚本创建 DSLD。这有点复杂,但在处理委托类型等方面要灵活得多。参见 https://github.com/groovy/groovy-eclipse/wiki/DSL-Descriptors(IntelliJ 有非常相似的 GDSL)。
在脚本中强制转换或强制变量。可能有点笨手笨脚,但肯定是最容易实现的。
我认为您可以提供一个 BaseScript 注释,它可以提供一些额外的提示,说明脚本的绑定中将出现什么。
在我们的开发团队中,我们有 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 中有两种可能性:
将插入符号(光标)放在脚本中的 "location" 上,按 Ctrl+1 打开“快速协助”菜单并选择 添加推理建议。在对话框中,将类型设置为变量的完全限定类型。除非您在工作区中启用了 DSLD 支持(Window > 首选项 > Groovy > DSLD > 在工作区中禁用 DSLD 支持 必须未选中)。
为提供类型的脚本创建 DSLD。这有点复杂,但在处理委托类型等方面要灵活得多。参见 https://github.com/groovy/groovy-eclipse/wiki/DSL-Descriptors(IntelliJ 有非常相似的 GDSL)。
在脚本中强制转换或强制变量。可能有点笨手笨脚,但肯定是最容易实现的。
我认为您可以提供一个 BaseScript 注释,它可以提供一些额外的提示,说明脚本的绑定中将出现什么。