@@ -8,6 +8,11 @@ import * as assert from 'assert';
88import { getDocUri , activate , runOnActivate } from './helper' ;
99import { toRange } from './util' ;
1010
11+ enum DiagnosticTag {
12+ Unnecessary = 1 ,
13+ Deprecated = 2
14+ }
15+
1116suite ( 'Should get module diagnostics' , ( ) => {
1217 test ( 'diagnostics.module.missingNameAttributeError' , async ( ) => {
1318 await testDiagnostics ( getDocUri ( 'DiagnosticsMissingAttributeModule.bas' ) , [
@@ -41,15 +46,15 @@ suite('Should get module diagnostics', () => {
4146 source : 'ex'
4247 } ,
4348 {
44- message : 'Unknown attribute \'VB_Creatable\' will be ignored .' ,
49+ message : 'Unknown attribute \'VB_Creatable\'.' ,
4550 range : toRange ( 3 , 0 , 3 , 30 ) ,
46- severity : vscode . DiagnosticSeverity . Warning ,
51+ severity : vscode . DiagnosticSeverity . Error ,
4752 source : 'ex'
4853 } ,
4954 {
50- message : 'Unknown attribute \'VB_Foo\' will be ignored .' ,
55+ message : 'Unknown attribute \'VB_Foo\'.' ,
5156 range : toRange ( 4 , 0 , 4 , 24 ) ,
52- severity : vscode . DiagnosticSeverity . Warning ,
57+ severity : vscode . DiagnosticSeverity . Error ,
5358 source : 'ex'
5459 } ,
5560 {
@@ -70,6 +75,27 @@ suite('Should get module diagnostics', () => {
7075 severity : vscode . DiagnosticSeverity . Error ,
7176 source : 'ex'
7277 } ,
78+ {
79+ message : 'Enum1 is declared but its value is never read.' ,
80+ range : toRange ( 29 , 4 , 29 , 9 ) ,
81+ severity : vscode . DiagnosticSeverity . Hint ,
82+ tags : [ DiagnosticTag . Unnecessary ] ,
83+ source : 'ex'
84+ } ,
85+ {
86+ message : 'Enum2 is declared but its value is never read.' ,
87+ range : toRange ( 30 , 4 , 30 , 9 ) ,
88+ severity : vscode . DiagnosticSeverity . Hint ,
89+ tags : [ DiagnosticTag . Unnecessary ] ,
90+ source : 'ex'
91+ } ,
92+ {
93+ message : 'Enum3 is declared but its value is never read.' ,
94+ range : toRange ( 31 , 4 , 31 , 9 ) ,
95+ severity : vscode . DiagnosticSeverity . Hint ,
96+ tags : [ DiagnosticTag . Unnecessary ] ,
97+ source : 'ex'
98+ } ,
7399 {
74100 message : 'Invalid syntax: InvalidSubCall(arg)' ,
75101 range : toRange ( 43 , 4 , 43 , 23 ) ,
@@ -119,15 +145,22 @@ suite('Should get class diagnostics', () => {
119145 source : 'ex'
120146 } ,
121147 {
122- message : 'Unknown attribute \'VB_Exxposed\' will be ignored .' ,
148+ message : 'Unknown attribute \'VB_Exxposed\'.' ,
123149 range : toRange ( 12 , 0 , 12 , 29 ) ,
124- severity : vscode . DiagnosticSeverity . Warning ,
150+ severity : vscode . DiagnosticSeverity . Error ,
125151 source : 'ex'
126152 } ,
127153 {
128- message : 'Unknown attribute \'VB_Exxposed\' will be ignored .' ,
154+ message : 'Unknown attribute \'VB_Exxposed\'.' ,
129155 range : toRange ( 13 , 0 , 13 , 29 ) ,
130- severity : vscode . DiagnosticSeverity . Warning ,
156+ severity : vscode . DiagnosticSeverity . Error ,
157+ source : 'ex'
158+ } ,
159+ {
160+ message : 'SmkfeiondFoo is declared but its value is never read.' ,
161+ range : toRange ( 17 , 11 , 17 , 23 ) ,
162+ severity : vscode . DiagnosticSeverity . Hint ,
163+ tags : [ DiagnosticTag . Unnecessary ] ,
131164 source : 'ex'
132165 } ,
133166 {
@@ -142,11 +175,46 @@ suite('Should get class diagnostics', () => {
142175 severity : vscode . DiagnosticSeverity . Error ,
143176 source : 'ex'
144177 } ,
178+ {
179+ message : 'GkiofseiFoo is declared but its value is never read.' ,
180+ range : toRange ( 25 , 4 , 25 , 15 ) ,
181+ severity : vscode . DiagnosticSeverity . Hint ,
182+ tags : [ DiagnosticTag . Unnecessary ] ,
183+ source : 'ex'
184+ } ,
145185 {
146186 message : 'Enum declarations cannot appear below a Sub, Function, or Property declaration.' ,
147187 range : toRange ( 37 , 7 , 41 , 8 ) ,
148188 severity : vscode . DiagnosticSeverity . Error ,
149189 source : 'ex'
190+ } ,
191+ {
192+ message : 'PewmfoiawFoo is declared but its value is never read.' ,
193+ range : toRange ( 37 , 12 , 37 , 24 ) ,
194+ severity : vscode . DiagnosticSeverity . Hint ,
195+ tags : [ DiagnosticTag . Unnecessary ] ,
196+ source : 'ex'
197+ } ,
198+ {
199+ message : 'Enum1 is declared but its value is never read.' ,
200+ range : toRange ( 38 , 4 , 38 , 9 ) ,
201+ severity : vscode . DiagnosticSeverity . Hint ,
202+ tags : [ DiagnosticTag . Unnecessary ] ,
203+ source : 'ex'
204+ } ,
205+ {
206+ message : 'Enum2 is declared but its value is never read.' ,
207+ range : toRange ( 39 , 4 , 39 , 9 ) ,
208+ severity : vscode . DiagnosticSeverity . Hint ,
209+ tags : [ DiagnosticTag . Unnecessary ] ,
210+ source : 'ex'
211+ } ,
212+ {
213+ message : 'Enum3 is declared but its value is never read.' ,
214+ range : toRange ( 40 , 4 , 40 , 9 ) ,
215+ severity : vscode . DiagnosticSeverity . Hint ,
216+ tags : [ DiagnosticTag . Unnecessary ] ,
217+ source : 'ex'
150218 }
151219 ] ) ;
152220 } ) ;
@@ -167,5 +235,6 @@ async function testDiagnostics(docUri: vscode.Uri, expectedDiagnostics: vscode.D
167235 assert . equal ( actualDiagnostic . message , expectedDiagnostic . message , `Message: expected '${ expectedDiagnostic . message } ' got '${ actualDiagnostic . message } '.` ) ;
168236 assert . deepEqual ( actualDiagnostic . range , expectedDiagnostic . range , `Range: expected '${ JSON . stringify ( expectedDiagnostic . range ) } ' got '${ JSON . stringify ( actualDiagnostic . range ) } '.` ) ;
169237 assert . equal ( actualDiagnostic . severity , expectedDiagnostic . severity , `Severity: expected '${ expectedDiagnostic . severity } ' got '${ actualDiagnostic . severity } '.` ) ;
238+ assert . deepEqual ( actualDiagnostic . tags , expectedDiagnostic . tags , `Tags: expected '${ JSON . stringify ( expectedDiagnostic . tags ) } ' got '${ JSON . stringify ( actualDiagnostic . tags ) } '.` ) ;
170239 } ) ;
171240}
0 commit comments