aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2019-09-28 16:59:28 +0100
committerGitHub <[email protected]>2019-09-28 16:59:28 +0100
commitdbdf0e24d51ce425c0066a76a0efc723e41e5071 (patch)
tree2b91ba59edc252a7961f044caad94b192d49ce78
parent12f617e661c288cfc51727012da8114f77f7e55b (diff)
parent17d1405a8b4eddedaf3665fc41ff4fa17a1409a7 (diff)
Merge #1931
1931: Support the new deprecated tag r=matklad a=arsdragonfly Which is rendered as a strike-through line. Fixes #1671 . ![深度截图_选择区域_20190927162008](https://user-images.githubusercontent.com/4067473/65799714-ccb4c180-e142-11e9-8e45-ab18964605f3.png) Co-authored-by: arsdragonfly <[email protected]>
-rw-r--r--editors/code/src/test/utils/diagnotics/rust.test.ts8
-rw-r--r--editors/code/src/utils/diagnostics/rust.ts18
2 files changed, 21 insertions, 5 deletions
diff --git a/editors/code/src/test/utils/diagnotics/rust.test.ts b/editors/code/src/test/utils/diagnotics/rust.test.ts
index 7fb003fe2..327d15046 100644
--- a/editors/code/src/test/utils/diagnotics/rust.test.ts
+++ b/editors/code/src/test/utils/diagnotics/rust.test.ts
@@ -50,7 +50,7 @@ describe('mapRustDiagnosticToVsCode', () => {
50 ].join('\n') 50 ].join('\n')
51 ); 51 );
52 assert.strictEqual(diagnostic.code, 'E0053'); 52 assert.strictEqual(diagnostic.code, 'E0053');
53 assert.strictEqual(diagnostic.tags, undefined); 53 assert.deepStrictEqual(diagnostic.tags, []);
54 54
55 // No related information 55 // No related information
56 assert.deepStrictEqual(diagnostic.relatedInformation, []); 56 assert.deepStrictEqual(diagnostic.relatedInformation, []);
@@ -115,7 +115,7 @@ describe('mapRustDiagnosticToVsCode', () => {
115 ); 115 );
116 assert.strictEqual(diagnostic.code, 'E0061'); 116 assert.strictEqual(diagnostic.code, 'E0061');
117 assert.strictEqual(diagnostic.source, 'rustc'); 117 assert.strictEqual(diagnostic.source, 'rustc');
118 assert.strictEqual(diagnostic.tags, undefined); 118 assert.deepStrictEqual(diagnostic.tags, []);
119 119
120 // One related information for the original definition 120 // One related information for the original definition
121 const relatedInformation = diagnostic.relatedInformation; 121 const relatedInformation = diagnostic.relatedInformation;
@@ -149,7 +149,7 @@ describe('mapRustDiagnosticToVsCode', () => {
149 ].join('\n') 149 ].join('\n')
150 ); 150 );
151 assert.strictEqual(diagnostic.code, 'trivially_copy_pass_by_ref'); 151 assert.strictEqual(diagnostic.code, 'trivially_copy_pass_by_ref');
152 assert.strictEqual(diagnostic.tags, undefined); 152 assert.deepStrictEqual(diagnostic.tags, []);
153 153
154 // One related information for the lint definition 154 // One related information for the lint definition
155 const relatedInformation = diagnostic.relatedInformation; 155 const relatedInformation = diagnostic.relatedInformation;
@@ -189,7 +189,7 @@ describe('mapRustDiagnosticToVsCode', () => {
189 ); 189 );
190 assert.strictEqual(diagnostic.code, 'E0308'); 190 assert.strictEqual(diagnostic.code, 'E0308');
191 assert.strictEqual(diagnostic.source, 'rustc'); 191 assert.strictEqual(diagnostic.source, 'rustc');
192 assert.strictEqual(diagnostic.tags, undefined); 192 assert.deepStrictEqual(diagnostic.tags, []);
193 193
194 // No related information 194 // No related information
195 assert.deepStrictEqual(diagnostic.relatedInformation, []); 195 assert.deepStrictEqual(diagnostic.relatedInformation, []);
diff --git a/editors/code/src/utils/diagnostics/rust.ts b/editors/code/src/utils/diagnostics/rust.ts
index 1fb1f7b6d..0550d0372 100644
--- a/editors/code/src/utils/diagnostics/rust.ts
+++ b/editors/code/src/utils/diagnostics/rust.ts
@@ -112,6 +112,17 @@ function isUnusedOrUnnecessary(rd: RustDiagnostic): boolean {
112} 112}
113 113
114/** 114/**
115 * Determines if diagnostic is related to deprecated code
116 */
117function isDeprecated(rd: RustDiagnostic): boolean {
118 if (!rd.code) {
119 return false;
120 }
121
122 return ['deprecated'].includes(rd.code.code);
123}
124
125/**
115 * Converts a Rust child diagnostic to a VsCode related information 126 * Converts a Rust child diagnostic to a VsCode related information
116 * 127 *
117 * This can have three outcomes: 128 * This can have three outcomes:
@@ -200,6 +211,7 @@ export function mapRustDiagnosticToVsCode(
200 vd.source = source; 211 vd.source = source;
201 vd.code = code; 212 vd.code = code;
202 vd.relatedInformation = []; 213 vd.relatedInformation = [];
214 vd.tags = [];
203 215
204 for (const secondarySpan of secondarySpans) { 216 for (const secondarySpan of secondarySpans) {
205 const related = mapSecondarySpanToRelated(secondarySpan); 217 const related = mapSecondarySpanToRelated(secondarySpan);
@@ -234,7 +246,11 @@ export function mapRustDiagnosticToVsCode(
234 } 246 }
235 247
236 if (isUnusedOrUnnecessary(rd)) { 248 if (isUnusedOrUnnecessary(rd)) {
237 vd.tags = [vscode.DiagnosticTag.Unnecessary]; 249 vd.tags.push(vscode.DiagnosticTag.Unnecessary);
250 }
251
252 if (isDeprecated(rd)) {
253 vd.tags.push(vscode.DiagnosticTag.Deprecated);
238 } 254 }
239 255
240 return { 256 return {