Вопрос

фон

У меня есть проект STA-Managed Scala, который использует Обычный макет проекта SBT для Scala Projects с макросами, т. Е. Подпроектом, который содержит макрос основным проектом, который является фактическим приложением, и это зависит от макроса. Макросы находятся Макроанативы Что, по сути, генерируют объекты компаньона для Регулярные классы. Сгенерированные объекты компаньона объявляют, среди других членов, применяются / бездально методы.

Я использовал плагин SBT-идеи для создания соответствующего проекта Imexe Intellij, и я использую консоль SBT из STT-Plugin Idey, чтобы скомпилировать и запустить мою приложение Scala.

Все работает более или менее штрафом, за исключением того, что сгенерированные объекты компаньона и, что более важно, их члены, такие как применение / непринужденно, не распознаются идеей. Таким образом, я получаю большую линию повсюду I, например, метод применения.

Моя установка IDELIJ IDEE CE 133.471 с плагинами SBT 1.5.1 и Scala 0.28.363 на Windows 7 x64.

Вопросы

Как получить идею Intellij, чтобы узнать код (классы, объекты, методы, ...), которые были сгенерированы Scala Macros (макроанализацию, быть точным)?

Есть другие идентификаторы, например, Eclipse, как известно, лучше работать в такой настройке?

связано

Этот вопрос (который менее подробно) по существу спрашивает то же самое, но еще не получил ответ (2014-02 -26).

Согласно разработчику JetBrains Функция, которую я запрашивал, является на их долгосрочной перспективе Список дел, но не будет реализован в ближайшее время (2014-03-05).

Это было полезно?

Решение

с последним плагином Scala Plugin, есть API, который можно использовать для записи собственного плагина для поддержки ваших макросов: http://blog.jetbrains.com/scala/2015/10/14/intellij-ap-bo-build-scala-macros-support// a>

Теперь каждый может использовать эту API, чтобы сделать их макрос более дружелюбными для своего любимого IDE.Для этого вам приходится реализовать syntheticsmembersinsjector и зарегистрируйте его в файле plugin.xml:

<extensions defaultExtensionNs="org.intellij.scala">
  <syntheticMemberInjector implementation="org.jetbrains.example.injector.Injector"/>
</extensions>
.

Другие советы

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

Цитата по этой ссылке: http://blog.jetbrains.com/scala/2014/01/23/heading-to-te-perfect-scala-code-analish/

Alexander Podkhalyuzin says:    
.

30 января 2014 года в 10:13 утра

Мы начали поддержку Scala Macros, но это не простая задача, поэтому я не могу обещать, что это будет сделано в ближайшее время.

С наилучшими пожеланиями, Александр подхалюзин.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top