Как заставить плагин компилятора Scala работать в Scala IDE - PullRequest
4 голосов
/ 21 октября 2011

Примечание. Это точный репост того же вопроса в списке рассылки Scala-IDE, где я получил нулевой ответ и перестал ждать через 5 дней.

Янаписание плагина компилятора Scala.В настоящее время он называется скальпер (но я мог бы найти лучшее имя позже).У меня установлен стек Typesafe, и я вставил в него свой плагин:

C:\Program Files\typesafe-stack\misc\scala-devel\plugins

Теперь я могу вызывать скаляр как:

scalac -classpath ... -Xplugin-require:scalawrapper test\...

, и он автоматически находит и использует мой плагин.

К сожалению, я просто не могу заставить Scala-IDE использовать его.Я всегда получаю Missing required plugin: scalawrapper.На вкладке «Свойства проекта \ Компилятор Scala (Использовать параметры проекта) \ Дополнительно» я ввел scalawrapper в поле Xplugin-require, и это работает, так как я получаю сообщение об ошибке.Но ничего, что я могу напечатать в Xpluginsdir, похоже, не имеет никакого эффекта.

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

Я только чтообновлено сегодня (15.10.2011) и поэтому должно иметь самую последнюю версию (кажется, что я, наконец, могу явно установить отступ в 4, но, возможно, я просто пропустил настройку в прошлом).

Может кто-нибудь сказать мне, чтоон действительно ожидает, и что использует по умолчанию, когда я ничего не помещаю в Xpluginsdir?

1 Ответ

3 голосов
/ 21 октября 2011

В Scala IDE используется компилятор презентации, а не тот, который вы установили.Чтобы использовать плагин с Scala IDE, вам нужно указать его в настройках Eclipse.

Попробуйте Windows->Preferences->Scala->Compiler.Смотрите вкладку «Дополнительно».Пути относятся к рабочему пространству.

РЕДАКТИРОВАТЬ: Когда я говорю относительно рабочего пространства, я имею в виду фактический каталог рабочего пространства, в котором хранятся метаданные ($workspace_loc).У меня есть проект, где файлы проекта, включая исходный код, хранятся в одном каталоге, а рабочая область находится в другом месте, то есть $project_loc (c: \ code \ project \ source) отличается от $workspace_loc (c: \ code \проект \ рабочее пространство).Каталог, который вы указываете в параметрах компилятора, относится к рабочему пространству ($workspace_loc).

Чтобы узнать, есть ли у вас аналогичные настройки, перейдите в проект и выберите Properties->Resource->Linked Resources.

Я создал каталог под $workspace_loc с именем plugin и поместил туда файл jar.На вкладке Windows->Preferences->Scala->Compiler Дополнительно у меня есть

Xplugin = C:\code\project\workspace\plugin\xxx-0.0.1.jar
Xplugin-require = xxx

Обратите внимание, что вы также можете указать плагин в свойствах проекта, но он по-прежнему использует $workspace_loc.Вышеуказанная конфигурация работает для меня.

...