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