IntelliJ IDEA
13は、私のローカルセットアップで非常に奇妙な動作を示し始めました。
つまり、既存のプロジェクトに追加された新しいJava
クラスでは、Code Completion
動作しません。そのため、新しいクラスで任意のタイプのオブジェクト変数を宣言し、その変数の名前を入力し、その後にドット(。)を入力すると、対応するオブジェクトのメソッドについて提案が表示されません。
たとえば、宣言した後
File f = new File("/home");
入力f.
は、File
クラスのすべてのメソッドのリストを表示せず、1つを選択します。実際には、ドット(。)を入力すると、提案は表示されず、IDEウィンドウの左下(ステータスバー))に「識別子が必要です。識別子が必要です。 。 "が表示されます。場合によっては、無関係なコンポーネントまたはライブラリからの完全に無関係なメソッドの長いリストが提案されます。
不思議なことに、Code Completion
上記の宣言が既存のクラスのいずれかで発生した場合、期待どおりに機能します。
この動作は、マシンの再起動、IDE再起動、プロジェクトの再インポート、終了/再開、または再構築のさまざまな組み合わせを行った後も続きます。
何か案は?
フォロワーの場合、私を助けた1つのこと(オートコンプリートはキャストフィールドインスタンスの表示のみを示したなど)が、子に正しくリンクされていないMavenモジュールを開いた(コメントアウトされたサブモジュールセクションがあった)ため、IntelliJはmaven Javaファイルは基本的に「テキスト」ファイルとして、プロジェクトペインのアイコンに小さな「j」が付いています。ルートmaven pom.xmlファイルを修正して、モジュールとして子ディレクトリを含め、ほら、それらは本当のように扱われますJavaファイルが再び、うーん!
ファイル->プロジェクト構造->モジュールで、すべてのソースディレクトリにマークを付けてください。
IntelliJの実行中に省電力モードになっていないことを確認します([ファイル] [メニュー]-> [省電力モード]がオンになっているかどうか)。省電力モードが有効になっている場合、IntelliJは コード完了を含むバックグラウンドタスク を実行しません。
IntelliJ Ultimate 2017.1を使用していますが、同様の問題が発生しました。 Mavenプロジェクトは、Selenium APIを使用しようとしていましたが、intellisenseが相対メソッドをポップアップしませんでした。
これが私が私の問題を解決した方法です:
プロジェクトのsrcフォルダを右クリックします
Mark Directory As
を選択し、次にSources Root
を選択します
私はこれと同じ問題を抱えていましたが、それは私がソースルートとしてマークされたフォルダを持っていなかったことが原因でした。
Srcディレクトリを右クリックし、[ディレクトリに次のマークを付ける]> [ソースルート]を選択します。
フォルダー.ideaとファイル* .imlをルートフォルダーに切り取り、プロジェクトの別の場所に貼り付けます。プロジェクトを再度開くと、自動インポートが再び魔法のように機能します。
これはIntelliJ 13ではなく、より新しい2017.1.1コミュニティバージョンです。この回答をここに追加して、Gradle構成にルーツを持つ原因から他の人が恩恵を受けるようにします。
さて、私の場合もオートコンプリート、Generate Overrideメソッドやその他の機能が機能していませんでした。私が理解したのは、私のプロジェクト設定で、gradleモジュールの複数の構成があったことです。残りのモジュールをクリーンアップし、そのプロジェクトに必要な(テストを除いて)唯一のモジュールを保持した瞬間、すべての動作は正常に戻りました。
また、このようなGradleプロジェクトの場合は、すべてのsourceSetルートフォルダーとSourceフォルダーをマークすることを忘れないでください。
編集:sourceSetごとに複数の構成を作成せず、gradleモジュールをインポートする場合は、インポート画面で、[sourcesetごとにモジュールを作成する]フラグも無効にする必要があります。これがないと、モジュールをインポートした後で複数のモジュールを削除する必要がありました。
問題には2つの理由が考えられます
プロジェクトを右クリック->フレームワークサポートを追加-> Mavenを選択-> [OK]をクリック
私にとってうまくいった唯一のことは、IntelliJ(Ubuntu上)を殺して、それを再開することでした。
Eclipse-cheクライアント拡張のコーディング中にこの問題に直面していました。 Eclipse cheモジュールはすべてmavenタイプです。私のクライアント拡張プロジェクトは、親プロジェクトから独立してコンパイルできる独立したモジュールでした。 Intellijに同じ構造をインポートしたとき、クライアント側の拡張プロジェクトは提案をしていませんでした。 client-extensionプロジェクトを親モジュールに含めた後(pom.xmlに追加)、提案が表示され始めました。
どういうわけかjdkが依存関係として設定されていないgroovyプロジェクトがあったので、jdkクラスはオートコンプリートしませんでした。
修正: