google-java-format
— это программа, которая переформатирует исходный код Java в соответствии со стилем Google Java.
Загрузите форматтер и запустите его с помощью:
java -jar /path/to/google-java-format-${GJF_VERSION?}-all-deps.jar <options> [files...]
Средство форматирования может работать с целыми файлами, с ограниченными строками ( --lines
), с определенными смещениями ( --offset
), переходя на стандартный вывод (по умолчанию) или изменяясь на месте ( --replace
).
Чтобы переформатировать измененные строки в определенном патче, используйте google-java-format-diff.py
.
Примечание. Алгоритм форматирования форматирования не подлежит настройке. Это сознательное дизайнерское решение, направленное на унификацию форматирования нашего кода в одном формате.
Плагин IntelliJ в формате Google-Java доступен в репозитории плагинов. Чтобы установить его, перейдите в настройки вашей IDE и выберите категорию Plugins
. Перейдите на вкладку Marketplace
, найдите плагин google-java-format
и нажмите кнопку Install
.
По умолчанию плагин будет отключен. Чтобы включить, откройте настройки проекта, затем нажмите «Настройки формата google-java» и установите флажок «Включить формат google-java».
Чтобы включить его по умолчанию в новых проектах, откройте настройки по умолчанию для новых проектов и настройте их в разделе «Другие настройки/Настройки формата Google-Java».
Если этот параметр включен, он заменит обычные действия Reformat Code
и Optimize Imports
.
Плагин google-java-format использует некоторые внутренние классы, которые недоступны без дополнительной настройки. Чтобы использовать плагин, вам необходимо добавить некоторые параметры в среду выполнения Java вашей IDE. Для этого перейдите в Help→Edit Custom VM Options...
и вставьте следующие строки:
--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
Как только вы это сделаете, перезапустите IDE.
Последнюю версию плагина Eclipse в google-java-format
можно загрузить со страницы релизов. Поместите его в папку всплывающих окон Eclipse, чтобы активировать плагин.
Плагин добавляет реализацию форматирования google-java-format
, которую можно настроить в Window > Preferences > Java > Code Style > Formatter > Formatter Implementation
.
Средство форматирования можно использовать в программном обеспечении, которое генерирует Java для вывода более разборчивого кода Java. Просто включите библиотеку в свой maven/gradle/etc. конфигурация.
google-java-format
использует внутренние API Javac для анализа исходного кода Java. Следующие флаги JVM необходимы при работе на JDK 16 и новее в соответствии с JEP 396: Строгая инкапсуляция внутренних компонентов JDK по умолчанию:
--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 '
}
Затем вы можете использовать форматтер с помощью методов formatSource
. Например
String formattedSource = new Formatter (). formatSource ( sourceString );
или
CharSource source = ...
CharSink output = ...
new Formatter (). formatSource ( source , output );
Отправной точкой должны быть методы экземпляра com.google.googlejavaformat.java.Formatter
.
mvn install
Подробности смотрите в руководстве для участников.
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.