Groovy Grails工具套件:`静态映射`代码块打破了语法高亮和内容辅助

时间:2014-10-28 13:55:10

标签: grails groovy sts-springsourcetoolsuite ggts

将一个static mapping代码块添加到grails域类时,内容辅助和语法突出显示不再适用于此域类。这不仅会影响.groovy域类文件,还会影响工作区的其余部分。

重现的步骤:

  • 创建一个新项目,其中两个域类Test1Test2位于同一个包中。
  • 添加以下代码:

Test1.groovy

package org.test

class Test1 {
    Test2 someOtherObject
    String someProperty

    def doSomethingWithSomeProperty(){
        someOtherObject.someMethod.replaceAll(/hello/, '$1 friend') 
        someProperty 
    }
}

Test1.groovy

package org.test

class Test2 {

    String getSomeMethod(){ 
        return 'hello' 
    }
}

到目前为止,一切都应该正常工作。在Test1 someProperty和someMethod以蓝色突出显示,因为它们都是属性或隐式调用的get方法。

现在,如果您向static mapping添加Test2代码块,则someMethodTest1来电的语法高亮显示将从蓝色切换为黑色。此外,内容辅助不再起作用; replaceAll带有下划线,因为someMethod实际上未被识别。

这已经限制了可用性,但如果您向static mapping添加另一个Test1代码块,则Test的方法将不再被识别。一旦你移除了块,一切都可以正常工作。

我已将优先级设置为major,因为这会显着减慢所有工作流程,尽管乍一看似乎微不足道。如果您没有内容帮助告诉您,错别字会更频繁地发生。如果这不是一个主要的错误,只需将其设置为次要。

我已经提交了issue for that,但如果有人知道解决方法,请告知我们。

编辑:抱歉,我忘了添加版本和操作环境信息:

操作系统:Windows 7 x64

IDE:GGTS 3.5.1

Grails:2.4.x

编辑2:不能用grails 1.3.7重现。

1 个答案:

答案 0 :(得分:0)

听起来你在使用groovy eclipse插件时遇到了问题。 您可能最好在此处提交错误:http://jira.codehaus.org/browse/GRECLIPSE

GGTS只是已经安装了Spring和Groovy插件的日食。

您可以尝试更新到最新的开发人员快照,看看是否能解决问题。 只需将更新站点用于您正在使用的eclipse版本。

http://groovy.codehaus.org/Eclipse+Plugin#EclipsePlugin-DevelopmentSnapshotBuilds