Make group imports configurable

This commit is contained in:
asv 2021-03-06 13:02:26 +02:00
parent 750d3cb846
commit 96fc01a30b
14 changed files with 79 additions and 23 deletions

View file

@ -1,7 +1,31 @@
use super::*;
use hir::PrefixKind;
use test_utils::assert_eq_text;
#[test]
fn insert_not_group() {
check(
"use external_crate2::bar::A",
r"
use std::bar::B;
use external_crate::bar::A;
use crate::bar::A;
use self::bar::A;
use super::bar::A;",
r"
use std::bar::B;
use external_crate::bar::A;
use crate::bar::A;
use self::bar::A;
use super::bar::A;
use external_crate2::bar::A;",
None,
false,
false,
);
}
#[test]
fn insert_existing() {
check_full("std::fs", "use std::fs;", "use std::fs;")
@ -240,6 +264,7 @@ fn insert_empty_module() {
}",
None,
true,
true,
)
}
@ -584,6 +609,7 @@ fn check(
ra_fixture_after: &str,
mb: Option<MergeBehavior>,
module: bool,
group: bool,
) {
let mut syntax = ast::SourceFile::parse(ra_fixture_before).tree().syntax().clone();
if module {
@ -597,21 +623,25 @@ fn check(
.find_map(ast::Path::cast)
.unwrap();
let rewriter = insert_use(&file, path, mb);
let rewriter = insert_use(
&file,
path,
InsertUseConfig { merge: mb, prefix_kind: PrefixKind::Plain, group },
);
let result = rewriter.rewrite(file.as_syntax_node()).to_string();
assert_eq_text!(ra_fixture_after, &result);
}
fn check_full(path: &str, ra_fixture_before: &str, ra_fixture_after: &str) {
check(path, ra_fixture_before, ra_fixture_after, Some(MergeBehavior::Full), false)
check(path, ra_fixture_before, ra_fixture_after, Some(MergeBehavior::Full), false, true)
}
fn check_last(path: &str, ra_fixture_before: &str, ra_fixture_after: &str) {
check(path, ra_fixture_before, ra_fixture_after, Some(MergeBehavior::Last), false)
check(path, ra_fixture_before, ra_fixture_after, Some(MergeBehavior::Last), false, true)
}
fn check_none(path: &str, ra_fixture_before: &str, ra_fixture_after: &str) {
check(path, ra_fixture_before, ra_fixture_after, None, false)
check(path, ra_fixture_before, ra_fixture_after, None, false, true)
}
fn check_merge_only_fail(ra_fixture0: &str, ra_fixture1: &str, mb: MergeBehavior) {