grin/doc/style.md
2018-03-06 00:53:08 +00:00

1.4 KiB

Grin Style Guide

Grin uses rustfmt to maintain consistent formatting.

Install rustfmt (nightly)

Note: we assume Rust has been installed via Rustup. See build docs for more info.

rustup component add rustfmt-preview
rustup update

Install git pre-commit hook

There is a basic git pre-commit hook in the repo.

The pre-commit hook will not prevent commits if style issues are present but it will indicate any files that need formatting.

To enable this, create a symlink in .git/hooks (note the relative path) -

cd .git/hooks
ln -s -f ../../.hooks/pre-commit

Running rustfmt

To run rustfmt against a single file, this new command works with latest rust and after having done rustup component add rustfmt-preview and by setting --write-mode it doesn't overwrite files.

First maybe try a dry-run to see what changes would be made: rustfmt --write-mode diff -- client.rs

Then if you don't want to do any other cleanups manually, make rustfmt make the changes

rustfmt -- client.rs

and add that as a separate commit at the end of your Pull Request.

The old method would typically change formatting in nearly every file in the grin repo. If you feel adventurous, try this:

cargo +nightly fmt -- ./core/src/lib.rs

(and please take care, since the ending -- file/names.rs actually doesn't have any effect)