Fix #2728.
This commit is contained in:
parent
0ec1533054
commit
036244cdce
12
src/lib.rs
12
src/lib.rs
@ -718,10 +718,18 @@ fn format_code_block(code_snippet: &str, config: &Config) -> Option<String> {
|
||||
let mut result = String::with_capacity(snippet.len());
|
||||
let mut is_first = true;
|
||||
|
||||
// While formatting the code, ignore the config's newline style setting and always use "\n"
|
||||
// instead of "\r\n" for the newline characters. This is okay because the output here is
|
||||
// not directly outputted by rustfmt command, but used by the comment formatter's input.
|
||||
// We have output-file-wide "\n" ==> "\r\n" conversion proccess after here if it's necessary.
|
||||
let mut config_with_unix_newline = config.clone();
|
||||
config_with_unix_newline
|
||||
.set()
|
||||
.newline_style(NewlineStyle::Unix);
|
||||
let formatted = format_snippet(&snippet, &config_with_unix_newline)?;
|
||||
|
||||
// Trim "fn main() {" on the first line and "}" on the last line,
|
||||
// then unindent the whole code block.
|
||||
let formatted = format_snippet(&snippet, config)?;
|
||||
// 2 = "}\n"
|
||||
let block_len = formatted.rfind('}').unwrap_or(formatted.len());
|
||||
let mut is_indented = true;
|
||||
for (kind, ref line) in LineClasses::new(&formatted[FN_MAIN_PREFIX.len()..block_len]) {
|
||||
|
8
tests/source/issue-2728.rs
Normal file
8
tests/source/issue-2728.rs
Normal file
@ -0,0 +1,8 @@
|
||||
// rustfmt-wrap_comments: true
|
||||
// rustfmt-newline_style: Windows
|
||||
|
||||
//! ```rust
|
||||
//! extern crate uom;
|
||||
//! ```
|
||||
|
||||
fn main() {}
|
8
tests/target/issue-2728.rs
Normal file
8
tests/target/issue-2728.rs
Normal file
@ -0,0 +1,8 @@
|
||||
// rustfmt-wrap_comments: true
|
||||
// rustfmt-newline_style: Windows
|
||||
|
||||
//! ```rust
|
||||
//! extern crate uom;
|
||||
//! ```
|
||||
|
||||
fn main() {}
|
Loading…
x
Reference in New Issue
Block a user