首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Groovy中导入定制-Eclipse for DSL

在Groovy中导入定制-Eclipse for DSL
EN

Stack Overflow用户
提问于 2011-10-10 14:57:02
回答 1查看 1K关注 0票数 3

我将Groovy用于计算引擎DSL,并且非常喜欢我们现在在Eclipse中对STS和Groovy-Eclipse插件的支持(我使用的是STS 2.8.0M2和Groovy-Eclipse2.5.2的最新里程碑)。

我遇到的一个问题是,我不知道如何让Groovy编辑器“知道”我添加到脚本运行器中的自动导入,这意味着Eclipse会给我带来一大堆错误。如果你使用Groovy类加载器,你可以免费添加额外的导入,这样你就不需要在你的脚本中进行导入了。

我曾经尝试过Groovy-Eclipse中的DSLD支持(可以用来添加自动补全支持),但是我并不清楚这是不是我可以用它来做的事情--我觉得DSLD文档并不是最容易理解的。

Eclipse中Groovy的推理设置看起来也不像是正确的。

例如:

代码语言:javascript
复制
def result = new CalculationResult()

CalculationResult类上显示错误,因为它没有导入,但是由于Groovy类加载器上的自定义导入,脚本可以在我的环境中正确执行。我使用的是Groovy提供的标准导入定制,例如:

代码语言:javascript
复制
import org.codehaus.groovy.control.customizers.ImportCustomizer
import org.codehaus.groovy.control.CompilerConfiguration

def importCustomizer = new ImportCustomizer()
importCustomizer.addImport 'CalculationResult', 'ch.hedgesphere.core.type.CalculationResult'

def configuration = new CompilerConfiguration()

configuration.addCompilationCustomizers(importCustomizer)
...

感谢您的指点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-12 17:37:42

对于be in their bugtracker来说,这似乎是在2.6版本的插件中出现的。

但安德鲁·艾森伯格的评论并不是好兆头:

不幸的是,这不是DSLD可以做的事情。由于缺少导入可能意味着编译错误,因此我们需要一种方法来增强编译器查找。也许有一种方法可以在DSLD中指定此信息,但这将意味着以一种非常不同的方式连接到DSLD。更有可能的是,这必须通过Eclipse插件(如gradle工具)来指定。

另一种可能性是,我们可以确保在协调过程中应用某些类型的AST转换,这样编辑器就会“神奇地”知道这些额外的导入。然而,我们必须研究这一点的可行性。

不过,也许就这个问题进行投票不会有什么问题?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7709415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档