aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2020-07-17 12:12:40 +0100
committerGitHub <[email protected]>2020-07-17 12:12:40 +0100
commit2ca0e9e00e5a55bd591ae0a85fb00918b111e063 (patch)
treea53047df1fe84176007828f098184df7d394d9a5
parent9b5ac1d82fa3b9b810656e5b4a44d471b9923ce7 (diff)
parentd7cd88b1a2169e50140730db4bd451350367e5ff (diff)
Merge #5327
5327: Mark fixes from check as preferred r=matklad a=kjeremy This allows us to run the auto fix command from vscode to automatically fix diagnostics in the file. They are also distinguished in the UI. Co-authored-by: Jeremy Kolb <[email protected]>
-rw-r--r--crates/rust-analyzer/src/diagnostics/to_proto.rs1
-rw-r--r--crates/rust-analyzer/src/handlers.rs1
-rw-r--r--crates/rust-analyzer/src/lsp_ext.rs3
-rw-r--r--crates/rust-analyzer/src/to_proto.rs1
-rw-r--r--crates/rust-analyzer/test_data/rustc_unused_variable.txt3
-rw-r--r--crates/rust-analyzer/test_data/rustc_unused_variable_as_hint.txt3
-rw-r--r--crates/rust-analyzer/test_data/rustc_unused_variable_as_info.txt3
-rw-r--r--crates/rust-analyzer/test_data/snap_multi_line_fix.txt3
-rw-r--r--crates/rust-analyzer/tests/heavy_tests/main.rs2
9 files changed, 20 insertions, 0 deletions
diff --git a/crates/rust-analyzer/src/diagnostics/to_proto.rs b/crates/rust-analyzer/src/diagnostics/to_proto.rs
index 7be3ef984..97f331352 100644
--- a/crates/rust-analyzer/src/diagnostics/to_proto.rs
+++ b/crates/rust-analyzer/src/diagnostics/to_proto.rs
@@ -118,6 +118,7 @@ fn map_rust_child_diagnostic(
118 changes: Some(edit_map), 118 changes: Some(edit_map),
119 document_changes: None, 119 document_changes: None,
120 }), 120 }),
121 is_preferred: Some(true),
121 }) 122 })
122 } 123 }
123} 124}
diff --git a/crates/rust-analyzer/src/handlers.rs b/crates/rust-analyzer/src/handlers.rs
index 326977b62..d880570d2 100644
--- a/crates/rust-analyzer/src/handlers.rs
+++ b/crates/rust-analyzer/src/handlers.rs
@@ -770,6 +770,7 @@ fn handle_fixes(
770 group: None, 770 group: None,
771 kind: Some(CodeActionKind::QUICKFIX), 771 kind: Some(CodeActionKind::QUICKFIX),
772 edit: Some(edit), 772 edit: Some(edit),
773 is_preferred: Some(false),
773 }; 774 };
774 res.push(action); 775 res.push(action);
775 } 776 }
diff --git a/crates/rust-analyzer/src/lsp_ext.rs b/crates/rust-analyzer/src/lsp_ext.rs
index e216966a9..13ebb18fb 100644
--- a/crates/rust-analyzer/src/lsp_ext.rs
+++ b/crates/rust-analyzer/src/lsp_ext.rs
@@ -243,6 +243,7 @@ impl Request for CodeActionRequest {
243} 243}
244 244
245#[derive(Debug, PartialEq, Clone, Default, Deserialize, Serialize)] 245#[derive(Debug, PartialEq, Clone, Default, Deserialize, Serialize)]
246#[serde(rename_all = "camelCase")]
246pub struct CodeAction { 247pub struct CodeAction {
247 pub title: String, 248 pub title: String,
248 #[serde(skip_serializing_if = "Option::is_none")] 249 #[serde(skip_serializing_if = "Option::is_none")]
@@ -256,6 +257,8 @@ pub struct CodeAction {
256 // pub command: Option<lsp_types::Command>, 257 // pub command: Option<lsp_types::Command>,
257 #[serde(skip_serializing_if = "Option::is_none")] 258 #[serde(skip_serializing_if = "Option::is_none")]
258 pub edit: Option<SnippetWorkspaceEdit>, 259 pub edit: Option<SnippetWorkspaceEdit>,
260 #[serde(skip_serializing_if = "Option::is_none")]
261 pub is_preferred: Option<bool>,
259} 262}
260 263
261#[derive(Debug, Eq, PartialEq, Clone, Default, Deserialize, Serialize)] 264#[derive(Debug, Eq, PartialEq, Clone, Default, Deserialize, Serialize)]
diff --git a/crates/rust-analyzer/src/to_proto.rs b/crates/rust-analyzer/src/to_proto.rs
index 783012c1a..687432ddb 100644
--- a/crates/rust-analyzer/src/to_proto.rs
+++ b/crates/rust-analyzer/src/to_proto.rs
@@ -689,6 +689,7 @@ pub(crate) fn unresolved_code_action(
689 group: assist.group.filter(|_| snap.config.client_caps.code_action_group).map(|gr| gr.0), 689 group: assist.group.filter(|_| snap.config.client_caps.code_action_group).map(|gr| gr.0),
690 kind: Some(code_action_kind(assist.id.1)), 690 kind: Some(code_action_kind(assist.id.1)),
691 edit: None, 691 edit: None,
692 is_preferred: None,
692 }; 693 };
693 Ok(res) 694 Ok(res)
694} 695}
diff --git a/crates/rust-analyzer/test_data/rustc_unused_variable.txt b/crates/rust-analyzer/test_data/rustc_unused_variable.txt
index 084632757..74d91bc77 100644
--- a/crates/rust-analyzer/test_data/rustc_unused_variable.txt
+++ b/crates/rust-analyzer/test_data/rustc_unused_variable.txt
@@ -65,6 +65,9 @@
65 document_changes: None, 65 document_changes: None,
66 }, 66 },
67 ), 67 ),
68 is_preferred: Some(
69 true,
70 ),
68 }, 71 },
69 ], 72 ],
70 }, 73 },
diff --git a/crates/rust-analyzer/test_data/rustc_unused_variable_as_hint.txt b/crates/rust-analyzer/test_data/rustc_unused_variable_as_hint.txt
index d637923c5..8a420c949 100644
--- a/crates/rust-analyzer/test_data/rustc_unused_variable_as_hint.txt
+++ b/crates/rust-analyzer/test_data/rustc_unused_variable_as_hint.txt
@@ -65,6 +65,9 @@
65 document_changes: None, 65 document_changes: None,
66 }, 66 },
67 ), 67 ),
68 is_preferred: Some(
69 true,
70 ),
68 }, 71 },
69 ], 72 ],
70 }, 73 },
diff --git a/crates/rust-analyzer/test_data/rustc_unused_variable_as_info.txt b/crates/rust-analyzer/test_data/rustc_unused_variable_as_info.txt
index 6b48f16ed..79910660b 100644
--- a/crates/rust-analyzer/test_data/rustc_unused_variable_as_info.txt
+++ b/crates/rust-analyzer/test_data/rustc_unused_variable_as_info.txt
@@ -65,6 +65,9 @@
65 document_changes: None, 65 document_changes: None,
66 }, 66 },
67 ), 67 ),
68 is_preferred: Some(
69 true,
70 ),
68 }, 71 },
69 ], 72 ],
70 }, 73 },
diff --git a/crates/rust-analyzer/test_data/snap_multi_line_fix.txt b/crates/rust-analyzer/test_data/snap_multi_line_fix.txt
index 2c4cbea16..4f811ab64 100644
--- a/crates/rust-analyzer/test_data/snap_multi_line_fix.txt
+++ b/crates/rust-analyzer/test_data/snap_multi_line_fix.txt
@@ -93,6 +93,9 @@
93 document_changes: None, 93 document_changes: None,
94 }, 94 },
95 ), 95 ),
96 is_preferred: Some(
97 true,
98 ),
96 }, 99 },
97 ], 100 ],
98 }, 101 },
diff --git a/crates/rust-analyzer/tests/heavy_tests/main.rs b/crates/rust-analyzer/tests/heavy_tests/main.rs
index 7b908d30c..f12e5a37f 100644
--- a/crates/rust-analyzer/tests/heavy_tests/main.rs
+++ b/crates/rust-analyzer/tests/heavy_tests/main.rs
@@ -284,6 +284,7 @@ fn main() {}
284 } 284 }
285 ] 285 ]
286 }, 286 },
287 "isPreferred": false,
287 "kind": "quickfix", 288 "kind": "quickfix",
288 "title": "Create module" 289 "title": "Create module"
289 }]), 290 }]),
@@ -355,6 +356,7 @@ fn main() {{}}
355 } 356 }
356 ] 357 ]
357 }, 358 },
359 "isPreferred": false,
358 "kind": "quickfix", 360 "kind": "quickfix",
359 "title": "Create module" 361 "title": "Create module"
360 }]), 362 }]),