Fix performance issue by removing support for filling up to a fixed number of lines. This wasn't being used for anything: we either fill to an arbitrary number of lines, or for a single line. The second case can be handled using a level with unified breaks. The old approach took exponential time relative to the depth of nested levels. The included test case now takes about a second to format, down from 11 minutes. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=115887840
Release version: 0.1-alpha Snapshot version: 0.1-SNAPSHOT
google-java-format is a program that reformats Java source code to comply with Google Java Style.
First download the formatter and save it where you wish. Then simply run it via:
java -jar /path/to/google-java-format-0.1-alpha.jar <options> [files...]
The formatter can act on whole files, on limited lines (--lines), on specific ofsets (--offset), passing through to standard-out (default) or altered in-place (--replace).
Note: There is no configurability as to the formatter's algorithm for formatting. This is a deliberate design decision to unify our code formatting on a single format.
The formatter can be used in software which generates java to output more legible java code. Just include the library in your maven/gradle/etc. configuration.
<dependency> <groupId>com.google.googlejavaformat</groupId> <artifactId>google-java-format</artifactId> <version>0.1-alpha</version> </dependency>
dependencies { compile 'com.google.googlejavaformat:google-java-format:0.1-alpha' }
You can then use the formatter quite simply using the various formatSource methods. E.g.
String formattedSource = Formatter.formatSource(sourceString);
or
CharSource source = ... CharSink output = ... Formatter.formatSource(source, output);
Generally speaking, your starting point should be the static methods found in com.google.googlejavaformat.java.Formatter.
To build google-java-format from source, you will need copy IntelliJ's platform JARs from a local IntelliJ install; see install-idea-jars.sh. Alternatively, you can skip building the IntelliJ plugin:
mvn -pl '!idea_plugin' install
Please see the contributors guide for details.
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.