将一个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
代码块,则someMethod
中Test1
来电的语法高亮显示将从蓝色切换为黑色。此外,内容辅助不再起作用; 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重现。
答案 0 :(得分:0)
听起来你在使用groovy eclipse插件时遇到了问题。 您可能最好在此处提交错误:http://jira.codehaus.org/browse/GRECLIPSE
GGTS只是已经安装了Spring和Groovy插件的日食。
您可以尝试更新到最新的开发人员快照,看看是否能解决问题。 只需将更新站点用于您正在使用的eclipse版本。
http://groovy.codehaus.org/Eclipse+Plugin#EclipsePlugin-DevelopmentSnapshotBuilds