mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 14:55:26 +00:00
fix: Insert spaces when inlining macros
This commit is contained in:
parent
c468e39b5a
commit
626dc651ff
@ -1,3 +1,4 @@
|
||||
use ide_db::syntax_helpers::insert_whitespace_into_node::insert_ws_into;
|
||||
use syntax::ast::{self, AstNode};
|
||||
|
||||
use crate::{AssistContext, AssistId, AssistKind, Assists};
|
||||
@ -35,7 +36,7 @@ use crate::{AssistContext, AssistId, AssistKind, Assists};
|
||||
// ```
|
||||
pub(crate) fn inline_macro(acc: &mut Assists, ctx: &AssistContext<'_>) -> Option<()> {
|
||||
let unexpanded = ctx.find_node_at_offset::<ast::MacroCall>()?;
|
||||
let expanded = ctx.sema.expand(&unexpanded)?.clone_for_update();
|
||||
let expanded = insert_ws_into(ctx.sema.expand(&unexpanded)?.clone_for_update());
|
||||
|
||||
let text_range = unexpanded.syntax().text_range();
|
||||
|
||||
@ -230,4 +231,27 @@ fn f() { let result = foo$0(); }
|
||||
"#,
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn inline_macro_with_whitespace() {
|
||||
check_assist(
|
||||
inline_macro,
|
||||
r#"
|
||||
macro_rules! whitespace {
|
||||
() => {
|
||||
if true {}
|
||||
};
|
||||
}
|
||||
fn f() { whitespace$0!(); }
|
||||
"#,
|
||||
r#"
|
||||
macro_rules! whitespace {
|
||||
() => {
|
||||
if true {}
|
||||
};
|
||||
}
|
||||
fn f() { if true{}; }
|
||||
"#,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user