]> git.lizzy.rs Git - rust.git/commitdiff
don't insert parens for self methods
authorAleksey Kladov <aleksey.kladov@gmail.com>
Wed, 23 Jan 2019 13:21:20 +0000 (16:21 +0300)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Wed, 23 Jan 2019 13:21:20 +0000 (16:21 +0300)
crates/ra_ide_api/src/completion/completion_item.rs
crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls3.snap [new file with mode: 0644]
crates/ra_ide_api/src/completion/snapshots/completion_item__method_completion.snap
crates/ra_ide_api/src/completion/snapshots/completion_item__struct_field_completion_autoderef.snap
crates/ra_ide_api/src/completion/snapshots/completion_item__struct_field_completion_self.snap

index 48be812a08552c6d3549ba0c37bd7a28aa659f9f..e3bf82304e0174039eaa38a919c6e4132f973cc1 100644 (file)
@@ -257,7 +257,8 @@ pub(super) fn from_function(
         // If not an import, add parenthesis automatically.
         if ctx.use_item_syntax.is_none() && !ctx.is_call {
             tested_by!(inserts_parens_for_function_calls);
-            if function.signature(ctx.db).params().is_empty() {
+            let sig = function.signature(ctx.db);
+            if sig.params().is_empty() || sig.has_self_param() && sig.params().len() == 1 {
                 self.insert_text = Some(format!("{}()$0", self.label));
             } else {
                 self.insert_text = Some(format!("{}($0)", self.label));
@@ -374,6 +375,18 @@ fn with_args(x: i32, y: String) {}
             fn main() { with_<|> }
             ",
         );
+        check_reference_completion(
+            "inserts_parens_for_function_calls3",
+            r"
+            struct S {}
+            impl S {
+                fn foo(&self) {}
+            }
+            fn bar(s: &S) {
+                s.f<|>
+            }
+            ",
+        )
     }
 
     #[test]
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls3.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls3.snap
new file mode 100644 (file)
index 0000000..92068e5
--- /dev/null
@@ -0,0 +1,26 @@
+---
+created: "2019-01-23T13:19:23.525922020+00:00"
+creator: insta@0.5.2
+expression: kind_completions
+source: crates/ra_ide_api/src/completion/completion_item.rs
+---
+[
+    CompletionItem {
+        completion_kind: Reference,
+        label: "foo",
+        kind: Some(
+            Method
+        ),
+        detail: Some(
+            "fn foo(&self)"
+        ),
+        documentation: None,
+        lookup: None,
+        insert_text: Some(
+            "foo()$0"
+        ),
+        insert_text_format: Snippet,
+        source_range: [139; 140),
+        text_edit: None
+    }
+]
index ffeac0bf430014b172862fa06b3738db339a9772..10fe59248951a52b6bb527388c3ee4ab78a59503 100644 (file)
@@ -1,8 +1,8 @@
 ---
-created: "2019-01-22T15:38:19.541947400+00:00"
-creator: insta@0.4.0
+created: "2019-01-23T13:19:23.501258181+00:00"
+creator: insta@0.5.2
 expression: kind_completions
-source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+source: crates/ra_ide_api/src/completion/completion_item.rs
 ---
 [
     CompletionItem {
@@ -17,7 +17,7 @@ source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
         documentation: None,
         lookup: None,
         insert_text: Some(
-            "the_method($0)"
+            "the_method()$0"
         ),
         insert_text_format: Snippet,
         source_range: [144; 144),
index 5ef140b28128e99bd794b13ecfb4d626078d00ca..5f5df00332b576ef8006ac6d5cf2e57a13d4d179 100644 (file)
@@ -1,8 +1,8 @@
 ---
-created: "2019-01-22T15:38:19.541947400+00:00"
-creator: insta@0.4.0
+created: "2019-01-23T13:19:23.501353210+00:00"
+creator: insta@0.5.2
 expression: kind_completions
-source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+source: crates/ra_ide_api/src/completion/completion_item.rs
 ---
 [
     CompletionItem {
@@ -33,7 +33,7 @@ source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
         documentation: None,
         lookup: None,
         insert_text: Some(
-            "foo($0)"
+            "foo()$0"
         ),
         insert_text_format: Snippet,
         source_range: [126; 126),
index b7903c5bcb40a31ba519ac451c22f07e4865a597..80e8f3df58be97d03ffacef8e857a17aa74eecfb 100644 (file)
@@ -1,8 +1,8 @@
 ---
-created: "2019-01-22T15:38:19.541947400+00:00"
-creator: insta@0.4.0
+created: "2019-01-23T13:19:23.501297515+00:00"
+creator: insta@0.5.2
 expression: kind_completions
-source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+source: crates/ra_ide_api/src/completion/completion_item.rs
 ---
 [
     CompletionItem {
@@ -33,7 +33,7 @@ source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
         documentation: None,
         lookup: None,
         insert_text: Some(
-            "foo($0)"
+            "foo()$0"
         ),
         insert_text_format: Snippet,
         source_range: [121; 121),