Перейти до вмісту

Форматування

Форматуйте 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Різниці в уніфікованому форматі (unified 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 не виконуються.

Чи була ця сторінка корисною?