Эклипсный эквивалент Intellij Dynamic Properties
В нашей команде разработчиков работают пользователи Eclipse и Intellij IDEA, а моя команда работает в основном в Groovy.
Мы, младшие разработчики в этой конкретной команде, работая над IDE с полным доступом ко всем необходимым классам, которые нам нужны, все равно копируем и вставляем скрипты в наш веб-интерфейс, который запускает их изнутри на основе определенных правил и настроек.
Поскольку исполнитель сценариев afaik вводит определенные переменные в среду, они доступны для использования в сценариях, но недоступны для автозаполнения среды IDE. В Intellij мы объявляем их как динамические свойства для каждого сценария на уровне IDE, так что IntelliSense обрабатывает их как объекты того типа, которым они являются, но я не могу найти эквивалентную функциональность в Eclipse или какую-либо информацию о ком-либо с похожая ситуация.
Например, в следующем скрипте:
def location = locationService.findLocationById(123)
куда locationService
это объект типа, который реализует ILocationService
, Когда побежал на сервер, location
правильно идентифицирован как тип Location
, но IDE не может сделать вывод, конечно. В Intellij я могу добавить динамическое свойство для locationService
идентифицируя его как тип "ILocationService".
Это возможно на Эклипе?
Спасибо!
1 ответ
Если вы хотите добавить предложения по выводу типов в редактор, чтобы он мог помочь с содержимым для выражений переменных, в Eclipse есть несколько возможностей:
Поместите курсор (курсор) над "местоположением" в вашем сценарии, нажмите Ctrl+1, чтобы открыть меню "Быстрый помощник", и выберите " Добавить предложение". В диалоговом окне установите тип для полного типа переменной. Эта помощь может быть недоступна, если в вашем рабочем пространстве не включена поддержка DSLD ("Окно"> "Установки"> "Groovy"> "DSLD"> "Отключить поддержку DSLD" в вашем рабочем пространстве не нужно).
Создайте DSLD для ваших сценариев, которые предоставляют тип. Это немного сложнее, но гораздо более гибко в обработке типов делегатов и так далее. См. https://github.com/groovy/groovy-eclipse/wiki/DSL-Descriptors (IntelliJ имеет GDSL, который очень похож).
Приведите или приведите переменную в вашем скрипте. Может быть, немного тяжелым, но, безусловно, проще всего реализовать.
Я думаю, что вы можете предоставить аннотацию BaseScript, которая может дать некоторые дополнительные подсказки о том, что будет присутствовать в привязке скрипта.