Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/ide-db/src/imports/insert_use.rs3
-rw-r--r--crates/ide-db/src/imports/insert_use/tests.rs11
2 files changed, 13 insertions, 1 deletions
diff --git a/crates/ide-db/src/imports/insert_use.rs b/crates/ide-db/src/imports/insert_use.rs
index 66d0b2ee82..d1cd347819 100644
--- a/crates/ide-db/src/imports/insert_use.rs
+++ b/crates/ide-db/src/imports/insert_use.rs
@@ -403,7 +403,8 @@ fn insert_use_(
.take_while(|child| match child {
NodeOrToken::Node(node) => is_inner_attribute(node.clone()),
NodeOrToken::Token(token) => {
- [SyntaxKind::WHITESPACE, SyntaxKind::COMMENT].contains(&token.kind())
+ [SyntaxKind::WHITESPACE, SyntaxKind::COMMENT, SyntaxKind::SHEBANG]
+ .contains(&token.kind())
}
})
.filter(|child| child.as_token().map_or(true, |t| t.kind() != SyntaxKind::WHITESPACE))
diff --git a/crates/ide-db/src/imports/insert_use/tests.rs b/crates/ide-db/src/imports/insert_use/tests.rs
index 6569e4ed8c..70a7a15232 100644
--- a/crates/ide-db/src/imports/insert_use/tests.rs
+++ b/crates/ide-db/src/imports/insert_use/tests.rs
@@ -455,6 +455,17 @@ use foo::bar::Baz;"#,
}
#[test]
+fn inserts_after_shebang() {
+ check_none(
+ "foo::bar::Baz",
+ "#!/usr/bin/env rust",
+ r#"#!/usr/bin/env rust
+
+use foo::bar::Baz;"#,
+ );
+}
+
+#[test]
fn inserts_after_multiple_single_line_comments() {
check_none(
"foo::bar::Baz",