aboutsummaryrefslogtreecommitdiff
path: root/crates/ide_completion/src/patterns.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ide_completion/src/patterns.rs')
-rw-r--r--crates/ide_completion/src/patterns.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/crates/ide_completion/src/patterns.rs b/crates/ide_completion/src/patterns.rs
index 345977d48..02cfe91e1 100644
--- a/crates/ide_completion/src/patterns.rs
+++ b/crates/ide_completion/src/patterns.rs
@@ -20,6 +20,7 @@ pub(crate) enum ImmediatePrevSibling {
20 TraitDefName, 20 TraitDefName,
21 ImplDefType, 21 ImplDefType,
22 Visibility, 22 Visibility,
23 Attribute,
23} 24}
24 25
25/// Direct parent "thing" of what we are currently completing. 26/// Direct parent "thing" of what we are currently completing.
@@ -113,6 +114,7 @@ pub(crate) fn determine_prev_sibling(name_like: &ast::NameLike) -> Option<Immedi
113 } else { 114 } else {
114 return None 115 return None
115 }, 116 },
117 ast::Attr(_it) => ImmediatePrevSibling::Attribute,
116 _ => return None, 118 _ => return None,
117 } 119 }
118 }; 120 };
@@ -438,4 +440,9 @@ mod tests {
438 fn test_vis_prev_sibling() { 440 fn test_vis_prev_sibling() {
439 check_prev_sibling(r"pub w$0", ImmediatePrevSibling::Visibility); 441 check_prev_sibling(r"pub w$0", ImmediatePrevSibling::Visibility);
440 } 442 }
443
444 #[test]
445 fn test_attr_prev_sibling() {
446 check_prev_sibling(r"#[attr] w$0", ImmediatePrevSibling::Attribute);
447 }
441} 448}