2014-10-28 4 views
0

Когда вы добавляете блок кода static mapping в класс домена grails, подсветка содержимого и подсветка синтаксиса больше не работают для этого класса домена. Это не только влияет на файл класса домена .groovy, но и на остальную часть рабочей области.Набор инструментов Groovy Grails: блок кода статического отображения блокирует подсветку синтаксиса и поддержку содержимого

Шаги для воспроизведения:

  • создать новый проект с двумя доменными классами 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 даже не будет распознан. Как только вы удаляете блок, все снова работает отлично.

Я назначил приоритет основным, потому что это значительно замедляет все рабочие процессы, хотя это может показаться тривиальным с первого взгляда. Опечатки происходят чаще, если у вас нет вспомогательной информации, рассказывающей об этом. Если это не серьезная ошибка, просто установите ее на меньшую.

Я уже подал заявку issue for that, но если кто-нибудь знает обходное решение, сообщите мне.

EDIT: К сожалению, я забыл добавить версию и операционной среды информация:

ОС: Windows 7 x64

IDE: Ггц 3.5.1

Grails: 2.4.x

РЕДАКТИРОВАТЬ 2: Не воспроизводится гранулами 1.3.7.

+0

, если он просто не будет работать, если вы добавите ** пустой ** 'статический mapping', то просто не делайте этого. вы также можете показать нам точный код, который нарушает ваш идеал. – cfrick

+0

Ну, конечно, статический блок сопоставления не пуст в моем случае использования. Но он уже разбивается на пустой блок, что означает, что не имеет значения, используется ли затронутая переменная/метод внутри. Вы пытались воспроизвести эту проблему? – nst1nctz

+0

Я обновил свой вопрос, чтобы сделать его более понятным. Конечно, речь идет не только о пустом блоке. – nst1nctz

ответ

0

Похоже, что у вас проблемы с плагином затмения. Возможно, вам лучше подать здесь ошибку: http://jira.codehaus.org/browse/GRECLIPSE

GGTS - это просто затмение с уже установленными плагинами Spring и Groovy.

Вы можете попробовать обновить до последнего моментального снимка разработчика, чтобы узнать, устраняет ли это проблему. Просто используйте сайт обновления для используемой версии eclipse.

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