eclipse - Eclipse 等效于 Intellij 动态属性
问题描述
在我们的开发团队中,我们有 Eclipse 和 Intellij IDEA 用户,我的团队主要使用 Groovy。
我们这个特定团队的初级开发人员,在开发一个可以完全访问我们需要的所有相关类的 IDE 时,仍然将脚本复制粘贴到我们的 web-ui 中,它会根据特定的规则和设置在内部运行它们。
由于脚本运行程序 afaik 将某些变量注入到环境中,因此它们可在脚本中使用,但 IDE 无法自动完成。在 Intellij 中,我们将它们声明为 IDE 级别上每个脚本的动态属性,以便 IntelliSense 将它们视为它们所在类型的对象,但我无法在 Eclipse 中找到等效的功能,也没有太多关于任何人的信息类似的情况。
例如,在以下脚本中:
def location = locationService.findLocationById(123)
WherelocationService
是实现ILocationService
. 在服务器上运行时,location
正确识别为 type Location
,但 IDE 无法推断它,当然。在 Intellij 中,我可以添加一个动态属性locationService
,将其标识为“ILocationService”类型。
这在 Ecipe 上是否可行?
谢谢!
解决方案
如果您想向编辑器添加类型推断建议,以便它可以为变量表达式提供内容帮助,Eclipse 中有几种可能性:
将插入符号(光标)放在脚本中的“位置”上,按 Ctrl+1 打开 Quick Assist 菜单并选择Add inferencingSuggestion。在对话框中,将 Type 设置为变量的完全限定类型。除非您在工作区中启用了 DSLD 支持,否则可能不会提供此帮助(必须取消选中工作区中的 Window > Preferences > Groovy > DSLD > Disable DSLD Support )。
为提供该类型的脚本创建一个 DSLD。这有点复杂,但在处理委托类型等方面更加灵活。请参阅https://github.com/groovy/groovy-eclipse/wiki/DSL-Descriptors(IntelliJ具有非常相似的 GDSL)。
强制转换或强制脚本中的变量。可能有点笨拙,但肯定是最容易实施的。
我认为您可以提供一个 BaseScript 注释,它可以为脚本绑定中的内容提供一些额外的提示。
推荐阅读
- javascript - 通过geoserver发布wfs,通过openlayers3访问,编辑wfs并自动保存到postgres数据库
- python - 删除熊猫df中的特定值和后续行
- html - 根据调用该函数的 html 组件在同一个函数中执行不同的操作
- javascript - 从数组中的另一个对象更新数组中的对象
- jquery - 旧的 jquery 构建和 .ajax()
- powershell - 尝试使用 Get-WmiObject 来决定调用什么脚本
- python - 运行@click.command 时程序停止
- python - 为什么 session._get_current_object() 返回的对象 id 在每次请求时都会更改,而 session 的 id 保持不变?
- php - 如何在没有发现问题的情况下复制供应商文件夹
- kubernetes - 带入口控制器的掌舵