当您将static mapping
代码块添加到 grails 域类时,内容辅助和语法突出显示不再适用于该域类。这不仅会影响 .groovy 域类文件,还会影响工作区的其余部分。
重现步骤:
- 创建一个具有两个域类
Test1
并Test2
位于同一个包中的新项目。 - 添加以下代码:
测试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'
}
}
到目前为止,一切都应该正常。在Test1
someProperty 和 someMethod 中以蓝色突出显示,因为它们都是属性或隐式调用的 get 方法。
现在,如果您向 中添加static mapping
代码块,调用Test2
的语法高亮将从蓝色变为黑色斜体。此外,内容辅助不再起作用;replaceAll 带有下划线,因为实际上并未被识别。someMethod
Test1
someMethod
这已经限制了可用性,但是如果您向 中添加另一个static mapping
代码块Test1
,则Test
甚至无法识别 的方法。一旦您删除该块,一切都会再次正常工作。
我已将优先级设置为专业,因为这会显着减慢所有工作流程,尽管乍一看似乎微不足道。如果您没有内容帮助来告诉您,错字会更频繁地发生。如果这不是主要错误,只需将其设置为次要错误。
我已经为此提出了问题,但是如果有人知道解决方法,请告诉我。
编辑:对不起,我忘了添加版本和运行环境信息:
操作系统:Windows 7 x64
IDE:GGTS 3.5.1
圣杯:2.4.x
编辑 2:不能用 grails 1.3.7 重现。