На этой неделе я переключил свой подключаемый модуль Eclipse SVN с Subclipse на Subversive. Subversive кажется немного медленнее, чем Subclipse, но мне гораздо больше нравится история, диалоги фиксации и украшения ярлыков в Subversive.
К сожалению, похоже, что мне придется вернуться к Subclipse, потому что Subversive, похоже, сломал Eclipse. Мои проекты теперь будут иногда выходить из строя, чаще всего, когда я создаю новый класс или выполняю команду Refactor-> Rename. Под "рассинхронизацией" я имею в виду:
- Неправильная окраска и стиль синтаксиса. На рисунке ниже «общедоступный» не полностью красный, атрибуты не полностью синие, курсив не в тех местах и т. Д.
- Выбор элемента / атрибута не работает должным образом, поскольку Eclipse думает, что вы нажали что-то другое. На картинке ниже я нажал на вторую функцию, но было выделено что-то очень странное.
- Плохо. Автоматические сборки и проверки синтаксиса не работают.
- Very Bad: All IDE functions that add/change/remove code are broken:
- Trying to refactor a name will either throw an exception or will change the name of a different element.
- Добавление автоматического импорта добавит оператор импорта в середину тела класса, удалив все фрагменты кода, которым не повезло, чтобы они мешали.
- Бог вам в помощь, если активирована настройка «Организовывать импорт при сохранении» ...
Картинка лучше тысячи слов -
Интересно, что эту проблему можно временно решить, добавив изменение в испорченный файл и сохранив его. Однако, когда вы это сделаете, вам придется сохранить дважды - после первого сохранения файл «исправлен», но по-прежнему помечен как грязный. Однако это исправление является краткосрочным, так как следующие изменения, которые вы внесете в файл, вероятно, снова рассинхронизируют его.
Я понятия не имею, что здесь происходит. Некоторый поиск в Google привел меня к этой ссылке: Eclipse: Refactor - переименовать полностью напортачил, заменив произвольные символы в файле. У пользователя в связанном вопросе была аналогичная проблема, которая, по-видимому, также была вызвана Subversive. К сожалению, его решение не работает в моем рабочем пространстве.
Я также поспрашивал на работе, и несколько коллег сообщили, что сталкивались с этой проблемой на своих машинах. Все они используют Subversive, а не Subclipse.
Я не знаю, подходит ли для этого StackOverflow или я должен просто отправить это прямо в Eclipse / Subversive как ошибку. Но, может быть, кто-то видел это или что-то подобное и знает исправление или обходной путь? Будем признательны за любые советы!