fix: insert whitespace between text and pound
`text#`, `text"..."`, and `text'...'` are reserved syntax since Rust 2021. Note that the latter two are already handled correctly.
This commit is contained in:
parent
a6464392c1
commit
0df9fb22d8
@ -254,4 +254,49 @@ macro_rules! whitespace {
|
|||||||
"#,
|
"#,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn whitespace_between_text_and_pound() {
|
||||||
|
check_assist(
|
||||||
|
inline_macro,
|
||||||
|
r#"
|
||||||
|
macro_rules! foo {
|
||||||
|
() => {
|
||||||
|
cfg_if! {
|
||||||
|
if #[cfg(test)] {
|
||||||
|
1;
|
||||||
|
} else {
|
||||||
|
1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn main() {
|
||||||
|
$0foo!();
|
||||||
|
}
|
||||||
|
"#,
|
||||||
|
r#"
|
||||||
|
macro_rules! foo {
|
||||||
|
() => {
|
||||||
|
cfg_if! {
|
||||||
|
if #[cfg(test)] {
|
||||||
|
1;
|
||||||
|
} else {
|
||||||
|
1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn main() {
|
||||||
|
cfg_if!{
|
||||||
|
if #[cfg(test)]{
|
||||||
|
1;
|
||||||
|
}else {
|
||||||
|
1;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
"#,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,9 @@ pub fn insert_ws_into(syn: SyntaxNode) -> SyntaxNode {
|
|||||||
|f: fn(SyntaxKind) -> bool, default| -> bool { last.map(f).unwrap_or(default) };
|
|f: fn(SyntaxKind) -> bool, default| -> bool { last.map(f).unwrap_or(default) };
|
||||||
|
|
||||||
match tok.kind() {
|
match tok.kind() {
|
||||||
k if is_text(k) && is_next(|it| !it.is_punct() || it == UNDERSCORE, false) => {
|
k if is_text(k)
|
||||||
|
&& is_next(|it| !it.is_punct() || matches!(it, T![_] | T![#]), false) =>
|
||||||
|
{
|
||||||
mods.push(do_ws(after, tok));
|
mods.push(do_ws(after, tok));
|
||||||
}
|
}
|
||||||
L_CURLY if is_next(|it| it != R_CURLY, true) => {
|
L_CURLY if is_next(|it| it != R_CURLY, true) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user