Spotless pode formatar <antlr | c | c# | c++ | css | fluxo | gráficoql | bacana | HTML | java | javascript | json | jsx | kotlin | menos | cabeçalhos de licença | redução | objetivo-c | protobuf | píton | escala | scs | concha | SQL | datilografado | ver | yaml | qualquer coisa> usando <gradle | especialista | sBT | qualquer coisa>.
Você provavelmente deseja um dos links abaixo:
user@machine repo % ./gradlew build:spotlessJavaCheck FAILED Os seguintes arquivos apresentavam violações de formato: srcmainjavacomdiffpluggradlespotlessFormatExtension.java -tt····if·(targets.length·==·0)·{ +ttif·(targets.length· ==·0)·{ Execute './gradlew spotlessApply' para corrigir isso violações.user@machine repo % ./gradlew spotlessApply:spotlessApplyBUILD SUCCESSFULuser@machine repo % ./gradlew buildBUILD SUCCESSFUL
user@machine repo % mvn spotless:check[ERROR] > Os seguintes arquivos tiveram violações de formato:[ERROR] srcmainjavacomdiffpluggradlespotlessFormatExtension.java[ERROR] -tt····if·(targets.length·==·0)·{[ ERRO] +ttif·(targets.length·==·0)·{[ERRO] Execute 'mvn spotless:apply' para corrigir essas violações.user@machine repo % mvn spotless:apply[INFO] BUILD SUCCESSuser@machine repo % mvn spotless:check[INFO] BUILD SUCCESS
Idealmente, um formatador de código pode fazer mais do que apenas encontrar erros de formatação – ele também deve corrigi-los. Esse formatador é apenas Function<String, String>
, que retorna uma versão formatada de sua entrada potencialmente não formatada.
É fácil construir tal função, mas existem algumas pegadinhas e muito trabalho de integração (novas linhas, codificações de caracteres, idempotência, catraca do git e integração do sistema de construção). Spotless aborda isso para você , para que você possa se concentrar apenas em um simples Function<String, String>
que pode compor com qualquer um dos outros formatadores e construir ferramentas no arsenal do Spotless .
Recurso/Etapa do Formatador | gradle | especialista | sBT | (Sua ferramenta de construção aqui) |
---|---|---|---|---|
Proteção automática de idempotência | ? | ? | ? | ⬜ |
Proteção de codificação mal configurada | ? | ? | ? | ⬜ |
Alternar com spotless:off e spotless:on | ? | ? | ⬜ | ⬜ |
Catraca de origin/main ou outra referência git | ? | ? | ⬜ | ⬜ |
Defina finais de linha usando git | ? | ? | ? | ⬜ |
Formatação incremental rápida e verificação atualizada | ? | ? | ⬜ | ⬜ |
Formatação rápida em novos checkouts usando 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 | ? | ? | ⬜ | ⬜ |
(Sua etapa do formatador aqui) | ⬜ | ⬜ | ⬜ | ⬜ |
Muitos projetos ficam mais difíceis de trabalhar à medida que crescem. Spotless é mais fácil de trabalhar do que nunca, e uma das razões é que não exigimos que os colaboradores "preencham a matriz". Se você quiser adicionar suporte ao Bazel, aceitaremos o PR mesmo que ele suporte apenas o formatador que você usa. E se você quiser adicionar suporte ao FooFormatter, aceitaremos o PR com prazer, mesmo que ele suporte apenas o sistema de compilação que você usa.
Depois que alguém preencher um quadrado da matriz do formatador/sistema de construção, será fácil para as partes interessadas preencherem quaisquer quadrados vazios, pois agora você terá um exemplo prático para cada peça necessária.
Obrigado a Konstantin Lutovich por implementar e manter o plugin Maven, bem como corrigir o suporte de cache de construção remota para Gradle.
Obrigado a Frank Vennemeyer pelo suporte Groovy via greclipse, suporte C++ via CDT, suporte XML via WTP e um enorme trabalho com outros formatadores baseados em Eclipse.
Obrigado a Jonathan Bluett-Duncan por
implementando verificação atualizada #31
invadindo bibliotecas impecavelmente #56
muitas outras coisas, mas especialmente o suporte diff no spotlessCheck
melhorias constantes em uma variedade de tópicos com revisões de código de alta qualidade
Obrigado a Daz DeBoer pela reformulação do nosso plugin Gradle para suportar buildcache, InputChanges e configuração lenta.
Obrigado a Richard Willis por criar a extensão VS Code para Spotless Gradle.
Obrigado a Ryan Gurney por criar o plugin IntelliJ para Spotless Gradle.
Obrigado a Markus Heberling por adicionar formatadores nativos genéricos, formatadores jsr-223 e classificação maven pom.
Obrigado a Matthias Balke por adicionar suporte ao Antlr.
Agradecimentos a Matthias Andreas Benkard por adicionar suporte para google-java-format 1.8+ (#563)
Obrigado a Thomas Broyer por adicionar suporte para a opção skip-reflowing-long-strings do formato google-java.
Obrigado a Ranadeep Polavarapu por adicionar suporte para ktfmt (#569)
Obrigado a Simon Gamma por adicionar suporte para formatadores baseados em npm, incluindo duas vezes prettier
e tsfmt
.
Obrigado a Hakanai por adicionar o último suporte de curingas ao classificador de importação.
Obrigado a Kevin Brooks por atualizar todos os formatadores baseados em Eclipse para 4.13 e corrigir o Groovy para multiprojetos.
Agradecimentos a Dylan Baroody por corrigir o suporte de formatação SQL para parâmetros de lista de ligação JDBI.
Obrigado ao figroc por adicionar suporte mavenCoorden personalizado ao formato google-java.
Obrigado a Thomas Glaeser por encontrar e corrigir um bug que afeta as permissões de arquivos.
Obrigado a Joan Goyeau por corrigir a integração do scalafmt.
Obrigado a Nick Sutcliffe por corrigir o scalafmt pós-2.0.
Obrigado a Baptiste Mesta por
portando o formatador DBeaver para Spotless, e obrigado ao DBeaver e seus autores por seu excelente formatador SQL.
tornando os cabeçalhos de licença conscientes da data #179
Obrigado a vmdominguez e Luis Fors por adicionarem a capacidade de limitar a formatação a arquivos específicos no Gradle (#322) e Maven (#392), respectivamente.
Obrigado ao bender316 por corrigir o carregamento de classe no Java 9 (#426).
Obrigado a Stefan Oehme pela muita ajuda na mecânica interna do Gradle.
Obrigado ao eyalkaspi por adicionar intervalos de datas configuráveis aos cabeçalhos de licença com reconhecimento de data.
Obrigado a Andrew Parmet por adicionar suporte ktfmt para kotlin gradle.
Obrigado a Oliver Horn por adicionar suporte AOSP para integração do formato google-java do Spotless.
Formatação por Eclipse
Agradecimentos especiais a Mateusz Matela pelas enormes melhorias no formatador de código Eclipse!
Obrigado a Zac Sweers por corrigir o altamente solicitado suporte ao ktlint 0.34+ (#469), múltiplas atualizações de build e corrigir um aviso de descontinuação do Gradle (#434 e outros).
Obrigado a Stephen Panaro por adicionar suporte para ktlint FilenameRule (#974).
Agradecimentos a Nelson Osacky pelas melhorias no documento do Android, aumento de versões e melhoria de compilação.
Obrigado a Stanley Shyiko por sua ajuda na integração do ktlint.
Obrigado a Jonathan Leitschuh por adicionar suporte ktlint para arquivos Gradle Kotlin DSL.
Originalmente bifurcado do gradle-format-plugin por Youri Bonnaffé.
Obrigado a Ismaël Mejía por aumentar as dependências do eclipse-jdt para 4.11. RP #60.
Agradecimentos a Gábor Bernát pelas melhorias no registro e no suporte a vários projetos.
Obrigado a Oliver Szymanski por portar tsfmt e mais bonito para maven.
Agradecimentos a Andrew Oberstar pelas melhorias na formatação de fontes Java em conjuntos de fontes não Java. RP #60.
Obrigado a Sameer Balasubrahmanyam por adicionar suporte para marcadores de ano no estilo IntelliJ.
Obrigado a Jamie Tanna por adicionar um formatador JSON simples.
Obrigado a Adib Saikali e Paul Merlin por rastrear a causa complicada do #506.
Importe a ordem do EclipseCodeFormatter.
Construído por gradle.
Testado por junit.
Mantido por DiffPlug.