Настройка импорта в Groovy-Eclipse для DSL - PullRequest
3 голосов
/ 10 октября 2011

Я использую Groovy для DSL механизма вычислений, и мне очень нравится поддержка, которую мы теперь имеем в Eclipse с STS и плагином Groovy-Eclipse (я на STS 2.8.0M2 с последней вехой Groovy-Eclipse 2.5 0,2).

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

У меня была игра с поддержкой DSLD в Groovy-Eclipse (которую можно использовать для добавления поддержки автозаполнения), но для меня не очевидно, что я могу с этим что-то делать - я не нахожу документация DSLD самая простая для подражания.

Параметры логического вывода для Groovy в Eclipse тоже не выглядели нужными.

Например:

def result = new CalculationResult()

выдает ошибку в классе CalculationResult, поскольку он не импортирован, но сценарий будет корректно выполняться в моей среде из-за настроенного импорта в загрузчик классов Groovy. Я использую стандартную настройку импорта, предоставляемую Groovy, например:

import org.codehaus.groovy.control.customizers.ImportCustomizer
import org.codehaus.groovy.control.CompilerConfiguration

def importCustomizer = new ImportCustomizer()
importCustomizer.addImport 'CalculationResult', 'ch.hedgesphere.core.type.CalculationResult'

def configuration = new CompilerConfiguration()

configuration.addCompilationCustomizers(importCustomizer)
...

Любые указатели приветствуются.

1 Ответ

2 голосов
/ 12 октября 2011

Похоже, что находится в их багтрекере , как и в версии плагина 2.6.

Но комментарий Эндрю Айзенберга не сулит ничего хорошего:

К сожалению, это не то, что могут сделать DSLD. Так как Отсутствие импорта может означать ошибки компиляции, нам нужен способ увеличить поиск компилятора для этого. Там может быть способ указать эта информация внутри DSLD, но это будет означать подключение к DSLD совсем по-другому. Скорее всего, это должно быть указывается через плагин Eclipse (например, инструмент Gradle).

Другая возможность состоит в том, что мы можем гарантировать, что определенные виды АСТ Преобразования применяются во время согласования, поэтому редактор просто «волшебным образом» знают об этом дополнительном импорте. Придется заглянуть в возможность этого, однако.

Тем не менее, может быть, голосование по этому вопросу не сработает?

...