Подтвердить что ты не робот

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".

4b9b3361

Ответ 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 как только-другой исходный файл, поэтому они не будут отображаться как "сломанные", и автозаполнение должно работать для них.