Spotless может форматировать <antlr | с | С# | С++ | CSS | поток | графкл | классный | HTML | Ява | javascript | json | jsx | котлин | меньше | лицензионные заголовки | уценка | цель-с | протобуф | питон | скала | сссс | оболочка | sql | типскрипт | вю | ямл | что угодно> с помощью <gradle | знаток | сбт | что угодно>.
Вероятно, вам понадобится одна из ссылок ниже:
user@machine repo % ./gradlew build:spotlessJavaCheck FAILED Следующие файлы имели нарушения формата: srcmainjavacomdiffpluggradlespotlessFormatExtension.java -tt····if·(targets.length·==·0)·{ +ttif·(targets.length· ==·0)·{ Запустите './gradlew SpotlessApply', чтобы исправить это. нарушения.user@machine repo % ./gradlew SpotlessApply:spotlessApplyBUILD SUCCESSFULuser@machine repo % ./gradlew buildBUILD SUCCESSFUL
user@machine repo % mvn Spotless:check[ERROR] > Следующие файлы имели нарушения формата:[ERROR] srcmainjavacomdiffpluggradlespotlessFormatExtension.java[ERROR] -tt····if·(targets.length·==·0)·{[ ОШИБКА] +ttif·(targets.length·==·0)·{[ОШИБКА] Запустите 'mvn Spotless:apply', чтобы исправить эти нарушения.user@machine repo % mvn Spotless:apply[INFO] BUILD SUCCESSuser@machine repo % mvn Spotless:check[INFO] BUILD SUCCESS
В идеале средство форматирования кода может не только находить ошибки форматирования, но и исправлять их. Такой форматировщик — это просто Function<String, String>
, который возвращает отформатированную версию потенциально неформатированного ввода.
Построить такую функцию легко, но есть некоторые ошибки и много работы по интеграции (переводы строк, кодировки символов, идемпотентность, храповик git и интеграция системы сборки). Spotless решает эти проблемы за вас , поэтому вы можете сосредоточиться на простой Function<String, String>
, которую можно компоновать с любыми другими форматтерами и инструментами сборки из арсенала Spotless .
Функция/FormatterStep | Градл | знаток | СБТ | (Ваш инструмент сборки здесь) |
---|---|---|---|---|
Автоматическая защита идемпотентности | ? | ? | ? | ⬜ |
Неправильно настроена защита кодирования | ? | ? | ? | ⬜ |
Включите spotless:off и spotless:on | ? | ? | ⬜ | ⬜ |
Ratchet из origin/main или другой ссылки git | ? | ? | ⬜ | ⬜ |
Определите окончания строк с помощью git | ? | ? | ? | ⬜ |
Быстрое инкрементальное форматирование и проверка актуальности | ? | ? | ⬜ | ⬜ |
Быстрое форматирование при новой проверке с использованием buildcache | ? | ⬜ | ⬜ | ⬜ |
generic.EndWithNewlineStep | ? | ? | ⬜ | ⬜ |
generic.IndentStep | ? | ? | ⬜ | ⬜ |
generic.Jsr223Step | ⬜ | ? | ⬜ | ⬜ |
generic.LicenseHeaderStep | ? | ? | ? | ⬜ |
generic.NativeCmdStep | ? | ? | ⬜ | ⬜ |
generic.ReplaceRegexStep | ? | ? | ⬜ | ⬜ |
generic.ReplaceStep | ? | ? | ⬜ | ⬜ |
generic.TrimTrailingWhitespaceStep | ? | ? | ⬜ | ⬜ |
antlr4.Antlr4FormatterStep | ? | ? | ⬜ | ⬜ |
biome.BiomeStep | ? | ? | ⬜ | ⬜ |
cpp.ClangFormatStep | ? | ⬜ | ⬜ | ⬜ |
cpp.EclipseFormatterStep | ? | ? | ? | ⬜ |
go.GofmtFormatStep | ? | ⬜ | ⬜ | ⬜ |
gherkin.GherkinUtilsStep | ? | ? | ⬜ | ⬜ |
groovy.GrEclipseFormatterStep | ? | ? | ? | ⬜ |
java.GoogleJavaFormatStep | ? | ? | ? | ⬜ |
java.ImportOrderStep | ? | ? | ? | ⬜ |
java.PalantirJavaFormatStep | ? | ? | ⬜ | ⬜ |
java.RemoveUnusedImportsStep | ? | ? | ? | ⬜ |
java.EclipseJdtFormatterStep | ? | ? | ? | ⬜ |
java.FormatAnnotationsStep | ? | ? | ⬜ | ⬜ |
java.CleanthatJavaStep | ? | ? | ⬜ | ⬜ |
json.gson.GsonStep | ? | ? | ⬜ | ⬜ |
json.JacksonJsonStep | ? | ? | ⬜ | ⬜ |
json.JsonSimpleStep | ? | ? | ⬜ | ⬜ |
json.JsonPatchStep | ? | ? | ⬜ | ⬜ |
kotlin.KtLintStep | ? | ? | ? | ⬜ |
kotlin.KtfmtStep | ? | ? | ⬜ | ⬜ |
kotlin.DiktatStep | ? | ? | ⬜ | ⬜ |
markdown.FreshMarkStep | ? | ⬜ | ⬜ | ⬜ |
markdown.FlexmarkStep | ? | ? | ⬜ | ⬜ |
npm.EslintFormatterStep | ? | ? | ⬜ | ⬜ |
npm.PrettierFormatterStep | ? | ? | ⬜ | ⬜ |
npm.TsFmtFormatterStep | ? | ? | ⬜ | ⬜ |
pom.SortPomStep | ? | ? | ⬜ | ⬜ |
protobuf.BufStep | ? | ⬜ | ⬜ | ⬜ |
python.BlackStep | ? | ⬜ | ⬜ | ⬜ |
rdf.RdfFormatterStep | ⬜ | ? | ⬜ | ⬜ |
scala.ScalaFmtStep | ? | ? | ? | ⬜ |
shell.ShfmtStep | ? | ? | ⬜ | ⬜ |
sql.DBeaverSQLFormatterStep | ? | ? | ? | ⬜ |
wtp.EclipseWtpFormatterStep | ? | ? | ⬜ | ⬜ |
yaml.JacksonYamlStep | ? | ? | ⬜ | ⬜ |
(Ваш шаг форматирования здесь) | ⬜ | ⬜ | ⬜ | ⬜ |
По мере того, как они становятся больше, над многими проектами становится труднее работать. Над Spotless работать легче, чем когда-либо, и одна из причин этого в том, что мы не требуем от участников «заполнять матрицу». Если вы хотите добавить поддержку Bazel, мы с радостью примем PR, даже если он поддерживает только один форматтер, который вы используете. А если вы хотите добавить поддержку FooFormatter, мы с радостью примем PR, даже если он поддерживает только одну систему сборки, которую вы используете.
После того, как кто-то заполнил один квадрат матрицы системы форматирования/сборки, заинтересованным сторонам будет легко заполнить любые пустые квадраты, поскольку теперь у вас будет рабочий пример для каждой необходимой части.
Спасибо Константину Лутовичу за внедрение и поддержку плагина Maven, а также исправление поддержки кэша удаленной сборки для Gradle.
Спасибо Фрэнку Веннемейеру за поддержку Groovy через greclipse, поддержку C++ через CDT, поддержку XML через WTP и огромную работу с другими форматами на основе eclipse.
Спасибо Джонатану Блютту-Дункану за
реализация актуальной проверки № 31
безупречное проникновение в библиотеки №56
много других вещей, но особенно поддержка различий в spotlessCheck
постоянные улучшения по различным темам с помощью высококачественных проверок кода
Спасибо Daz DeBoer за переработку нашего плагина Gradle для поддержки buildcache, InputChanges и ленивой конфигурации.
Спасибо Ричарду Уиллису за создание расширения VS Code для Spotless Gradle.
Спасибо Райану Герни за создание плагина IntelliJ для Spotless Gradle.
Спасибо Маркусу Хеберлингу за добавление универсальных средств форматирования, средств форматирования jsr-223 и сортировки maven pom.
Спасибо Маттиасу Балке за добавление поддержки Antlr.
Спасибо Маттиасу Андреасу Бенкарду за добавление поддержки формата google-java 1.8+ (#563).
Спасибо Томасу Бройеру за добавление поддержки опции пропуска длинных строк в формате google-java.
Спасибо Ранадипу Полаварапу за добавление поддержки ktfmt (#569).
Спасибо Саймону Гамме за добавление поддержки средств форматирования на основе npm, дважды включая prettier
и tsfmt
.
Спасибо Hakanai за добавление последней поддержки подстановочных знаков в сортировщик импорта.
Спасибо Кевину Бруксу за обновление всех средств форматирования на основе eclipse до версии 4.13 и исправление Groovy для мультипроектов.
Спасибо Дилану Баруди за исправление поддержки форматирования sql для параметров списка связывания JDBI.
Спасибо figroc за добавление пользовательской поддержки mavenCoordinate в формат google-java.
Спасибо Томасу Глезеру за обнаружение и исправление ошибки, связанной с уничтожением прав доступа к файлам.
Спасибо Джоан Гойо за исправление интеграции со scalafmt.
Спасибо Нику Сатклиффу за исправление scalafmt после версии 2.0.
Спасибо Батисту Месте за
портирование форматтера DBeaver на Spotless, а также спасибо DBeaver и его авторам за отличный форматтер SQL.
создание заголовков лицензий с учетом даты #179
Спасибо vmdominguez и Luis Fors за добавление возможности ограничивать форматирование определенных файлов в Gradle (#322) и Maven (#392) соответственно.
Спасибо Bender316 за исправление загрузки классов в Java 9 (#426).
Спасибо Стефану Эме за огромную помощь по внутренней механике Gradle.
Спасибо eyalkaspi за добавление настраиваемых диапазонов дат в заголовки лицензий с учетом даты.
Спасибо Эндрю Пармету за добавление поддержки ktfmt для Kotlin gradle.
Спасибо Оливеру Хорну за добавление поддержки AOSP для интеграции формата Google и Java в Spotless.
Форматирование с помощью Eclipse
Особая благодарность Матеушу Мателе за огромные улучшения в форматировщике кода Eclipse!
Спасибо Заку Свирсу за исправление столь востребованной поддержки ktlint 0.34+ (#469), многочисленные обновления сборок и исправление предупреждения об устаревании Gradle (#434 и другие).
Спасибо Стивену Панаро за добавление поддержки ktlint FilenameRule (#974).
Спасибо Нельсону Осаки за улучшения документации Android, обновление версий и улучшение сборки.
Спасибо Стэнли Шейко за помощь в интеграции ktlint.
Спасибо Джонатану Лейчуху за добавление поддержки ktlint для файлов Gradle Kotlin DSL.
Первоначально создан Юрием Боннаффе на основе плагина gradle-format-plugin.
Спасибо Исмаэлю Мехиа за повышение версии eclipse-jdt до 4.11. ПР №60.
Спасибо Габору Бернату за улучшения ведения журналов и поддержку нескольких проектов.
Спасибо Оливеру Шимански за портирование tsfmt и prettier на maven.
Спасибо Эндрю Оберстару за улучшения форматирования исходного кода Java в наборах исходного кода, отличных от Java. ПР №60.
Спасибо Самиру Баласубраманьяму за добавление поддержки заполнителей года в стиле IntelliJ.
Спасибо Джейми Танне за добавление простого форматтера JSON.
Спасибо Адибу Сайкали и Полу Мерлину за выяснение сложной причины #506.
Импортируйте порядок из EclipseCodeFormatter.
Построен Gradle.
Проверено Юнитом.
Поддерживается DiffPlug.