34 votes

Rapport IntelliJ IDEA Erreur de surbrillance lors de l'utilisation des itinéraires dans le contrôleur

J'ai un Scala Jouer du projet. J'utilise Jouer 2.2.1. J'ai téléchargé Scala, Jouer 2 pris en charge et SBT plugins. Tout est OK, mais Quand je l'appelle la route sur l'Action dans le Contrôleur apparaissent à la suite d'une erreur(Regardez les captures d'écran):

Screenshot1

Screenshot2

Je suis à l'aide d'IntelliJ IDEA 12.1.6 Ultime version. Scala version 2.10.2

Quelqu'un sait comment résoudre ce problème?

Merci à l'avance!


Modifier

Lorsque je génère mon projet de Intellij IDEA via "jouer à l'idée de la commande" dans le jeu de la console, et j'ai ouvert le projet dans l'IDÉE de la structure de projet a été tel:

screenshot6

Puis j'ai vu la réponse @moulin et de discuter sur ce githup([Play 2.2] "jouer à l'idée de" ne crée pas de travail de la source de la cartographie dans la cible) et j'ai supprimé les dossiers suivants à partir de Sources de Dossiers:

  • cible\scala-2.10\src_managed\main\contrôleurs
  • cible\scala-2.10\src_managed\main\views

et "Rapport mettant en évidence l'erreur" a disparu, mais maintenant il y a une autre erreur:

screenshot3

et

screenshot7

mon itinéraire:

screenshot4

Et j'ai changé "les Sources de Dossiers" comme indiqué ci-dessous:

screenshot5

Mais il ne m'aide pas. Et reste "valeur Quelconque parametrs d'erreur".

48voto

wm_eddie Points 2785

moulin de la réponse m'a aidé à trouver la bonne réponse. Jouer 2.2 (et peut-être des versions antérieures, vous n'avez pas vérifié) sortie un scala version du fichier de routes d' project_dir/target/scala-2.10/src_managed/main Donc pour IntelliJ pour obtenir la mise en évidence de droite, vous devez vous assurer que src_managed/main est ajouté sous la forme d'un dossier source. À l'inverse des itinéraires pour javascript sont pour quelque raison inclus dans project_dir/target/scala-2.10/classes_managed de sorte que vous aurez à ajouter à cela. (Dans votre capture d'écran, il ressemble classes_managed est fixé à exclues de sorte que vous aurez envie de l'onu-l'exclure en appuyant sur le bouton x sur le côté droit.)

Voici une capture d'écran de mon projet structure:

Working Play 2.2 project structure

Mise à jour:

Dans le Jeu, 2.3 (ou peut-être les dernières versions de l'Ide) en y ajoutant la classes_managed plus résout le problème. Au lieu d'ajouter classes_managed du projet, les sources de l'ajouter à ses dépendances. Ce faisant, l'Ide doit être en mesure de ramasser la compilation routes.class.

Working Play 2.3 dependency list

8voto

millhouse Points 3445

C'est un problème commun, c'est parce que l'Ide doit être indiqué où trouver les compilées Scala de modèles et d' routes le fichier. Voici comment je l'ai corrigé sur mon IntelliJ 12.1 installation:

  • Allez dans le Module Paramètres de votre projet dans l'Ide (sélectionnez le haut-niveau, frappé F4)
  • Choisissez les Modules de l'élément dans la Structure du Projet, la fenêtre qui s'affiche
  • Sélectionnez la projectname élément (par opposition à la projectname-construire le point)
  • Ajouter le compilateur du répertoire de sortie pour les Dossiers de la Sourcedes éléments;
    • Pour Scala 2.10 c'est target/scala-2.10/classes
    • Personnellement, je trouve l'Ide de l'INTERFACE utilisateur pour que ce soit très non-intuitive; vous pourriez avoir besoin de prendre l' target répertoire et/ou un de ses sous-répertoires de l' Dossiers Exclus de la première
  • Après l'application de ce changement, IntelliJ devriez voir les résultats de la compilation de chaque routes et .scala.html le fichier comme juste un autre fichier source, de sorte qu'ils ne montre pas "cassé" et de l'auto-complétion doit travailler pour eux.

2voto

Khwarezm Shah Points 426

J'espère que ce lien vous sera utile. Ceci pour IntelliJIDEA 13

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X