0

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

重现步骤:

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

测试1.groovy

package org.test

class Test1 {
    Test2 someOtherObject
    String someProperty

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

测试1.groovy

package org.test

class Test2 {

    String getSomeMethod(){ 
        return 'hello' 
    }
}

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

现在,如果您向 中添加static mapping代码块,调用Test2的语法高亮将从蓝色变为黑色斜体。此外,内容辅助不再起作用;replaceAll 带有下划线,因为实际上并未被识别。someMethodTest1someMethod

这已经限制了可用性,但是如果您向 中添加另一个static mapping代码块Test1,则Test甚至无法识别 的方法。一旦您删除该块,一切都会再次正常工作。

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

我已经为此提出了问题,但是如果有人知道解决方法,请告诉我。

编辑:对不起,我忘了添加版本和运行环境信息:

操作系统:Windows 7 x64

IDE:GGTS 3.5.1

圣杯:2.4.x

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

4

1 回答 1

0

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

GGTS 只是安装了 Spring 和 Groovy 插件的 Eclipse。

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

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

于 2014-10-28T14:54:13.490 回答