google-java-format
é um programa que reformata o código-fonte Java para estar em conformidade com o estilo Google Java.
Baixe o formatador e execute-o com:
java -jar /path/to/google-java-format-${GJF_VERSION?}-all-deps.jar <options> [files...]
O formatador pode atuar em arquivos inteiros, em linhas limitadas ( --lines
), em deslocamentos específicos ( --offset
), passando para saída padrão (default) ou alterado no local ( --replace
).
Para reformatar linhas alteradas em um patch específico, use google-java-format-diff.py
.
Nota: Não há configuração quanto ao algoritmo de formatação do formatador. Esta é uma decisão de design deliberada para unificar a formatação do nosso código em um único formato.
Um plug-in IntelliJ no formato google-java está disponível no repositório de plug-ins. Para instalá-lo, acesse as configurações do seu IDE e selecione a categoria Plugins
. Clique na guia Marketplace
, procure o plug-in google-java-format
e clique no botão Install
.
O plugin estará desabilitado por padrão. Para ativar, abra as configurações do projeto, clique em "Configurações do formato google-java" e marque a caixa de seleção "Ativar formato google-java".
Para habilitá-lo por padrão em novos projetos, abra as configurações padrão para novos projetos e configure-as em "Outras configurações/configurações do formato google-java".
Quando ativado, ele substituirá as ações normais Reformat Code
e Optimize Imports
.
O plugin google-java-format usa algumas classes internas que não estão disponíveis sem configuração extra. Para usar o plugin, você precisa adicionar algumas opções ao tempo de execução Java do seu IDE. Para fazer isso, vá em Help→Edit Custom VM Options...
e cole estas linhas:
--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
Depois de fazer isso, reinicie o IDE.
A versão mais recente do plug-in Eclipse google-java-format
pode ser baixada na página de lançamentos. Solte-o na pasta suspensa do Eclipse para ativar o plugin.
O plug-in adiciona uma implementação de formatador google-java-format
que pode ser configurada em Window > Preferences > Java > Code Style > Formatter > Formatter Implementation
.
O formatador pode ser usado em software que gera java para gerar código java mais legível. Basta incluir a biblioteca em seu maven/gradle/etc. configuração.
google-java-format
usa APIs javac internas para analisar a fonte Java. Os seguintes sinalizadores de JVM são necessários ao executar no JDK 16 e mais recente, devido ao JEP 396: Encapsular fortemente os componentes internos do JDK por padrão:
--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
< dependency >
< groupId >com.google.googlejavaformat</ groupId >
< artifactId >google-java-format</ artifactId >
< version >${google-java-format.version}</ version >
</ dependency >
dependencies {
implementation ' com.google.googlejavaformat:google-java-format:$googleJavaFormatVersion '
}
Você pode então usar o formatador por meio dos métodos formatSource
. Por exemplo
String formattedSource = new Formatter (). formatSource ( sourceString );
ou
CharSource source = ...
CharSink output = ...
new Formatter (). formatSource ( source , output );
Seu ponto de partida deve ser os métodos de instância de com.google.googlejavaformat.java.Formatter
.
mvn install
Consulte o guia do contribuidor para obter detalhes.
Copyright 2015 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations under
the License.