当您将static mapping
代码块添加到grails域类时,内容辅助和语法高亮显示将不再适用于该域类。这不仅会影响.groovy域类文件,还会影响工作区的其余部分。
复制步骤:
- 创建一个新项目,其中两个域类
Test1
和Test2
位于同一个包中 - 添加以下代码:
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
,则Test1
中someMethod
调用的语法高亮显示将从蓝色切换为黑色斜体。此外,内容辅助不再起作用;replaceAll被加下划线是因为CCD_ 9实际上没有被识别。
这已经限制了可用性,但如果您向Test1
添加另一个static mapping
代码块,则Test
的方法甚至将不再被识别。一旦你移除了块,一切都会恢复正常。
我将优先级设置为"主要",因为这会显著减慢所有工作流程,尽管乍一看可能微不足道。如果你没有内容助手告诉你,打字会更频繁。如果这不是一个主要的错误,只需将其设置为次要错误即可。
我已经为此提出了一个问题,但如果有人知道变通办法,请告诉我。
编辑:对不起,我忘记添加版本和操作环境信息:
操作系统:Windows 7 x64
IDE:GGTS 3.5.1
圣杯:2.4.x
第2版:grails 1.3.7不可复制。
听起来groovy eclipse插件有问题。你最好在这里提交一个bug:http://jira.codehaus.org/browse/GRECLIPSE
GGTS只是eclipse,已经安装了Spring和Groovy插件。
您可以尝试更新到最新的开发人员快照,看看这是否解决了问题。只需使用您正在使用的eclipse版本的更新站点。
http://groovy.codehaus.org/Eclipse+插件#EclipsePlugin DevelopmentSnapshotBuilds