Commit Graph

137 Commits

Author SHA1 Message Date
Nick Cameron 1f512948a0 Reformat source code using new defaults 2017-06-13 14:41:49 +12:00
topecongiro 6e3394e635 Use with_emitter instead of with_tty_emitter 2017-06-13 09:18:14 +09:00
topecongiro 762639e7fd Reset the error count of parser from the previous file 2017-06-10 14:34:50 +09:00
est31 727963afe4 Update syntex_syntax
Bases on commit to switch to libsyntax by @nrc
2017-06-06 07:31:47 +02:00
topecongiro a9f529cba4 Format source codes 2017-06-04 19:35:29 +09:00
Seiichi Uchida 10c3632078 Format source codes 2017-06-01 12:08:25 +09:00
Nick Cameron 393ba27311 Remove dependency on Itertools 2017-05-25 16:23:07 +12:00
Nick Cameron 80f3b3c9c4 Remove multimap dep 2017-05-25 15:59:06 +12:00
Michael Killough 222bac1397 Provide config.set().item(value) API.
This API isn't fantastic, but it's the best I can come up with without
something like `concat_idents!()`. There are relatively few places where
config is set, to hopefully the ugliness isn't disastrous.

Change previous occurences of `config.item = value` to this new API,
rather than using `config.override_value()`. Undo the changes to
`override_value()`, as it's no longer important to propogate the error
to the caller. Add a test for the new interface.
2017-05-18 11:42:32 +07:00
Michael Killough c0bdbfa531 Switch to accessing config items via method.
Preparation for #865, which proposes adding a flag which outputs which
config options are used during formatting.

This PR should not make any difference to functionality. A lot of this
was search-and-replace.

Some areas worthy of review/discussion:

 - The method for each config item returns a clone of the underlying
   value. We can't simply return an immutable reference, as lots of
   places in the code expect to be able to pass the returned value as
   `bool` (not `&bool). It would be nice if the `bool` items could
   return a copy, but the more complex types a borrowed reference... but
   unfortunately, I couldn't get the macro to do this.
 - A few places (mostly tests and `src/bin/rustfmt.rs`) were overriding
   config items by modifying the fields of the `Config` struct directly.
   They now use the existing `override_value()` method, which has been
   modified to return a `Result` for use by `src/bin/rustfmt.rs`. This
   benefits of this are that the complex `file_lines` and `write_mode`
   strings are now parsed in one place (`Config.override_value`) instead
   of multiple. The disadvantages are that it moves the compile-time
   checks for config names to become run-time checks.
2017-05-16 15:47:09 +07:00
Nick Cameron d1682b3473 Merge pull request #1510 from fintelia/better-filelines
Better file_lines
2017-05-15 09:19:18 +12:00
topecongiro 2776615dc9 Replace 'try!' with '?' 2017-05-08 13:14:23 +09:00
topecongiro 4a28be486e Refactor Shape 2017-05-08 07:24:32 +09:00
topecongiro e923df4146 Add indented and with_max_width 2017-05-08 07:24:12 +09:00
Jonathan Behrens 7c6479358b Respect file_lines within format_lines() function 2017-05-06 15:14:44 -04:00
Nick Cameron 75a13868da Block format control flow discriminant expressions and binops
Fixes #1450

Adds control_style option
2017-05-05 14:37:13 +12:00
est31 78d4ef1992 Drop rustc-serialize, use serde, update toml dependency 2017-05-03 10:23:50 +02:00
topecongiro 9dc643a6ae Remove TODO from 'format_tuple_struct' 2017-05-01 15:57:08 +09:00
topecongiro 883db2f952 Refactor Shape 2017-05-01 15:57:08 +09:00
Evgeny Duzhakov bb7b002b23 format_lines: fix line_len for config.max_width 2017-04-18 14:31:53 +03:00
Mike Boutin a0efdf2de9 Do not count \r as part of line width.
Resolves #1335. Does not attempt to handle a `\r` not followed by a `\n` nor
attempt to handle Unicode intricacies (#6) including zero-width or multi-byte
characters.
2017-04-02 11:09:29 -04:00
Nick Cameron 5305bc8436 test fallout 2017-03-28 11:25:59 +13:00
Nick Cameron 5fb1140688 fallout - source reformatting 2017-03-28 11:14:47 +13:00
Nick Cameron 4bb31a7231 Block indenting for struct lit patterns
Now follows struct_lit_style (and most other struct_lit_ options).

Required a fair bit of refactoring and bug fixes.

Fixes #1311
2017-03-22 09:25:26 +13:00
Nick Cameron 33b83ae7df Formatting fallout
Also fixes a minor bug when we break a line after `if` and used to leave a trailing space
2017-03-07 09:50:41 +13:00
Andy Librian 63114f3cac added unit tests for Indent and Shape (#1353) 2017-03-06 07:50:04 +13:00
Nick Cameron db10a0b9b2 Merge pull request #1325 from C4K3/master
Add error_on_line_overflow option
2017-02-23 14:46:24 +13:00
Nick Cameron 9eb78a3333 Fallout 2017-02-23 13:15:48 +13:00
Nick Cameron b35906dbce WIP 2017-02-21 16:35:05 +13:00
Sebastian Blunt f6ccbd71c3 Add error_on_line_overflow option
Makes it configurable whether to error if unable to get all lines within
the max_width.
2017-02-19 19:56:37 +01:00
Craig M. Brandenburg f2c867d067 New disable_all_formatting config option (#1297)
* New `disable_all_formatting` config option

* Resolve code review comments
2017-02-07 17:11:47 +13:00
Nick Cameron 428339fdc3 Refactor indent and width into Shape struct 2017-01-31 08:35:23 +13:00
Nick Cameron e018712612 process cfg'ed off modules
Fixes #1229
Fixes #1277
2017-01-20 08:20:49 +13:00
Stepan Koltsov 1c22d85db5 Better message for LineOverflow error (#1268)
(with current length and configured limit)
2017-01-09 15:57:11 +13:00
Nick Cameron d3eba76e4d update Serde, etc.
Lots of changes to how closures work
2016-11-21 11:02:18 +13:00
Nick Cameron 4418fab4f2 Update to latest Syntex
+ Cargo update
+ 0.6.2 release
2016-09-16 15:28:02 +12:00
sinkuu a3c63fdef9 Run clippy 2016-08-29 08:57:27 +09:00
Johann Hofmann 8260d277c8 Return failure exit code on found diffs (fix #906)
This changes rustfmt to return exit code 4
when run with write mode diff and differences between
the formatted code and the original code are found.

Useful for CI to make sure your contributors actually ran rustfmt.
2016-06-21 23:01:15 +02:00
Kamal Marhubi c311b30cac Add type to represent collection of lines in files
This commit adds a type to represent lines in files, and adds it to the
`Config` struct. It will be used for restricting formatting to specific
lines.

Refs #434
2016-05-31 01:24:38 +02:00
Kamal Marhubi bd10af127e utils: Move codemap related utilities to a dedicated module
This commit adds a `codemap` module, and moves the `CodemapSpanUtils`
added in #857 to it. This is preparation for adding more `Codemap`
specific utilities.

Refs #434
2016-05-31 00:49:26 +02:00
Kamal Marhubi 7f0d87cc51 Derive Debug for the Input enum 2016-05-31 00:43:48 +02:00
Kamal Marhubi 66cac1f3e9 Handle pub(restricted) (#1013)
* Handle pub(restricted)

This commit properly handles pub(restricted) as introduced in RFC 1422
[0]. The syntax support was added in #971, but they were not correctly
formatted.

[0] https://github.com/rust-lang/rfcs/blob/master/text/1422-pub-restricted.md

Fixes #970

* Drop #[inline] attribute on format_visibility

* Make newly non-failing functions return String

The change to `format_visibiilty` means that `format_header` and
`format_unit_struct` can no longer fail. Their return type is updated to
reflect that.
2016-05-28 00:58:25 +02:00
Nick Cameron ff3ff5aa87 Handle parser errors better 2016-05-18 09:58:51 +12:00
Nick Cameron 9b05461666 Write each file as it is formatted (#991)
The old behaviour stored everything in memory until we were finished. Now we write as soon as we can.

This gives better behaviour when formatting large programs, since there is some progress indication. It also opens the door to optimising memory use by not storing everything in memory unless it is required (which it still might be). That is left as future work though.
2016-05-15 11:41:05 +02:00
Marcus Klaas eae2921e14 Bootstrap it. Hard. 2016-05-12 21:50:43 +02:00
Daniel Campbell 4a2db3ec6c Changed modules & visitor mods to public, set filemap::write_file public 2016-05-06 12:44:18 +12:00
Micah Chalmer 70611bf9ac Always skip children when using Plain write mode
Outputting child module contents in the "Plain" write mode does not make
sense, since there is no way to differentiate code that came from a
child module from that which came from the parent file.
2016-04-28 01:44:45 -04:00
Nick Cameron 9188ec0f7f Bail out on recovered errors. (#965)
Closes #915
Closes #930
Closes #931
2016-04-27 21:08:44 +02:00
Aleksey Kladov 847bad603e Don't print empty lines to stderr (#940) 2016-04-15 16:52:21 +02:00
Aleksey Kladov 77350e49b5 return non-zero exit code if there were errors 2016-04-15 02:51:50 +03:00