Перемещение и исчезновение строк кода; проблема с Eclipse XML Editor

Иногда мой код движется сам по себе или просто исчезает в редакторе XML Eclipse.

Yikes!

Когда я выделяю затронутый код, выделенные строки пытаются исправить себя. Но когда я прокручиваю или перетаскиваю мышь в противоположном направлении, код сдвигается снова. По сути, у меня будут повторяющиеся, отсутствующие и сломанные строки кода, отображаемые из файла без ошибок. Затрагиваемые файлы компилируются, и если я закрываю/открываю их, проблема на данный момент исчезает. Любые идеи о том, что происходит?


Дополнение: Джефф Аксельрод предоставил ссылку на новый отчет об ошибке с Google.

Ответ 1

Эта ошибка (наконец) исправлена ​​в ADT 21. Исправление теперь доступно в ADT 21 Preview 9, опубликованном несколько минут назад, здесь: https://android-review.googlesource.com/#/c/44936/1

Причина, по которой вы получаете странные визуальные артефакты, заключается в том, что если файл содержит разбитые конечные строки DOS (несколько возвратов каретки без новой строки для каждого возврата каретки), Eclipse очень запутан. Эта проблема Eclipse https://bugs.eclipse.org/bugs/show_bug.cgi?id=375421.

В исправлении есть две части: (1) Во-первых, ADT был исправлен таким образом, что он больше не вводит эти последовательности \r\r в документ. Это гарантирует, что вы не получите новые документы, которые запускают странное поведение редактирования, но не ретроактивно исправляют старые документы с этими окончаниями строк, поэтому, если вы их открываете, вы по-прежнему получаете странное поведение редактирования.

(2) Во-вторых, есть новая проверка на линт, которая ищет ломаные строки в документах. Это выполняется постепенно, поэтому, если вы отредактируете XML файл, у которого есть эта проблема, ADT добавит маркер ошибки для этой проблемы - наряду с быстрым исправлением для выполнения операции над документом, чтобы исправить его.

Вкратце: Получить ADT 21 Preview 9; запустите Lint в ваших проектах и ​​ищите любые жалобы на файлы, содержащие ломаные строки, и если они найдут какие-либо, примените quickfix. С этого момента дальнейшие изменения в редакторе макетов должны содержать файлы в формате.

FYI, соответствующее исправление находится здесь: https://android-review.googlesource.com/#/c/44936/

Инструкции по легкому обновлению SDK Tools и плагина Eclipse ADT находятся здесь: http://tools.android.com/preview-channel

- Tor (из команды инструментов Android)

Ответ 2

После некоторых тестов я обнаружил, что здесь может быть виновен вариант "Автоматически форматировать XML, отредактированный редактором визуальных макетов" (в разделе "Настройки | Android | Редакторы" ).

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

Если вы хотите отформатировать XML при возврате из режима графического макета, просто используйте ярлык Ctrl + Shift + F. Кроме того, я не видел никаких проблем с использованием опции "Формат при сохранении"; даже когда я использую его в режиме графической компоновки; поэтому вы можете использовать Ctrl + S, пока вы все еще находитесь в режиме графического макета, чтобы сохранять и форматировать свой XML.

Я пробовал другие варианты редакторов, такие как "Показать индикатор диапазона" или "Использовать символы для отображения изменений в вертикальной линейке", но я не видел различий в поведении при активации или дезактивации этих параметров.

Наконец, чтобы исправить визуальное отображение файла, когда он поврежден; Я обнаружил, что использование ярлыка: Ctrl + A, Ctrl + C, Ctrl + V немного легче, чем закрытие/повторное открытие файла. Это эквивалентно выбору Select All, Copy, Paste; эффективно копируя весь XML файл по себе.

Ответ 3

Все еще испытывает эту ошибку в Juno (Eclipse 4.2.0, ADT r20).

Мое исправление: Перейдите в Окно → Настройки → Android → Редакторы. У меня есть "Формат XML с использованием стандартного Android XML..." и "Использовать настройки Eclipse для отступов....". Это решило проблему для меня.

Ответ 4

EDIT: содержат более быстрый метод, поэтому он был наверху:

Ctrl + F → заполните так:

  • "Найти"           "\ Г\г\п"
  • "Заменить"   "\ r\n"
  • Переключить "Регулярное выражение" на ВКЛ
  • нажмите кнопку "Заменить все"
  • Ctrl + A
  • Отменить выбор текста.
  • быть счастливым =)

Оригинал был здесь: Просто не скрывайте эту проблему, если можете ее исправить. Иногда даже закрытие файла XML не помогло.

Для исправления давайте посмотрим на причину этого. Прежде всего включите "Показывать символы пробелов" ( "Окно" > "Настройки" > "Основные" > "Редакторы" > "Текстовые редакторы" > "Показать пробельные символы" )

Затем вернитесь в свой XML файл.

enter image description here

В масштабированном изображении вы можете увидеть разницу цветов "\n" -символов;

затем просто поместите курсор на этот символ, который темнее.
enter image description here

Посмотрите, две линии были выбраны 0o... это может быть причиной!

поэтому просто удалите его и нажмите кнопку "Enter" или "Return", чтобы добавить символ "\n". enter image description here
Надеюсь, это поможет вам.


также вы можете найти другой символ конечной линии:
enter image description here


Просто удалите его, и ваш XML будет отлично смотреться!

P.S. извините за гиперссылки, я новичок и на SO я не могу загрузить изображение или более 2 ссылок. так что надеюсь, вы получите точку без дополнительных фотографий;)

P.P.S. спасибо к парню, который проголосует, теперь я могу предоставить это изображения.

Ответ 5

У меня была такая же трудность и, наконец, нашли решение: щелкните правой кнопкой мыши в редакторе, выберите Source/Cleanup Document.

Ответ 6

У меня была такая же проблема. Это были следующие шаги. Ссылка предлагает, чтобы он работал для других.

  • Перейдите в раздел Настройки → ключи
  • Отменить копирование, вставить и вырезать (нажать "применить", затем "ОК" )
  • повторить шаг 1
  • Восстановить несвязанные команды с шага 2 (я не восстановил вырезание, но я уверен, что все будет в порядке)

Обратите внимание, что есть 2 привязки для каждой из трех команд

  1. Отключить вторичную функцию для копирования и вставки (оставить ctl + c/ctl + v [копировать/вставить])

В этот момент вы должны установить только 2 привязки для выполнения копирования/вставки (т.е. ctl + c/ctl + v)

  1. Применить → OK

Это решение было найдено здесь.

Ответ 7

Если эта ошибка появляется с новыми версиями ADT (которые являются обязательными для исправления и где ошибка не должна появляться часто), просто используйте инструмент Lint, чтобы исправить это.

Найдите его в предупреждениях Lint и нажмите значок желтая лампочка в правом верхнем углу этого списка предупреждений Lint..

Надеюсь, что это поможет кому-то