В Elide встроены google-java-format 1.37.0, Netflix jfmt 0.9.0 и ktfmt 0.65. elide format запускает форматтеры Java
и Kotlin; elide javaformat и elide ktfmt запускают по одному.
elide format -- src
elide javaformat -- Hello.java src/main/java
elide ktfmt -- Hello.kt src/main/kotlinФайлы и каталоги указываются после -- и перезаписываются на месте. Для каждого файла выводится статус: без
изменений, перезаписан, будет перезаписан или не удалось разобрать. javaformat также принимает -i:
elide javaformat -- -i Hello.javaПроверка форматирования
-n или --dry-run после -- ничего не записывает и завершается с кодом 1, если какой-либо файл изменился бы.
--set-exit-if-changed принимается, а --check не поддерживается.
elide format -- -n src
elide javaformat -- -n src/main/java
elide ktfmt -- -n src/main/kotlinВ режиме проверки два параметра Elide (до --) показывают, что изменится:
elide format --list-files -- -n src
elide format --list-diffs -- -n src
elide format --list-diffs=5 -- -n src| Параметр | Вывод |
|---|---|
--list-files | Пути, которые изменились бы, по одному на строку в stdout. |
--list-diffs=N | Унифицированные diff, если не прошли проверку не более N файлов, иначе пути. Пишите =N, а не отдельное значение. |
Оба параметра работают и с javaformat, и с ktfmt.
Флаги форматтера
Всё после -- передаётся форматтеру, включая файлы аргументов и переключатели стиля (--google-style,
--kotlinlang-style, --aosp):
elide ktfmt -- --google-style @kotlin-sources.txtelide javaformat --help и elide ktfmt --help показывают параметры Elide и способ вывести справку форматтера.
Диалект jfmt
--jfmt форматирует Java с помощью jfmt вместо google-java-format: блоки с отступом
4 пробела, продолжения строк с отступом 8 пробелов, без ограничения ширины, фигурные скобки вокруг тела каждой
инструкции и статические импорты после обычных.
elide javaformat -- --jfmt src/main/java
elide format -- --jfmt -n srcУ jfmt фиксированный стиль, поэтому --jfmt нельзя сочетать с --aosp, --fix-imports-only, флагами --skip-*,
а также с --lines, --offset и --length. Собственные раскрытие импортов с подстановочным знаком и сокращение
полных имён в jfmt не выполняются.