Перейти к содержимому

Форматирование

Форматируйте Java и Kotlin командой elide format, которая запускает встроенные google-java-format (или диалект jfmt от Netflix) и ktfmt, либо запускайте по отдельности elide javaformat или elide ktfmt.

На этой странице

В 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
0:12 / 0:12

Файлы и каталоги указываются после -- и перезаписываются на месте. Для каждого файла выводится статус: без изменений, перезаписан, будет перезаписан или не удалось разобрать. 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.txt

elide 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 не выполняются.

Была ли эта страница полезной?