Format source codes
This commit is contained in:
parent
4a0094f28f
commit
a9f529cba4
@ -143,8 +143,9 @@ pub fn write_file<T>(text: &StringBuffer,
|
||||
if let Ok((ori, fmt)) = source_and_formatted_text(text, filename, config) {
|
||||
let mismatch = make_diff(&ori, &fmt, 3);
|
||||
let has_diff = !mismatch.is_empty();
|
||||
print_diff(mismatch,
|
||||
|line_num| format!("Diff in {} at line {}:", filename, line_num));
|
||||
print_diff(mismatch, |line_num| {
|
||||
format!("Diff in {} at line {}:", filename, line_num)
|
||||
});
|
||||
return Ok(has_diff);
|
||||
}
|
||||
}
|
||||
|
26
src/items.rs
26
src/items.rs
@ -1162,20 +1162,20 @@ pub fn rewrite_type_alias(context: &RewriteContext,
|
||||
let type_indent = indent + line_width;
|
||||
// Try to fit the type on the same line
|
||||
let ty_str = try_opt!(ty.rewrite(context, Shape::legacy(budget, type_indent))
|
||||
.or_else(|| {
|
||||
// The line was too short, try to put the type on the next line
|
||||
.or_else(|| {
|
||||
// The line was too short, try to put the type on the next line
|
||||
|
||||
// Remove the space after '='
|
||||
result.pop();
|
||||
let type_indent = indent.block_indent(context.config);
|
||||
result.push('\n');
|
||||
result.push_str(&type_indent.to_string(context.config));
|
||||
let budget = try_opt!(context
|
||||
.config
|
||||
.max_width()
|
||||
.checked_sub(type_indent.width() + ";".len()));
|
||||
ty.rewrite(context, Shape::legacy(budget, type_indent))
|
||||
}));
|
||||
// Remove the space after '='
|
||||
result.pop();
|
||||
let type_indent = indent.block_indent(context.config);
|
||||
result.push('\n');
|
||||
result.push_str(&type_indent.to_string(context.config));
|
||||
let budget = try_opt!(context
|
||||
.config
|
||||
.max_width()
|
||||
.checked_sub(type_indent.width() + ";".len()));
|
||||
ty.rewrite(context, Shape::legacy(budget, type_indent))
|
||||
}));
|
||||
result.push_str(&ty_str);
|
||||
result.push_str(";");
|
||||
Some(result)
|
||||
|
@ -626,7 +626,7 @@ pub fn format_input<T: Write>(input: Input,
|
||||
return filemap::write_file(file, file_name, out, config);
|
||||
}
|
||||
Ok(false)
|
||||
}
|
||||
},
|
||||
) {
|
||||
Ok((file_map, has_diff)) => {
|
||||
if report.has_warnings() {
|
||||
|
@ -172,12 +172,12 @@ pub fn rewrite_macro(mac: &ast::Mac,
|
||||
MacroStyle::Parens => {
|
||||
// Format macro invocation as function call, forcing no trailing
|
||||
// comma because not all macros support them.
|
||||
rewrite_call(context, ¯o_name, &expr_vec, mac.span, shape).map(|rw| {
|
||||
match position {
|
||||
rewrite_call(context, ¯o_name, &expr_vec, mac.span, shape).map(
|
||||
|rw| match position {
|
||||
MacroPosition::Item => format!("{};", rw),
|
||||
_ => rw,
|
||||
}
|
||||
})
|
||||
},
|
||||
)
|
||||
}
|
||||
MacroStyle::Brackets => {
|
||||
let mac_shape = try_opt!(shape.shrink_left(macro_name.len()));
|
||||
@ -199,17 +199,13 @@ pub fn rewrite_macro(mac: &ast::Mac,
|
||||
} else {
|
||||
// Format macro invocation as array literal.
|
||||
let rewrite =
|
||||
try_opt!(rewrite_array(
|
||||
expr_vec.iter().map(|x| &**x),
|
||||
mk_sp(
|
||||
context
|
||||
.codemap
|
||||
.span_after(mac.span, original_style.opener()),
|
||||
mac.span.hi - BytePos(1),
|
||||
),
|
||||
context,
|
||||
mac_shape,
|
||||
));
|
||||
try_opt!(rewrite_array(expr_vec.iter().map(|x| &**x),
|
||||
mk_sp(context
|
||||
.codemap
|
||||
.span_after(mac.span, original_style.opener()),
|
||||
mac.span.hi - BytePos(1)),
|
||||
context,
|
||||
mac_shape));
|
||||
|
||||
Some(format!("{}{}", macro_name, rewrite))
|
||||
}
|
||||
|
@ -22,8 +22,9 @@ impl<'a> FmtVisitor<'a> {
|
||||
// TODO these format_missing methods are ugly. Refactor and add unit tests
|
||||
// for the central whitespace stripping loop.
|
||||
pub fn format_missing(&mut self, end: BytePos) {
|
||||
self.format_missing_inner(end,
|
||||
|this, last_snippet, _| this.buffer.push_str(last_snippet))
|
||||
self.format_missing_inner(end, |this, last_snippet, _| {
|
||||
this.buffer.push_str(last_snippet)
|
||||
})
|
||||
}
|
||||
|
||||
pub fn format_missing_with_indent(&mut self, end: BytePos) {
|
||||
|
38
src/types.rs
38
src/types.rs
@ -377,11 +377,12 @@ impl Rewrite for ast::WherePredicate {
|
||||
let used_width = lifetime_str.len() + type_str.len() + colon.len() + 6;
|
||||
let budget = try_opt!(shape.width.checked_sub(used_width));
|
||||
let bounds_str: String = try_opt!(bounds
|
||||
.iter()
|
||||
.map(|ty_bound| {
|
||||
ty_bound.rewrite(context, Shape::legacy(budget, shape.indent + used_width))
|
||||
})
|
||||
.collect::<Option<Vec<_>>>())
|
||||
.iter()
|
||||
.map(|ty_bound| {
|
||||
ty_bound
|
||||
.rewrite(context, Shape::legacy(budget, shape.indent + used_width))
|
||||
})
|
||||
.collect::<Option<Vec<_>>>())
|
||||
.join(joiner);
|
||||
|
||||
if context.config.spaces_within_angle_brackets() && lifetime_str.len() > 0 {
|
||||
@ -401,11 +402,12 @@ impl Rewrite for ast::WherePredicate {
|
||||
let used_width = type_str.len() + colon.len();
|
||||
let budget = try_opt!(shape.width.checked_sub(used_width));
|
||||
let bounds_str: String = try_opt!(bounds
|
||||
.iter()
|
||||
.map(|ty_bound| {
|
||||
ty_bound.rewrite(context, Shape::legacy(budget, shape.indent + used_width))
|
||||
})
|
||||
.collect::<Option<Vec<_>>>())
|
||||
.iter()
|
||||
.map(|ty_bound| {
|
||||
ty_bound
|
||||
.rewrite(context, Shape::legacy(budget, shape.indent + used_width))
|
||||
})
|
||||
.collect::<Option<Vec<_>>>())
|
||||
.join(joiner);
|
||||
|
||||
format!("{}{}{}", type_str, colon, bounds_str)
|
||||
@ -700,14 +702,14 @@ fn rewrite_bare_fn(bare_fn: &ast::BareFnTy,
|
||||
// This doesn't work out so nicely for mutliline situation with lots of
|
||||
// rightward drift. If that is a problem, we could use the list stuff.
|
||||
result.push_str(&try_opt!(bare_fn
|
||||
.lifetimes
|
||||
.iter()
|
||||
.map(|l| {
|
||||
l.rewrite(context,
|
||||
Shape::legacy(try_opt!(shape.width.checked_sub(6)), shape.indent + 4))
|
||||
})
|
||||
.collect::<Option<Vec<_>>>())
|
||||
.join(", "));
|
||||
.lifetimes
|
||||
.iter()
|
||||
.map(|l| {
|
||||
l.rewrite(context,
|
||||
Shape::legacy(try_opt!(shape.width.checked_sub(6)), shape.indent + 4))
|
||||
})
|
||||
.collect::<Option<Vec<_>>>())
|
||||
.join(", "));
|
||||
result.push_str("> ");
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user