Эклипсный эквивалент 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 есть несколько возможностей:

  1. Поместите курсор (курсор) над "местоположением" в вашем сценарии, нажмите Ctrl+1, чтобы открыть меню "Быстрый помощник", и выберите " Добавить предложение". В диалоговом окне установите тип для полного типа переменной. Эта помощь может быть недоступна, если в вашем рабочем пространстве не включена поддержка DSLD ("Окно"> "Установки"> "Groovy"> "DSLD"> "Отключить поддержку DSLD" в вашем рабочем пространстве не нужно).

  2. Создайте DSLD для ваших сценариев, которые предоставляют тип. Это немного сложнее, но гораздо более гибко в обработке типов делегатов и так далее. См. https://github.com/groovy/groovy-eclipse/wiki/DSL-Descriptors (IntelliJ имеет GDSL, который очень похож).

  3. Приведите или приведите переменную в вашем скрипте. Может быть, немного тяжелым, но, безусловно, проще всего реализовать.

  4. Я думаю, что вы можете предоставить аннотацию BaseScript, которая может дать некоторые дополнительные подсказки о том, что будет присутствовать в привязке скрипта.

Другие вопросы по тегам