web-dev-qa-db-ja.com

IntelliJ IDEAコントローラーでルートを使用する際のハイライトエラーを報告する

Scala Playプロジェクトがあります。Play2.2.1を使用しています。Scala、Play 2がサポートされ、SBTプラグインをダウンロードしました。すべて問題ありませんが、コントローラーでAction onActionを呼び出すと次のエラーが表示されます(スクリーンショットを見てください):

Screenshot1

Screenshot2

IntelliJを使用していますIDEA 12.1.6Ultimateバージョン。Scalaバージョン2.10.2

誰かがこの問題を解決する方法を知っていますか?

前もって感謝します!


編集

Playコンソールで「playidea」コマンドを使用してIntellij IDEAにプロジェクトを生成し、IDEAプロジェクト構造は次のようになりました:

screenshot6

次に、回答@millhouseを見て、このGithupについて話し合いました( [Play 2.2] "play idea"はターゲットで機能しないソースマッピングを作成します )そして次のフォルダーをから削除しましたソースフォルダ

  • target\scala-2.10\src_managed\main\controllers
  • target\scala-2.10\src_managed\main\views

および「レポートの強調表示エラー」は消えましたが、別のエラーがあります:

screenshot3

および

screenshot7

私のルート:

screenshot4

そして、以下に示すように「ソースフォルダ」を変更しました。

screenshot5

しかし、それは私を助けません。そして、「不特定の値のパラメータ」エラーのままです。

34
mr.boyfox

ミルハウスの答えは私が正しい答えを見つけるのを助けました。 Play 2.2(およびおそらく以前のバージョンはチェックされていません)は、ルートファイルのscalaバージョンをproject_dir/target/scala-2.10/src_managed/mainに出力します。したがって、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)では、classes_managedを追加しても問題は修正されなくなりました。 classes_managedをプロジェクトのソースに追加する代わりに、それを依存関係に追加します。そうすることで、IntelliJはコンパイルされたroutes.classを取得できるはずです。

Working Play 2.3 dependency list

48
wm_eddie

これは一般的な問題です。IntelliJがコンパイル済みScalaテンプレートとroutesを探す場所を示す必要があるためです。 IntelliJ12.1インストールで修正した方法は次のとおりです。

  • IntelliJでプロジェクトのモジュール設定に移動します(トップレベルを選択し、F4を押します)
  • 表示される[プロジェクト構造]ウィンドウで[モジュール]項目を選択します
  • projectnameアイテムを選択します(projectname-buildアイテムではなく)
  • コンパイラの出力ディレクトリをソースフォルダアイテム; に追加します。
    • Scala 2.10の場合、それはtarget/scala-2.10/classesです
    • 私は個人的に、これに対するIntelliJUIが非常に直感的ではないと感じています。 targetディレクトリおよび/またはそのサブディレクトリの1つを除外されたフォルダ最初に削除する必要がある場合があります
  • その変更を適用した後、IntelliJは、各routesファイルと.scala.htmlファイルを別のソースファイルとしてコンパイルした結果を確認する必要があります。これにより、「壊れた」ファイルとして表示されず、オートコンプリートが機能するはずです。
8
millhouse