The write mode can be set by passing the `--write-mode` flag on
the command line. For example `rustfmt --write-mode=display src/filename.rs`
-You can run `rustfmt --help` for more information.
-
`cargo fmt` uses `--write-mode=replace` by default.
+If `rustfmt` successfully reformatted the code it will exit with `0` exit
+status. Exit status `1` signals some unexpected error, like an unknown option or
+a failure to read a file. Exit status `2` is returned if there are syntax errors
+in the input files. `rustfmt` can't format syntatically invalid code. Finally,
+exit status `3` is returned if there are some issues which can't be resolved
+automatically. For example, if you have a very long comment line `rustfmt`
+doesn't split it. Instead it prints a warning and exits with `3`.
+
+You can run `rustfmt --help` for more information.
+
## Running Rustfmt from your editor
Rustfmt is designed to be very configurable. You can create a TOML file called
rustfmt.toml, place it in the project directory and it will apply the options
-in that file. See `cargo run -- --config-help` for the options which are available,
+in that file. See `rustfmt --config-help` for the options which are available,
or if you prefer to see source code, [src/config.rs](src/config.rs).
By default, Rustfmt uses a style which (mostly) conforms to the
* For things you do not want rustfmt to mangle, use one of
```rust
- #[rustfmt_skip]
- #[cfg_attr(rustfmt, rustfmt_skip)]
+ #[rustfmt_skip] // requires nightly and #![feature(custom_attribute)] in crate root
+ #[cfg_attr(rustfmt, rustfmt_skip)] // works in stable
```
* When you run rustfmt, place a file named rustfmt.toml in target file
directory or its parents to override the default settings of rustfmt.
* After successful compilation, a `rustfmt` executable can be found in the
target directory.
+
+
+## License
+
+Rustfmt is distributed under the terms of both the MIT license and the
+Apache License (Version 2.0).
+
+See [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT) for details.