Преобразование табуляции и пробелов
-
01-07-2019 - |
Вопрос
Я хотел бы автоматически конвертировать табуляции и пробелы для отступов, когда я фиксирую/обновляю код в/из нашего репозитория.Я нашел плагин AnyEdit для eclipse, который может конвертировать каталоги файлов.Для начала неплохо, но есть ли у кого-нибудь больше опыта, как с этим справиться?Или, может быть, знаете сценарий Ant или что-то еще?
Решение
Почему бы просто не использовать форматировщик кода и/или функцию очистки?У него есть настройки, которые позаботятся об этом за вас.Вы даже можете запустить его автоматически при сохранении.
Редактировать: Как отмечает в комментариях Петер Пергач, это отвечает только на половину вопроса.У меня нет практического опыта, но вы можете попробовать Плагин формата Maven Eclipse для форматирования из сборки Maven.
К сожалению, это только Maven, и я не знаю ни одного легкого средства форматирования командной строки.Но если вы используете Maven, вы можете привязать цель форматирования к соответствующей фазе, и если вы установите для Eclipse автоматическую сборку, он будет форматироваться при обновлении.
В зависимости от инструмента SCM (git, svn и т. д.) вы также можете создать перехватчик, запускающий сборку (но для этого он может быть слишком тяжелым).
Другие советы
- Убедитесь, что ваш редактор настроен на используйте пробелы вместо табуляции.
- Выделите весь текст и нажмите КМД + я на Mac или CTRL + я на окнах.
Я использую плагин AnyEdit для автоматического преобразования табуляции в пробелы при сохранении файла.Я также настраиваю базовый текстовый редактор (от которого произошли почти все остальные) для вставки пробелов вместо табуляции.Это звучит избыточно, но это гарантирует, что я не вставлю никаких вкладок, и любой файл, который я редактирую и в котором уже есть вкладки, будет преобразован, как только я его сохраню.
Табам не место в исходном коде.Если кто-то другой просматривает файл с другим значением табуляции, он все равно потеряет большую часть выравнивания/форматирования.
(Конечно, если у вас есть файлы Makefile, которые вы редактируете напрямую, вам необходимо убедиться, что их вкладки сохраняются.Но в моих проектах, если make вообще используется, Makefile получен из другого источника, например Makefile.PL в Perl.)
Немного излишество, и его можно попробовать только с некоторыми продуктами репозитория, которые могут с этим справиться, но скрипт-перехватчик для вызова отступа или стиль мог бы сделать свое дело.Он будет форматировать код каждого файла одинаково для каждого файла, в зависимости от того, как вы пишете скрипт-перехватчик, и, конечно, его необходимо будет предварительно зафиксировать.
Вы можете потерять выравнивание/форматирование, используя табуляцию вместо пробелов тогда и только тогда, когда табуляция не находится в начале строки.Никогда не используйте табуляцию внутри строк, всегда используйте табуляцию в начале строки.Это позволяет вам использовать редактор для настройки желаемого уровня отступа, не влияя на просмотр файла вашими коллегами.Испытание:Найдите пример, когда табуляция в начале строки теряет выравнивание.
Я использую Kedit именно для этого.Он также конвертирует текстовые файлы из Macintosh, UNIX и MS-Dos.Поскольку это более старый редактор, я использую один из его сценариев для обработки файлов Юникода.Возможно, вам также захочется взглянуть на некоторые другие умные редакторы.
Я использую Eclipse для разработчика Java EE 4.6.0 Neon.я использую http://marketplace.eclipse.org/content/anyedit-tools