Преобразование табуляции и пробелов

Я хотел бы автоматически преобразовывать между вкладками и пробелами для отступов, когда я фиксирую / обновляю код в / из нашего репозитория. Я нашел плагин AnyEdit для eclipse, который может конвертировать каталоги файлов. Неплохо для начала, но есть ли у кого-нибудь больше опыта в том, как с этим справиться? Или, может быть, знаете сценарий Ant или что-то еще?


person Robse    schedule 19.09.2008    source источник
comment
Проверьте следующая ссылка, которую я написал, которая содержит шаги по преобразованию вкладок в пробелы из Eclipse.   -  person Rakesh Sankar    schedule 10.07.2012


Ответы (7)


Почему бы просто не использовать средство форматирования кода и / или функцию очистки? У него есть настройки, которые позаботятся обо всем этом за вас. Вы даже можете запустить его автоматически при сохранении.

Изменить: Как отмечает Петер Перхач в комментариях, это отвечает только на половину вопроса. У меня нет практического опыта, но вы можете попробовать Maven Eclipse Format Plugin для форматирования из сборки Maven .

К сожалению, это только Maven, и я не знаю ни одного легкого средства форматирования командной строки. Но если вы используете Maven, вы можете привязать цель форматирования к соответствующей фазе, и если вы установите Eclipse на автоматическую сборку, он будет форматироваться при обновлении.

В зависимости от инструмента SCM (git, svn и т. Д.) Вы также можете создать перехватчик, запускающий сборку (но он может быть слишком тяжелым для этого).

person Sietse    schedule 19.09.2008
comment
нужно быть осторожным с программой форматирования eclipse, она действительно может испортить объявления массивов, которые были отформатированы таким образом, чтобы улучшить читаемость - person Craig Angus; 30.09.2008
comment
Поскольку удобочитаемость может быть настолько субъективной, определенно стоит хотя бы попытаться полюбить автоматизируемое форматирование. - person Peter Hilton; 30.09.2008
comment
это отвечает на фиксацию в репозитории, но как насчет обновления из репозитория? в основном. если предполагается, что в репозитории будут использоваться только пробелы, а не вкладки, как мне обновить его и преобразовать пробелы в вкладки. Но затем преобразовать обратно в пробелы при фиксации? это отвечает только на половину вопроса - person Peter Perháč; 03.05.2011

  1. Убедитесь, что ваш редактор настроен на использование пробелов вместо табуляции.
  2. Выделите весь текст и нажмите CMD + I на Mac или CTRL + I в Windows.
person pwaterz    schedule 29.01.2014
comment
Не всегда работает - person lurker; 14.07.2021

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

Вкладкам нет места в исходном коде. Если кто-то другой смотрит на файл с другим значением табуляции, он все равно теряет большую часть выравнивания / форматирования.

(Конечно, если у вас есть файлы Makefile, которые вы редактируете напрямую, вам нужно убедиться, что их вкладки сохранены. Но в моих проектах, если make используется вообще, Makefile получен из другого источника, такого как Makefile. PL на Perl.)

person rjray    schedule 19.09.2008

Немного перебор, и только что-то, что можно попробовать с некоторыми продуктами репозитория, которые могут с этим справиться, но скрипт-перехватчик для вызова indent или astyle может помочь. Он будет форматировать код каждого файла одинаково для каждого файла, в зависимости от того, как вы пишете скрипт-перехватчик, и, конечно же, он должен быть предварительно зафиксирован.

person Chris Charabaruk    schedule 19.09.2008

Вы можете потерять выравнивание / форматирование, используя табуляторы вместо пробелов, если и только если табуляции не находятся в начале строки. Никогда не используйте табуляции внутри строк, всегда используйте табуляции перед строками. Это позволяет вам использовать ваш редактор для настройки желаемого уровня отступа, не влияя на просмотр файла коллегами. Задача: Найдите пример, в котором выступы в начале строки теряют выравнивание.

person Andrew    schedule 12.02.2010
comment
Вкладки в начале строки теряют выравнивание, когда с файлом работают несколько человек / редакторов, и файл получает смесь вкладок и пробелов ... и у людей есть редакторы, настроенные на разную ширину вкладок (обычно 4 и 8). - person Craig McQueen; 21.02.2011

Я использую Kedit как раз для этого. Он также изначально конвертирует текстовые файлы из Macintosh, UNIX и MS-Dos. Поскольку это более старый редактор, я использую один из его сценариев для обработки файлов Unicode. Вы также можете взглянуть на некоторые другие умные редакторы.

person Dave    schedule 12.02.2010

Я использую Eclipse для разработчика Java EE 4.6.0 Neon. Я использую http://marketplace.eclipse.org/content/anyedit-tools

person Do Nhu Vy    schedule 07.10.2016