]> git.lizzy.rs Git - rust.git/blobdiff - README.md
Merge pull request #638 from marcusklaas/visual-struct-last-comment
[rust.git] / README.md
index b79587a244c86745cc49ecdce515770355ade01e..571ceb99f6c6c3b7820a83253958a59909131685 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,37 +1,37 @@
-# rustfmt
+# rustfmt [![Build Status](https://travis-ci.org/rust-lang-nursery/rustfmt.svg)](https://travis-ci.org/rust-lang-nursery/rustfmt)
 
 A tool for formatting Rust code according to style guidelines.
 
-## Gotchas
+If you'd like to help out (and you should, it's a fun project!), see
+[Contributing.md](Contributing.md).
 
-* For things you do not want rustfmt to mangle, use one of
-   ```rust
-   #[rustfmt_skip]
-   #[cfg_attr(rustfmt, rustfmt_skip)]
-    ```
-* 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.
 
 ## Installation
 
-> **Note:** this method currently requires you to be running a nightly install
-> of Rust as `cargo install` has not yet made its way onto the stable channel.
+> **Note:** this method currently requires you to be running cargo 0.6.0 or
+> newer.
 
 ```
-cargo install --git https://github.com/nrc/rustfmt
+cargo install --git https://github.com/rust-lang-nursery/rustfmt
 ```
 
 or if you're using [`multirust`](https://github.com/brson/multirust)
 
 ```
-multirust run nightly cargo install --git https://github.com/nrc/rustfmt
+multirust run nightly cargo install --git https://github.com/rust-lang-nursery/rustfmt
 ```
 
+
+## Running Rustfmt from your editor
+
+* [Vim](http://johannh.me/blog/rustfmt-vim.html)
+* [Emacs](https://github.com/fbergroth/emacs-rustfmt)
+* [Atom](atom.md)
+
+
 ## How to build and test
 
-First make sure you've got Rust **1.3.0** or greater available, then:
+First make sure you've got Rust **1.4.0** or greater available, then:
 
 `cargo build` to build.
 
@@ -50,3 +50,36 @@ the command line.
 
 `cargo run -- filename --write-mode=display` prints the output of rustfmt to the
 screen, for example.
+
+
+## What style does Rustfmt use?
+
+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,
+or if you prefer to see source code, [src/config.rs].
+
+By default, Rustfmt uses a style which (mostly) confirms to the
+[Rust style guidelines](https://github.com/rust-lang/rust/tree/master/src/doc/style).
+There are many details which the style guidelines do not cover, and in these
+cases we try to adhere to a style similar to that used in the
+[Rust repo](https://github.com/rust-lang/rust). Once Rustfmt is more complete, and
+able to re-format large repositories like Rust, we intend to go through the Rust
+RFC process to nail down the default style in detail.
+
+If there are styling choices you don't agree with, we are usually happy to add
+options covering different styles. File an issue, or even better, submit a PR.
+
+
+## Gotchas
+
+* For things you do not want rustfmt to mangle, use one of
+
+    ```rust
+    #[rustfmt_skip]
+    #[cfg_attr(rustfmt, rustfmt_skip)]
+    ```
+* 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.