Intellijはタイピング中にコンパイルされたときに.Classファイルを入力しますか。
-
21-12-2019 - |
質問
は、エラーがあるときに赤い潮吹き線で私に言うからの常時闘っているIntellijですか?(オートコンプリート機能に加えて)またはそれはある種のPSUEDOコンパイルをしていますか?
合法的なクラスはどこで置かれていますか?個々のモジュールのターゲットフォルダの代わりにそのディレクトリに私のJrebelをポイントしたいと思います。
解決
meoは正しいです、私がカスタム言語のためのプラグインを開発したときから、Intellijはあなたのプロジェクトを明示的に作るまで何もコンパイルされません。入力している間、そのLexer / Parserは無効なトークンまたはコード構成を検出します。その間、それはあなたのプロジェクトのすべてのクラスとメソッドのインデックスとその依存関係などを維持します。
入力をやめた後は、右側の溝の上部に少し着色する目が見えます。 IDEが「アノテーター」と「コード検査」を実行していることを示します。クラス、メソッド、および変数が、現在のインデックスとファイルの現在の状態(インポート、宣言など)に基づいて有効であるかどうかを確認できます。未使用の変数、メソッド呼び出しなどの無効なパラメータなどが同じです。
長所:
- アノテーターは、PSIツリーを呼び出すものに直接機能します。これは基本的にあなたの現在のファイルを表す拡張されたAST
- 毎回コンパイルする方が速くなる可能性があります(索引を使用し、依存クラスをすべて再コンパイルする必要はありません)
- アノテーターは、潜在的なバグのようなものに気にしないことを検出することができます(例えば、
javac
状態での=
の代わりに==
の使用)
短所:
- それは基本的に彼らが基本的に彼らは
while
が生成することができるすべてのエラーを見つけるためにロジックを書き換える必要があります(それが彼らのバグトラッカーのラベル付けされた彼らのバグトラッカーに多くの問題を見つけることができるのは、http://youtrack.jetbrainsに見つけることができる) .com /問題/アイデア?Q=良い%20コード%20 IS%20red "Rel=" Noreferrer ">良いコードは赤"または「悪いコードは緑色」、それらが検出したものの間に違いがあります。コンパイラが出力するもの)
tl; DR:プロジェクトを作るまでjavac
を作成しません。すべてが「手で」行われます。
他のヒント
モジュールごとに、コンパイラの出力パスはモジュール設定の paths タブから見つけることができます。 Jrebelプラグインはrebel.xmlを自動的に生成し、モジュール設定からディレクトリパスを派生させるため、手動での位置を指す必要はありません - IDEプラグインを使用してRebel.xmlを生成するだけです。プロジェクトビュー - > Jrebel - > Rebel.xml
の生成Intellijはコードを理解しています、それは何が間違っているのかを知るためにコードをコンパイルする必要はありません。
プロジェクトのホームディレクトリから/ execuming /メインフォルダに移動して、私の.Classファイルを見つけました。