blob: b8b05d0763d3eb24f7f3ce80a5217850dfbd1199 [file] [view]
# google-java-format
`google-java-format` is a program that reformats Java source code to comply with
[Google Java Style][].
[Google Java Style]: http://google-styleguide.googlecode.com/svn/trunk/javaguide.html
Using the formatter from the command-line
----------------------------------------
[Download the formatter](https://github.com/google/google-java-format/releases)
and run it with:
```
java -jar /path/to/google-java-format-1.0-all-deps.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`).
To reformat changed lines in a specific patch, use
[`google-java-format-diff.py`](https://github.com/google/google-java-format/blob/master/scripts/google-java-format-diff.py)
***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.*
Using the formatter in code-generators
--------------------------------------
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.
#### Maven
```xml
<dependency>
<groupId>com.google.googlejavaformat</groupId>
<artifactId>google-java-format</artifactId>
<version>1.0</version>
</dependency>
```
#### Gradle
```groovy
dependencies {
compile 'com.google.googlejavaformat:google-java-format:1.0'
}
```
You can then use the formatter through the `formatSource` methods. E.g.
```java
String formattedSource = new Formatter().formatSource(sourceString);
```
or
```java
CharSource source = ...
CharSink output = ...
new Formatter().formatSource(source, output);
```
Your starting point should be the instance methods of
`com.google.googlejavaformat.java.Formatter`.
Building from source
--------------------
mvn install
Contributing
------------
Please see [the contributors guide](CONTRIBUTING.md) for details.
License
-------
```text
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.
```