about summary refs log tree commit diff
diff options
context:
space:
mode:
authorhecatia-elegua <108802164+hecatia-elegua@users.noreply.github.com>2023-04-05 19:35:21 +0200
committerhecatia-elegua <108802164+hecatia-elegua@users.noreply.github.com>2023-04-05 19:35:21 +0200
commitf87f468dbdba374b5e2b04b832ab99dbd74dc288 (patch)
treebde454c2f2698b8ea743d89e81c2b8591fbad824
parent410acd7188a5efb99f8629c7ff0630ce4935350a (diff)
downloadrust-f87f468dbdba374b5e2b04b832ab99dbd74dc288.tar.gz
rust-f87f468dbdba374b5e2b04b832ab99dbd74dc288.zip
Add doc(alias)-based function name completion
-rw-r--r--crates/ide-completion/src/render/function.rs2
-rw-r--r--crates/ide-completion/src/tests/special.rs45
2 files changed, 47 insertions, 0 deletions
diff --git a/crates/ide-completion/src/render/function.rs b/crates/ide-completion/src/render/function.rs
index 197592e78ce..bfcd23280ce 100644
--- a/crates/ide-completion/src/render/function.rs
+++ b/crates/ide-completion/src/render/function.rs
@@ -147,6 +147,8 @@ fn render(
             }
         }
     }
+
+    item.doc_aliases(ctx.doc_aliases);
     item
 }
 
diff --git a/crates/ide-completion/src/tests/special.rs b/crates/ide-completion/src/tests/special.rs
index 5f53e5b6a9b..8d9bd4ba1a0 100644
--- a/crates/ide-completion/src/tests/special.rs
+++ b/crates/ide-completion/src/tests/special.rs
@@ -1105,3 +1105,48 @@ fn here_we_go() {
         "#]],
     );
 }
+
+#[test]
+fn completes_fn_name_via_doc_alias_in_fn_body() {
+    check(
+        r#"
+#[doc(alias = "qux")]
+fn foo() {}
+fn bar() { qu$0 }
+"#,
+        expect![[r#"
+            fn bar()             fn()
+            fn foo() (alias qux) fn()
+            bt u32
+            kw const
+            kw crate::
+            kw enum
+            kw extern
+            kw false
+            kw fn
+            kw for
+            kw if
+            kw if let
+            kw impl
+            kw let
+            kw loop
+            kw match
+            kw mod
+            kw return
+            kw self::
+            kw static
+            kw struct
+            kw trait
+            kw true
+            kw type
+            kw union
+            kw unsafe
+            kw use
+            kw while
+            kw while let
+            sn macro_rules
+            sn pd
+            sn ppd
+        "#]],
+    );
+}