google-java-format
ist ein Programm, das Java-Quellcode neu formatiert, um dem Google Java-Stil zu entsprechen.
Laden Sie den Formatierer herunter und führen Sie ihn aus mit:
java -jar /path/to/google-java-format-${GJF_VERSION?}-all-deps.jar <options> [files...]
Der Formatierer kann auf ganze Dateien, auf begrenzte Zeilen ( --lines
), auf bestimmte Offsets ( --offset
), die Weiterleitung an den Standardausgang (Standard) oder die Änderung vor Ort ( --replace
) einwirken.
Um geänderte Zeilen in einem bestimmten Patch neu zu formatieren, verwenden Sie google-java-format-diff.py
.
Hinweis: Der Formatierungsalgorithmus des Formatierers ist nicht konfigurierbar. Dies ist eine bewusste Designentscheidung, um unsere Codeformatierung in einem einzigen Format zu vereinheitlichen.
Ein IntelliJ-Plugin im Google-Java-Format ist im Plugin-Repository verfügbar. Um es zu installieren, gehen Sie zu den Einstellungen Ihrer IDE und wählen Sie die Kategorie Plugins
aus. Klicken Sie auf die Registerkarte Marketplace
, suchen Sie nach dem google-java-format
Plugin und klicken Sie auf die Schaltfläche Install
.
Das Plugin ist standardmäßig deaktiviert. Öffnen Sie zum Aktivieren die Projekteinstellungen, klicken Sie dann auf „Google-Java-Format-Einstellungen“ und aktivieren Sie das Kontrollkästchen „Google-Java-Format aktivieren“.
Um es in neuen Projekten standardmäßig zu aktivieren, öffnen Sie die Standardeinstellungen für neue Projekte und konfigurieren Sie es unter „Andere Einstellungen/Google-Java-Format-Einstellungen“.
Wenn es aktiviert ist, ersetzt es die normalen Aktionen Reformat Code
und Optimize Imports
.
Das Google-Java-Format-Plugin verwendet einige interne Klassen, die ohne zusätzliche Konfiguration nicht verfügbar sind. Um das Plugin verwenden zu können, müssen Sie der Java-Laufzeitumgebung Ihrer IDE einige Optionen hinzufügen. Gehen Sie dazu zu Help→Edit Custom VM Options...
und fügen Sie die folgenden Zeilen ein:
--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
Sobald Sie das getan haben, starten Sie die IDE neu.
Die neueste Version des Eclipse-Plugins google-java-format
kann von der Release-Seite heruntergeladen werden. Legen Sie es im Eclipse-Drop-Ins-Ordner ab, um das Plugin zu aktivieren.
Das Plugin fügt eine Formatierungsimplementierung google-java-format
hinzu, die unter Window > Preferences > Java > Code Style > Formatter > Formatter Implementation
konfiguriert werden kann.
Der Formatierer kann in Software verwendet werden, die Java generiert, um besser lesbaren Java-Code auszugeben. Fügen Sie einfach die Bibliothek in Ihr Maven/Gradle/etc. ein. Konfiguration.
google-java-format
verwendet interne Javac-APIs zum Parsen von Java-Quellen. Die folgenden JVM-Flags sind bei der Ausführung auf JDK 16 und höher aufgrund von JEP 396 erforderlich: JDK-Interna standardmäßig stark kapseln:
--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 '
}
Anschließend können Sie den Formatierer über die formatSource
-Methoden verwenden. Z.B
String formattedSource = new Formatter (). formatSource ( sourceString );
oder
CharSource source = ...
CharSink output = ...
new Formatter (). formatSource ( source , output );
Ihr Ausgangspunkt sollten die Instanzmethoden von com.google.googlejavaformat.java.Formatter
sein.
mvn install
Weitere Informationen finden Sie im Leitfaden für Mitwirkende.
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.