IntelliJ IDEA Report Выделение ошибки при использовании маршрутов в контроллере
У меня есть проект Scala Play. Я использую Play 2.2.1. Я загрузил Scala, Play 2 и SBT-плагины. Все в порядке, но когда я вызываю маршрут на Action в контроллере, появляется следующая ошибка (смотрите скриншоты):
![Screenshot1]()
![Screenshot2]()
Я использую IntelliJ IDEA 12.1.6 Ultimate. Scala версия 2.10.2
Кто-нибудь знает, как исправить эту проблему?
Спасибо заранее!
Edit
Когда я создаю свой проект в Intellij IDEA с помощью команды "play idea" в игровой консоли, и я открыл проект в структуре проекта IDEA, был таким:
![screenshot6]()
Затем я увидел ответ @millhouse и обсудил этот githup ([Play 2.2] "play idea" создает нерабочее сопоставление источника в целевом) и я удалил следующие папки из Источники папок:
- цель \ scala -2,10\src_managed\основных\контроллеров
- цель \ scala -2,10\src_managed\основные\Views
и "Ошибка выделения отчета" исчезли, но теперь есть еще одна ошибка:
![screenshot3]()
и
![screenshot7]()
мой маршрут:
![screenshot4]()
И я изменил "Источники папок", как показано ниже:
![screenshot5]()
Но это мне не помогает. И остается ошибка "Unspecified value parametrs".
Ответы
Ответ 1
Ответ на мельницу помог мне найти правильный ответ. Play 2.2 (и, возможно, более ранние версии, не проверял) вывести версию файла маршрутов scala на project_dir/target/scala-2.10/src_managed/main
So для IntelliJ, чтобы получить выделение справа, вам нужно убедиться, что src_managed/main
добавлен в качестве исходной папки, Обратные маршруты для javascript по какой-то причине включены в project_dir/target/scala-2.10/classes_managed
, поэтому вам также придется добавить это. (На вашем скриншоте похоже, что classes_managed
установлен в исключение, поэтому вы захотите его исключить, нажав кнопку x с правой стороны.)
Вот скриншот моей структуры проекта:
![Working Play 2.2 project structure]()
Обновление
В Play 2.3 (или, возможно, в последних версиях IntelliJ) добавление классов_managed больше не устраняет проблему. Вместо добавления classes_managed в источники проекта добавьте в него зависимости. Делая это, IntelliJ должен иметь возможность собирать скомпилированные маршруты.
![Working Play 2.3 dependency list]()
Ответ 2
Это обычная проблема, потому что IntelliJ нужно показать, где искать скомпилированные шаблоны Scala и routes
. Вот как я исправил его на моей установке IntelliJ 12.1:
- Перейдите к настройкам модуля для вашего проекта в IntelliJ (выберите верхний уровень, нажмите F4)
- Выберите элемент "Модули" в появившемся окне "Структура проекта"
- Выберите элемент projectname (в отличие от элемента projectname-build)
- Добавить выходной каталог компилятора в элементы Исходные папки;
- Для Scala 2.10 it
target/scala-2.10/classes
- Я лично считаю, что интерфейс IntelliJ для этого очень неинтуитивный; вам может потребоваться взять каталог
target
и/или один из его подкаталогов из Исключенных папок сначала
- После применения этого изменения IntelliJ должен увидеть результаты компиляции каждого файла
routes
и .scala.html
как только-другой исходный файл, поэтому они не будут отображаться как "сломанные", и автозаполнение должно работать для них.