@@ -131,6 +131,7 @@ export let parseCompilerLogOutput = (content: string, separator: string) => {
131
131
type parsedDiagnostic = {
132
132
code : number | undefined ,
133
133
severity : t . DiagnosticSeverity ,
134
+ tag : t . DiagnosticTag | undefined ,
134
135
content : string [ ]
135
136
}
136
137
let parsedDiagnostics : parsedDiagnostic [ ] = [ ] ;
@@ -141,19 +142,46 @@ export let parseCompilerLogOutput = (content: string, separator: string) => {
141
142
parsedDiagnostics . push ( {
142
143
code : undefined ,
143
144
severity : t . DiagnosticSeverity . Error ,
145
+ tag : undefined ,
144
146
content : [ ]
145
147
} )
146
148
} 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
+ }
148
174
parsedDiagnostics . push ( {
149
- code : Number . isNaN ( match ) ? undefined : match ,
175
+ code : Number . isNaN ( warningNumber ) ? undefined : warningNumber ,
150
176
severity : t . DiagnosticSeverity . Warning ,
177
+ tag : tag ,
151
178
content : [ ]
152
179
} )
153
180
} else if ( line . startsWith ( ' Syntax error!' ) ) {
154
181
parsedDiagnostics . push ( {
155
182
code : undefined ,
156
183
severity : t . DiagnosticSeverity . Error ,
184
+ tag : undefined ,
157
185
content : [ ]
158
186
} )
159
187
} else if ( / ^ [ 0 - 9 ] + / . test ( line ) ) {
@@ -183,12 +211,14 @@ export let parseCompilerLogOutput = (content: string, separator: string) => {
183
211
. trim ( ) + '\n' ;
184
212
ret [ file ] . push ( {
185
213
severity : parsedDiagnostic . severity ,
214
+ tags : parsedDiagnostic . tag === undefined ? [ ] : [ parsedDiagnostic . tag ] ,
186
215
code : parsedDiagnostic . code ,
187
216
range : parseDiagnosticLocation ( location ) ,
188
217
source : "ReScript" ,
189
218
message : cleanedUpDiagnostic ,
190
219
} )
191
220
} )
192
221
222
+ console . log ( ret , '=========' )
193
223
return ret
194
224
}
0 commit comments