Подтвердить что ты не робот

Как избавиться от "Текущий выбор текста не может быть открыт в редакторе" в Eclipse?

Иногда я получаю это сообщение в строке состояния, когда я нажимаю F3 в типе в редакторе Java:

Текущий текстовый выбор не может быть открыт в редакторе

Когда я копирую выделение в буфер обмена и использую Ctrl+Shift+T, чтобы открыть диалоговое окно "Открыть тип", я могу вставить это значение, и он отобразит тип, и я могу его открыть. Тип находится на пути к классу (без ошибок компиляции).

В других редакторах Java в том же проекте работает F3/Ctrl-Click.

В "сломанном" редакторе он работает только с внутренними полями и методами. Для внутренних полей он работает только в том месте, где определено поле. Все места, где используется поле, мертвы. "Mark Occurrences" работает, однако.

Как мне избавиться от него?

До сих пор я пробовал:

  • Закрыть и открыть редактор
  • Очистить проект
  • Очистить все проекты
  • "Обновить проект..." в контекстном меню Maven
  • Перезапуск Eclipse
  • Перезапустить Eclipse с помощью -clean

Это происходит на Eclipse 3.7.2 с установленным m2e 1.3.1.

4b9b3361

Ответ 1

[ОБНОВЛЕНИЕ] Это, по-видимому, ошибка где-то в глубинах m2e и JDT. Обычно это появляется, когда у вас есть несколько проектов (многомодульный модуль/реактор Maven), а модули MA, MB и MC зависят друг от друга:

MC зависит от MB зависит от внутреннего параметризованного типа X.Y<T> от MA.

и вы закрыли модуль MB. На пути к классу MC это будет выглядеть так:

MB.jar
MA

Это MB существует как JAR в пути к классам, а MA импортируется как проект Eclipse из рабочей области.

В этой ситуации Eclipse запутывается при чтении .class файлов в MB.jar, которым нужны внутренние параметризованные типы из MA. Я предполагаю, что ему нужен тип из MB.jar, анализирует его, который сообщает ему о зависимости от типа в MA, который затем пытается разобрать только, чтобы найти, что параметр типа для T не может быть разрешен поскольку разбор MB еще не закончен.

Есть три исправления:

  • Закрыть MA. Это будет импортировать все как JAR.
  • Откройте проект MB.
  • Сделайте внутренний тип типа верхнего уровня

[СТАР]

Если это произойдет, попробуйте выполнить эти шаги в порядке возрастания отчаяния:

  • Закройте редактор и откройте его снова.
  • Очистить проект
  • Закройте проект и откройте его снова.
  • Перезапуск Eclipse

Если все это не удается:

  • Экспорт ваших настроек
  • Выход из Eclipse
  • Удалить (или переименовать) папку .metadata в вашей рабочей области. Это невидимая папка на некоторых ОС, но она есть.
  • Запустите Eclipse снова
  • Импортируйте ваши настройки
  • Импортировать все проекты еще раз. Для этого выберите рабочую область. Затем Eclipse перечислит все проекты в диалоговом окне, и вы можете сразу выбрать все из них.

по теме:

  • Ошибка 430605 - [выберите] Текущий текст не может быть открыт в редакторе

Ответ 2

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

Если вы выполняете импорт в папку src (что означает, что папка src имеет фокус перед выполнением импорта) из извлеченного jar (в качестве исходного кода), и вы помещаете точки останова во вложенные *.java файлы во вложенные пакеты, она выиграла 't ударил эти точки останова. Чтобы заставить работать, вы должны использовать F3 вместо того, чтобы использовать "Open Declaration" для доступа к *.java файлу, в который хотите установить точку останова, а затем добавить точку останова, дважды щелкнув в крайнем левом поле. Затем запустите > Debug As > Java Application.