Skip to content

Commit a51c739

Browse files
committedSep 14, 2020
Diagnosis tag
1 parent 7a0bd67 commit a51c739

File tree

1 file changed

+32
-2
lines changed

1 file changed

+32
-2
lines changed
 

‎server/src/utils.ts

+32-2
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ export let parseCompilerLogOutput = (content: string, separator: string) => {
131131
type parsedDiagnostic = {
132132
code: number | undefined,
133133
severity: t.DiagnosticSeverity,
134+
tag: t.DiagnosticTag | undefined,
134135
content: string[]
135136
}
136137
let parsedDiagnostics: parsedDiagnostic[] = [];
@@ -141,19 +142,46 @@ export let parseCompilerLogOutput = (content: string, separator: string) => {
141142
parsedDiagnostics.push({
142143
code: undefined,
143144
severity: t.DiagnosticSeverity.Error,
145+
tag: undefined,
144146
content: []
145147
})
146148
} else if (line.startsWith(' Warning number ')) {
147-
let match = parseInt(line.slice(' Warning number '.length))
149+
let warningNumber = parseInt(line.slice(' Warning number '.length))
150+
let tag: t.DiagnosticTag | undefined = undefined
151+
switch (warningNumber) {
152+
case 11:
153+
case 20:
154+
case 26:
155+
case 27:
156+
case 32:
157+
case 33:
158+
case 34:
159+
case 35:
160+
case 36:
161+
case 37:
162+
case 38:
163+
case 39:
164+
case 60:
165+
case 66:
166+
case 67:
167+
case 101:
168+
tag = t.DiagnosticTag.Unnecessary
169+
break;
170+
case 3:
171+
tag = t.DiagnosticTag.Deprecated
172+
break;
173+
}
148174
parsedDiagnostics.push({
149-
code: Number.isNaN(match) ? undefined : match,
175+
code: Number.isNaN(warningNumber) ? undefined : warningNumber,
150176
severity: t.DiagnosticSeverity.Warning,
177+
tag: tag,
151178
content: []
152179
})
153180
} else if (line.startsWith(' Syntax error!')) {
154181
parsedDiagnostics.push({
155182
code: undefined,
156183
severity: t.DiagnosticSeverity.Error,
184+
tag: undefined,
157185
content: []
158186
})
159187
} else if (/^ [0-9]+ /.test(line)) {
@@ -183,12 +211,14 @@ export let parseCompilerLogOutput = (content: string, separator: string) => {
183211
.trim() + '\n';
184212
ret[file].push({
185213
severity: parsedDiagnostic.severity,
214+
tags: parsedDiagnostic.tag === undefined ? [] : [parsedDiagnostic.tag],
186215
code: parsedDiagnostic.code,
187216
range: parseDiagnosticLocation(location),
188217
source: "ReScript",
189218
message: cleanedUpDiagnostic,
190219
})
191220
})
192221

222+
console.log(ret, '=========')
193223
return ret
194224
}

0 commit comments

Comments
 (0)
Please sign in to comment.