reorder_imports: bool, false, "Reorder import statements alphabetically";
reorder_imported_names: bool, false,
"Reorder lists of names in import statements alphabetically";
+ normalize_imports: bool, true, "Allows removing braces from imports and reducing paths";
single_line_if_else_max_width: usize, 50, "Maximum line length for single line if-else \
expressions. A value of zero means always break \
if-else expressions.";
ast::ViewPath_::ViewPathList(ref path, ref path_list) => {
rewrite_use_list(width, offset, path, path_list, self.span, context)
}
- ast::ViewPath_::ViewPathGlob(_) => {
- // FIXME convert to list?
- None
- }
+ ast::ViewPath_::ViewPathGlob(_) => None,
ast::ViewPath_::ViewPathSimple(ident, ref path) => {
let ident_str = ident.to_string();
// 4 = " as ".len()
let budget = try_opt!(width.checked_sub(ident_str.len() + 4));
- let path_str = try_opt!(rewrite_path(context, false, None, path, budget, offset));
+
+ let path_str = if context.config.normalize_imports &&
+ path.segments.last().unwrap().identifier.to_string() == "self" &&
+ path.segments.len() > 1 {
+ let path = &ast::Path {
+ span: path.span.clone(),
+ segments: path.segments[..path.segments.len() - 1].to_owned(),
+ global: path.global,
+ };
+ try_opt!(rewrite_path(context, false, None, &path, budget, offset))
+ } else {
+ try_opt!(rewrite_path(context, false, None, path, budget, offset))
+ };
Some(if path.segments.last().unwrap().identifier == ident {
path_str
}
}
-fn rewrite_single_use_list(path_str: Option<String>, vpi: &ast::PathListItem) -> String {
+fn rewrite_single_use_list(path_str: Option<String>,
+ vpi: &ast::PathListItem,
+ context: &RewriteContext)
+ -> String {
let path_item_str = match path_str {
- Some(ref path_str) if vpi.node.name.to_string() == "self" => path_str.to_owned(),
+ Some(ref path_str) if vpi.node.name.to_string() == "self" &&
+ context.config.normalize_imports => path_str.to_owned(),
Some(path_str) => format!("{}::{}", path_str, vpi.node.name),
None => vpi.node.name.to_string(),
};
match path_list.len() {
0 => unreachable!(),
- 1 => return Some(rewrite_single_use_list(opt_path_str, &path_list[0])),
+ 1 => return Some(rewrite_single_use_list(opt_path_str, &path_list[0], context)),
_ => (),
}