在我们的开发团队中,我们同时具有Eclipse和Intellij IDEA用户,而我的团队主要在Groovy工作。
我们这个特定团队的初级开发人员在IDE上具有对我们所需的所有相关类的完全访问权限时,仍然将脚本复制粘贴到我们的web-ui中,后者会根据特定的规则和设置在内部运行它们
由于脚本运行程序afaik将某些变量注入到环境中,因此可以在脚本中使用它们,但IDE无法自动完成这些变量。 在Intellij中,我们在IDE级别上将它们声明为每个脚本的动态属性,以便IntelliSense将它们视为其类型的对象,但是我无法在Eclipse中找到等效的功能,也无法找到有关任何人的任何信息。类似的情况。
例如,在以下脚本中:
def location = locationService.findLocationById(123)
locationService
是实现ILocationService
的类型的对象。在服务器上运行时,location
被正确标识为Location
类型,但是IDE不能当然推断出它。
在Intellij中,我可以为locationService
添加一个动态属性,将其标识为“ ILocationService”类型。
在Eclipe上甚至有可能吗?
谢谢!
答案 0 :(得分:1)
如果要向编辑器添加类型推断建议,以便它可以为变量表达式提供内容辅助,则Eclipse内有两种可能性:
将插入符号(光标)放在脚本中的“位置”上方,按Ctrl + 1打开“快速辅助”菜单,然后选择“ 添加推断建议” 。在对话框中,将“类型”设置为变量的完全限定类型。除非您在工作空间中启用了DSLD支持,否则可能无法提供此帮助(必须取消选中窗口>首选项> Groovy> DSLD>在工作空间中禁用DSLD支持)。
为提供类型的脚本创建DSLD。这有点复杂,但在处理委托类型等方面要灵活得多。请参阅https://github.com/groovy/groovy-eclipse/wiki/DSL-Descriptors(IntelliJ具有非常相似的GDSL)。
在脚本中强制或强制变量。也许有些笨拙,但肯定是最容易实现的。
我认为您可以提供BaseScript批注,该批注可以为脚本的绑定中将出现的内容提供一些其他提示。