Как избавиться от "Текущий выбор текста не может быть открыт в редакторе" в Eclipse?
Иногда я получаю это сообщение в строке состояния, когда я нажимаю F3 в типе в редакторе Java:
Текущий текстовый выбор не может быть открыт в редакторе
Когда я копирую выделение в буфер обмена и использую Ctrl+Shift+T, чтобы открыть диалоговое окно "Открыть тип", я могу вставить это значение, и он отобразит тип, и я могу его открыть. Тип находится на пути к классу (без ошибок компиляции).
В других редакторах Java в том же проекте работает F3/Ctrl-Click.
В "сломанном" редакторе он работает только с внутренними полями и методами. Для внутренних полей он работает только в том месте, где определено поле. Все места, где используется поле, мертвы. "Mark Occurrences" работает, однако.
Как мне избавиться от него?
До сих пор я пробовал:
- Закрыть и открыть редактор
- Очистить проект
- Очистить все проекты
- "Обновить проект..." в контекстном меню Maven
- Перезапуск Eclipse
- Перезапустить Eclipse с помощью -clean
Это происходит на Eclipse 3.7.2 с установленным m2e 1.3.1.
Ответы
Ответ 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.