Заполнение кода IntelliJ не работает для новых классов Java

IntelliJ IDEA 13 начал проявлять очень странное поведение в моей локальной установке.

А именно, в любом новом классе Java, добавленном к существующему проекту, Code Completion не работает. Итак, после объявления объектной переменной любого типа в новом классе и затем ввода имени этой переменной, за которой следует точка (.), Никаких предложений для какого-либо из методов соответствующего объекта не возникает.

Например, после объявления

File f = new File("/home");

typing f. не выводит список всех методов класса File, чтобы выбрать один из них. На самом деле, при наборе точки (.) Никаких предложений не появляется и в левом нижнем углу (в строке состояния) окна IDE появляется сообщение "Идентификатор ожидается. Идентификатор ожидается". отображается. Иногда предлагается длинный список совершенно ненужных методов из нерелевантных компонентов или библиотек.

Странно, Code Completion работает так, как ожидалось, если указанное выше объявление происходит в любом из существующих классов.

Такое поведение сохраняется после многих комбинаций перезагрузки компьютера, повторного импорта IDE, повторного импорта проекта, закрытия/повторного открытия или восстановления.

Любые идеи?

Ответ 1

Для последователей, одна вещь, которая помогла мне (автокомпонент только показал листинг поле экземпляр и т.д.) заключалось в том, что я открыл модуль maven, который неправильно привязывался к его дочерним элементам (у него был раздел подкомпоновных комментариев), поэтому IntelliJ просто показывал файлы maven java как в основном текстовые файлы с крошечным "j", в их значке в области проекта. Исправляя файл корня maven pom.xml, чтобы включить дочерние dirs в качестве модулей и voila, они снова рассматриваются как настоящие java файлы, woot!

Ответ 2

Убедитесь, что вы пометили все исходные каталоги как таковые в файле → Структура проекта → Модули.

Ответ 3

Убедитесь, что вы не находитесь в режиме энергосбережения во время работы IntelliJ (Файл [меню] → Режим энергосбережения установлен или нет). Если включен режим энергосбережения, IntelliJ не запускает фоновые задачи включая завершение кода.

Ответ 4

Я использую IntelliJ Ultimate 2017.1, и я столкнулся с подобной проблемой. Maven, пытался использовать selenium API, но intellisense не выставлял относительные методы для меня.

Вот как я решил свою проблему:

Щелкните правой кнопкой мыши папку вашего проекта src
Выберите Mark Directory AsЗатем выберите Sources Root

Ответ 5

Отрежьте папку .idea и файлы *.iml в корневой папке и вставьте в другое место из проекта. при повторном открытии проекта автоматический импорт будет работать волшебным образом.

Ответ 6

У меня была такая же проблема, и она была вызвана тем, что у меня не было папки, помеченной как источник root.

Щелкните правой кнопкой мыши по каталогу src и выберите "Отметить каталог как"> "Корень источника".

Ответ 7

В вашей проблеме может быть 2 причины.

  • Либо исходная папка неправильно настроена в пути сборки сборки Java. Если исходная папка настроена неправильно, автозаполнение не получит требуемые определения классов, и автозаполнение завершится неудачно для вашего проекта.
  • Восстановление параметров по умолчанию в разделе "Windows" > "Настройки" > "Java" > "Редактор" > "Контент" > "Дополнительно"

Ответ 8

Щелкните правой кнопкой мыши по проекту → Добавить поддержку фрейма → Выберите Maven → Нажмите OK

Ответ 9

Единственное, что сработало для меня, - это убить IntelliJ (на Ubuntu) и начать его снова.

Ответ 10

Я столкнулся с этой проблемой при кодировании расширения клиента eclipse-che. Модули Eclipse che имеют тип maven. Мой проект расширения клиента был независимым модулем, который может быть скомпилирован независимо от родительского проекта. Когда я импортировал ту же структуру в Intellij, мой проект расширения на стороне клиента не давал предложений. После того, как я включу проект расширения клиента в родительский модуль (добавив его в pom.xml), предложения начали появляться.

Ответ 11

Удалите пакет из Настройки > Редактоp > Общие > Автоматический импорт > Java > Исключить из импорта и завершения

Я столкнулся с этой проблемой. Ни одно из решений этого сообщения не работало, но я смог исправить это, потому что случайно разместил свой проект в настройках "Исключить из импорта и завершения".

изменить настройки intellij, чтобы включить пакет для завершения

Ответ 12

У меня был проект groovy, где каким-то образом jdk не был установлен как зависимость, поэтому классы jdk не будут автозаполнены.

Исправление:

  • Структура проекта
  • модули
  • (ваш модуль) Закладки
  • Зависимости.
  • В поле Module SDK добавьте jdk.

Ответ 13

Это не IntelliJ 13, а более новая версия сообщества 2017.1.1. Добавьте сюда этот ответ, чтобы другие извлекали выгоду из причины, которая имеет свои корни в конфигурациях Gradle.

Теперь, в моем случае, автозаполнение, методы генерации переопределения и другие функции не работали. Я понял, что в моих настройках проекта у меня было несколько конфигураций для модулей Gradle. В тот момент, когда я очистил остальные модули и сохранил только один (кроме теста), который мне нужен для этого проекта, все поведение было нормальным.

Также в таких случаях проектов Gradle не забудьте отметить все корневые папки sourceSet в папках источника.

Изменить. Если вы не хотите создавать несколько конфигураций на sourceSet и импортируете модуль Gradle, на экране импорта вы также должны отключить Create the module для каждого флага sourceSet. Без этого мне пришлось удалить несколько модулей после импорта модуля. Создать модуль для каждого исходного набора

Ответ 14

У меня была похожая проблема, ничего в этой теме не помогло.

Итак, наконец, я заставил это работать, я очищаю кэш IntelliJ и перезагружаюсь.

Файл> Неправильный кэш/перезапуск..> Invalidate Cache and Restart (кнопка)

enter image description here

Ответ 15

Это происходило для меня в модуле, который не был добавлен в pom родительского проекта (они сделали это нарочно), поэтому я щелкнул правой кнопкой мыши на pom.xml модуля, в котором возникла проблема, и нажал

enter image description here

теперь пришло автозаполнение, и в дополнение к этому я могу видеть модуль как отдельный проект на вкладке maven в правом верхнем углу.