brighterscript 0.72.0 → 0.72.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/bsconfig.schema.json +62 -0
  2. package/dist/BsConfig.d.ts +56 -1
  3. package/dist/CommentFlagProcessor.d.ts +16 -12
  4. package/dist/CommentFlagProcessor.js +141 -59
  5. package/dist/CommentFlagProcessor.js.map +1 -1
  6. package/dist/DiagnosticMessages.d.ts +27 -1
  7. package/dist/DiagnosticMessages.js +32 -2
  8. package/dist/DiagnosticMessages.js.map +1 -1
  9. package/dist/Program.d.ts +4 -0
  10. package/dist/Program.js +2 -0
  11. package/dist/Program.js.map +1 -1
  12. package/dist/ProgramBuilder.d.ts +1 -8
  13. package/dist/ProgramBuilder.js +31 -11
  14. package/dist/ProgramBuilder.js.map +1 -1
  15. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +38 -0
  16. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +257 -14
  17. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  18. package/dist/bscPlugin/validation/BrsFileValidator.js +13 -0
  19. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  20. package/dist/cli.js +13 -0
  21. package/dist/cli.js.map +1 -1
  22. package/dist/diagnosticUtils.d.ts +51 -1
  23. package/dist/diagnosticUtils.js +222 -1
  24. package/dist/diagnosticUtils.js.map +1 -1
  25. package/dist/files/BrsFile.js +4 -2
  26. package/dist/files/BrsFile.js.map +1 -1
  27. package/dist/files/XmlFile.js +2 -1
  28. package/dist/files/XmlFile.js.map +1 -1
  29. package/dist/interfaces.d.ts +15 -1
  30. package/dist/lexer/TokenKind.d.ts +8 -0
  31. package/dist/lexer/TokenKind.js +21 -1
  32. package/dist/lexer/TokenKind.js.map +1 -1
  33. package/dist/lsp/LspProject.d.ts +19 -0
  34. package/dist/lsp/Project.d.ts +14 -0
  35. package/dist/lsp/Project.js +9 -1
  36. package/dist/lsp/Project.js.map +1 -1
  37. package/dist/lsp/ProjectManager.js +15 -1
  38. package/dist/lsp/ProjectManager.js.map +1 -1
  39. package/dist/lsp/worker/WorkerThreadProject.d.ts +14 -0
  40. package/dist/lsp/worker/WorkerThreadProject.js +7 -0
  41. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -1
  42. package/dist/parser/Parser.d.ts +13 -1
  43. package/dist/parser/Parser.js +40 -14
  44. package/dist/parser/Parser.js.map +1 -1
  45. package/dist/util.js +20 -9
  46. package/dist/util.js.map +1 -1
  47. package/package.json +17 -14
  48. package/dist/astUtils/AstEditor.spec.d.ts +0 -1
  49. package/dist/astUtils/AstEditor.spec.js +0 -254
  50. package/dist/astUtils/AstEditor.spec.js.map +0 -1
  51. package/dist/astUtils/creators.spec.d.ts +0 -1
  52. package/dist/astUtils/creators.spec.js +0 -21
  53. package/dist/astUtils/creators.spec.js.map +0 -1
  54. package/dist/astUtils/reflection.spec.d.ts +0 -1
  55. package/dist/astUtils/reflection.spec.js +0 -308
  56. package/dist/astUtils/reflection.spec.js.map +0 -1
  57. package/dist/astUtils/stackedVisitor.spec.d.ts +0 -1
  58. package/dist/astUtils/stackedVisitor.spec.js +0 -79
  59. package/dist/astUtils/stackedVisitor.spec.js.map +0 -1
  60. package/dist/astUtils/visitors.spec.d.ts +0 -1
  61. package/dist/astUtils/visitors.spec.js +0 -1197
  62. package/dist/astUtils/visitors.spec.js.map +0 -1
  63. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.d.ts +0 -1
  64. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +0 -887
  65. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +0 -1
  66. package/dist/bscPlugin/definition/DefinitionProvider.spec.d.ts +0 -1
  67. package/dist/bscPlugin/definition/DefinitionProvider.spec.js +0 -171
  68. package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +0 -1
  69. package/dist/bscPlugin/hover/HoverProcessor.spec.d.ts +0 -1
  70. package/dist/bscPlugin/hover/HoverProcessor.spec.js +0 -201
  71. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +0 -1
  72. package/dist/bscPlugin/references/ReferencesProvider.spec.d.ts +0 -1
  73. package/dist/bscPlugin/references/ReferencesProvider.spec.js +0 -51
  74. package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +0 -1
  75. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.spec.d.ts +0 -1
  76. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.spec.js +0 -298
  77. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.spec.js.map +0 -1
  78. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.d.ts +0 -1
  79. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +0 -399
  80. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +0 -1
  81. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.d.ts +0 -1
  82. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js +0 -290
  83. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js.map +0 -1
  84. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.d.ts +0 -1
  85. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js +0 -245
  86. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js.map +0 -1
  87. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.d.ts +0 -1
  88. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +0 -46
  89. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +0 -1
  90. package/dist/bscPlugin/validation/BrsFileValidator.spec.d.ts +0 -1
  91. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +0 -487
  92. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +0 -1
  93. package/dist/common/Sequencer.spec.d.ts +0 -1
  94. package/dist/common/Sequencer.spec.js +0 -75
  95. package/dist/common/Sequencer.spec.js.map +0 -1
  96. package/dist/files/BrsFile.Class.spec.d.ts +0 -1
  97. package/dist/files/BrsFile.Class.spec.js +0 -1805
  98. package/dist/files/BrsFile.Class.spec.js.map +0 -1
  99. package/dist/files/BrsFile.spec.d.ts +0 -1
  100. package/dist/files/BrsFile.spec.js +0 -4420
  101. package/dist/files/BrsFile.spec.js.map +0 -1
  102. package/dist/files/XmlFile.spec.d.ts +0 -1
  103. package/dist/files/XmlFile.spec.js +0 -1169
  104. package/dist/files/XmlFile.spec.js.map +0 -1
  105. package/dist/files/tests/imports.spec.d.ts +0 -1
  106. package/dist/files/tests/imports.spec.js +0 -241
  107. package/dist/files/tests/imports.spec.js.map +0 -1
  108. package/dist/files/tests/optionalChaning.spec.d.ts +0 -1
  109. package/dist/files/tests/optionalChaning.spec.js +0 -152
  110. package/dist/files/tests/optionalChaning.spec.js.map +0 -1
  111. package/dist/lexer/Character.spec.d.ts +0 -1
  112. package/dist/lexer/Character.spec.js +0 -27
  113. package/dist/lexer/Character.spec.js.map +0 -1
  114. package/dist/lexer/Lexer.spec.d.ts +0 -1
  115. package/dist/lexer/Lexer.spec.js +0 -1300
  116. package/dist/lexer/Lexer.spec.js.map +0 -1
  117. package/dist/lsp/ActionQueue.spec.d.ts +0 -1
  118. package/dist/lsp/ActionQueue.spec.js +0 -80
  119. package/dist/lsp/ActionQueue.spec.js.map +0 -1
  120. package/dist/lsp/DocumentManager.spec.d.ts +0 -1
  121. package/dist/lsp/DocumentManager.spec.js +0 -103
  122. package/dist/lsp/DocumentManager.spec.js.map +0 -1
  123. package/dist/lsp/PathFilterer.spec.d.ts +0 -1
  124. package/dist/lsp/PathFilterer.spec.js +0 -182
  125. package/dist/lsp/PathFilterer.spec.js.map +0 -1
  126. package/dist/lsp/Project.spec.d.ts +0 -1
  127. package/dist/lsp/Project.spec.js +0 -400
  128. package/dist/lsp/Project.spec.js.map +0 -1
  129. package/dist/lsp/ProjectManager.spec.d.ts +0 -1
  130. package/dist/lsp/ProjectManager.spec.js +0 -1147
  131. package/dist/lsp/ProjectManager.spec.js.map +0 -1
  132. package/dist/lsp/worker/MessageHandler.spec.d.ts +0 -1
  133. package/dist/lsp/worker/MessageHandler.spec.js +0 -64
  134. package/dist/lsp/worker/MessageHandler.spec.js.map +0 -1
  135. package/dist/lsp/worker/WorkerPool.spec.d.ts +0 -1
  136. package/dist/lsp/worker/WorkerPool.spec.js +0 -59
  137. package/dist/lsp/worker/WorkerPool.spec.js.map +0 -1
  138. package/dist/lsp/worker/WorkerThreadProject.spec.d.ts +0 -2
  139. package/dist/lsp/worker/WorkerThreadProject.spec.js +0 -72
  140. package/dist/lsp/worker/WorkerThreadProject.spec.js.map +0 -1
  141. package/dist/parser/AstNode.spec.d.ts +0 -1
  142. package/dist/parser/AstNode.spec.js +0 -1452
  143. package/dist/parser/AstNode.spec.js.map +0 -1
  144. package/dist/parser/Expression.spec.d.ts +0 -1
  145. package/dist/parser/Expression.spec.js +0 -40
  146. package/dist/parser/Expression.spec.js.map +0 -1
  147. package/dist/parser/Parser.Class.spec.d.ts +0 -1
  148. package/dist/parser/Parser.Class.spec.js +0 -495
  149. package/dist/parser/Parser.Class.spec.js.map +0 -1
  150. package/dist/parser/Parser.spec.d.ts +0 -4
  151. package/dist/parser/Parser.spec.js +0 -1857
  152. package/dist/parser/Parser.spec.js.map +0 -1
  153. package/dist/parser/SGParser.spec.d.ts +0 -1
  154. package/dist/parser/SGParser.spec.js +0 -131
  155. package/dist/parser/SGParser.spec.js.map +0 -1
  156. package/dist/parser/Statement.spec.d.ts +0 -1
  157. package/dist/parser/Statement.spec.js +0 -118
  158. package/dist/parser/Statement.spec.js.map +0 -1
  159. package/dist/parser/tests/Parser.spec.d.ts +0 -19
  160. package/dist/parser/tests/Parser.spec.js +0 -38
  161. package/dist/parser/tests/Parser.spec.js.map +0 -1
  162. package/dist/parser/tests/controlFlow/For.spec.d.ts +0 -1
  163. package/dist/parser/tests/controlFlow/For.spec.js +0 -161
  164. package/dist/parser/tests/controlFlow/For.spec.js.map +0 -1
  165. package/dist/parser/tests/controlFlow/ForEach.spec.d.ts +0 -1
  166. package/dist/parser/tests/controlFlow/ForEach.spec.js +0 -106
  167. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +0 -1
  168. package/dist/parser/tests/controlFlow/If.spec.d.ts +0 -1
  169. package/dist/parser/tests/controlFlow/If.spec.js +0 -570
  170. package/dist/parser/tests/controlFlow/If.spec.js.map +0 -1
  171. package/dist/parser/tests/controlFlow/While.spec.d.ts +0 -1
  172. package/dist/parser/tests/controlFlow/While.spec.js +0 -107
  173. package/dist/parser/tests/controlFlow/While.spec.js.map +0 -1
  174. package/dist/parser/tests/expression/Additive.spec.d.ts +0 -1
  175. package/dist/parser/tests/expression/Additive.spec.js +0 -99
  176. package/dist/parser/tests/expression/Additive.spec.js.map +0 -1
  177. package/dist/parser/tests/expression/ArrayLiterals.spec.d.ts +0 -1
  178. package/dist/parser/tests/expression/ArrayLiterals.spec.js +0 -291
  179. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +0 -1
  180. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.d.ts +0 -1
  181. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +0 -401
  182. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +0 -1
  183. package/dist/parser/tests/expression/Boolean.spec.d.ts +0 -1
  184. package/dist/parser/tests/expression/Boolean.spec.js +0 -83
  185. package/dist/parser/tests/expression/Boolean.spec.js.map +0 -1
  186. package/dist/parser/tests/expression/Call.spec.d.ts +0 -1
  187. package/dist/parser/tests/expression/Call.spec.js +0 -242
  188. package/dist/parser/tests/expression/Call.spec.js.map +0 -1
  189. package/dist/parser/tests/expression/Exponential.spec.d.ts +0 -1
  190. package/dist/parser/tests/expression/Exponential.spec.js +0 -37
  191. package/dist/parser/tests/expression/Exponential.spec.js.map +0 -1
  192. package/dist/parser/tests/expression/Function.spec.d.ts +0 -1
  193. package/dist/parser/tests/expression/Function.spec.js +0 -403
  194. package/dist/parser/tests/expression/Function.spec.js.map +0 -1
  195. package/dist/parser/tests/expression/Indexing.spec.d.ts +0 -1
  196. package/dist/parser/tests/expression/Indexing.spec.js +0 -289
  197. package/dist/parser/tests/expression/Indexing.spec.js.map +0 -1
  198. package/dist/parser/tests/expression/Multiplicative.spec.d.ts +0 -1
  199. package/dist/parser/tests/expression/Multiplicative.spec.js +0 -67
  200. package/dist/parser/tests/expression/Multiplicative.spec.js.map +0 -1
  201. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.d.ts +0 -1
  202. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +0 -346
  203. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +0 -1
  204. package/dist/parser/tests/expression/PrefixUnary.spec.d.ts +0 -1
  205. package/dist/parser/tests/expression/PrefixUnary.spec.js +0 -105
  206. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +0 -1
  207. package/dist/parser/tests/expression/Primary.spec.d.ts +0 -1
  208. package/dist/parser/tests/expression/Primary.spec.js +0 -149
  209. package/dist/parser/tests/expression/Primary.spec.js.map +0 -1
  210. package/dist/parser/tests/expression/RegexLiteralExpression.spec.d.ts +0 -1
  211. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +0 -171
  212. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +0 -1
  213. package/dist/parser/tests/expression/Relational.spec.d.ts +0 -1
  214. package/dist/parser/tests/expression/Relational.spec.js +0 -83
  215. package/dist/parser/tests/expression/Relational.spec.js.map +0 -1
  216. package/dist/parser/tests/expression/SourceLiteralExpression.spec.d.ts +0 -1
  217. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +0 -201
  218. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +0 -1
  219. package/dist/parser/tests/expression/TemplateStringExpression.spec.d.ts +0 -1
  220. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +0 -389
  221. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +0 -1
  222. package/dist/parser/tests/expression/TernaryExpression.spec.d.ts +0 -1
  223. package/dist/parser/tests/expression/TernaryExpression.spec.js +0 -876
  224. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +0 -1
  225. package/dist/parser/tests/expression/UnaryExpression.spec.d.ts +0 -1
  226. package/dist/parser/tests/expression/UnaryExpression.spec.js +0 -52
  227. package/dist/parser/tests/expression/UnaryExpression.spec.js.map +0 -1
  228. package/dist/parser/tests/statement/AssignmentOperators.spec.d.ts +0 -1
  229. package/dist/parser/tests/statement/AssignmentOperators.spec.js +0 -79
  230. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +0 -1
  231. package/dist/parser/tests/statement/ConstStatement.spec.d.ts +0 -1
  232. package/dist/parser/tests/statement/ConstStatement.spec.js +0 -708
  233. package/dist/parser/tests/statement/ConstStatement.spec.js.map +0 -1
  234. package/dist/parser/tests/statement/Continue.spec.d.ts +0 -1
  235. package/dist/parser/tests/statement/Continue.spec.js +0 -119
  236. package/dist/parser/tests/statement/Continue.spec.js.map +0 -1
  237. package/dist/parser/tests/statement/Declaration.spec.d.ts +0 -1
  238. package/dist/parser/tests/statement/Declaration.spec.js +0 -108
  239. package/dist/parser/tests/statement/Declaration.spec.js.map +0 -1
  240. package/dist/parser/tests/statement/Dim.spec.d.ts +0 -1
  241. package/dist/parser/tests/statement/Dim.spec.js +0 -73
  242. package/dist/parser/tests/statement/Dim.spec.js.map +0 -1
  243. package/dist/parser/tests/statement/Enum.spec.d.ts +0 -1
  244. package/dist/parser/tests/statement/Enum.spec.js +0 -1307
  245. package/dist/parser/tests/statement/Enum.spec.js.map +0 -1
  246. package/dist/parser/tests/statement/For.spec.d.ts +0 -1
  247. package/dist/parser/tests/statement/For.spec.js +0 -45
  248. package/dist/parser/tests/statement/For.spec.js.map +0 -1
  249. package/dist/parser/tests/statement/ForEach.spec.d.ts +0 -1
  250. package/dist/parser/tests/statement/ForEach.spec.js +0 -36
  251. package/dist/parser/tests/statement/ForEach.spec.js.map +0 -1
  252. package/dist/parser/tests/statement/Function.spec.d.ts +0 -1
  253. package/dist/parser/tests/statement/Function.spec.js +0 -342
  254. package/dist/parser/tests/statement/Function.spec.js.map +0 -1
  255. package/dist/parser/tests/statement/Goto.spec.d.ts +0 -1
  256. package/dist/parser/tests/statement/Goto.spec.js +0 -51
  257. package/dist/parser/tests/statement/Goto.spec.js.map +0 -1
  258. package/dist/parser/tests/statement/Increment.spec.d.ts +0 -1
  259. package/dist/parser/tests/statement/Increment.spec.js +0 -117
  260. package/dist/parser/tests/statement/Increment.spec.js.map +0 -1
  261. package/dist/parser/tests/statement/InterfaceStatement.spec.d.ts +0 -1
  262. package/dist/parser/tests/statement/InterfaceStatement.spec.js +0 -102
  263. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +0 -1
  264. package/dist/parser/tests/statement/LibraryStatement.spec.d.ts +0 -1
  265. package/dist/parser/tests/statement/LibraryStatement.spec.js +0 -74
  266. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +0 -1
  267. package/dist/parser/tests/statement/Misc.spec.d.ts +0 -1
  268. package/dist/parser/tests/statement/Misc.spec.js +0 -335
  269. package/dist/parser/tests/statement/Misc.spec.js.map +0 -1
  270. package/dist/parser/tests/statement/PrintStatement.spec.d.ts +0 -1
  271. package/dist/parser/tests/statement/PrintStatement.spec.js +0 -195
  272. package/dist/parser/tests/statement/PrintStatement.spec.js.map +0 -1
  273. package/dist/parser/tests/statement/ReturnStatement.spec.d.ts +0 -1
  274. package/dist/parser/tests/statement/ReturnStatement.spec.js +0 -94
  275. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +0 -1
  276. package/dist/parser/tests/statement/Set.spec.d.ts +0 -1
  277. package/dist/parser/tests/statement/Set.spec.js +0 -218
  278. package/dist/parser/tests/statement/Set.spec.js.map +0 -1
  279. package/dist/parser/tests/statement/Stop.spec.d.ts +0 -1
  280. package/dist/parser/tests/statement/Stop.spec.js +0 -38
  281. package/dist/parser/tests/statement/Stop.spec.js.map +0 -1
  282. package/dist/parser/tests/statement/Throw.spec.d.ts +0 -1
  283. package/dist/parser/tests/statement/Throw.spec.js +0 -35
  284. package/dist/parser/tests/statement/Throw.spec.js.map +0 -1
  285. package/dist/parser/tests/statement/TryCatch.spec.d.ts +0 -1
  286. package/dist/parser/tests/statement/TryCatch.spec.js +0 -142
  287. package/dist/parser/tests/statement/TryCatch.spec.js.map +0 -1
  288. package/dist/preprocessor/Manifest.spec.d.ts +0 -1
  289. package/dist/preprocessor/Manifest.spec.js +0 -80
  290. package/dist/preprocessor/Manifest.spec.js.map +0 -1
  291. package/dist/preprocessor/Preprocessor.spec.d.ts +0 -1
  292. package/dist/preprocessor/Preprocessor.spec.js +0 -152
  293. package/dist/preprocessor/Preprocessor.spec.js.map +0 -1
  294. package/dist/preprocessor/PreprocessorParser.spec.d.ts +0 -1
  295. package/dist/preprocessor/PreprocessorParser.spec.js +0 -116
  296. package/dist/preprocessor/PreprocessorParser.spec.js.map +0 -1
  297. package/dist/types/ArrayType.spec.d.ts +0 -1
  298. package/dist/types/ArrayType.spec.js +0 -30
  299. package/dist/types/ArrayType.spec.js.map +0 -1
  300. package/dist/types/BooleanType.spec.d.ts +0 -1
  301. package/dist/types/BooleanType.spec.js +0 -12
  302. package/dist/types/BooleanType.spec.js.map +0 -1
  303. package/dist/types/DoubleType.spec.d.ts +0 -1
  304. package/dist/types/DoubleType.spec.js +0 -12
  305. package/dist/types/DoubleType.spec.js.map +0 -1
  306. package/dist/types/DynamicType.spec.d.ts +0 -1
  307. package/dist/types/DynamicType.spec.js +0 -12
  308. package/dist/types/DynamicType.spec.js.map +0 -1
  309. package/dist/types/FloatType.spec.d.ts +0 -1
  310. package/dist/types/FloatType.spec.js +0 -12
  311. package/dist/types/FloatType.spec.js.map +0 -1
  312. package/dist/types/FunctionType.spec.d.ts +0 -1
  313. package/dist/types/FunctionType.spec.js +0 -23
  314. package/dist/types/FunctionType.spec.js.map +0 -1
  315. package/dist/types/IntegerType.spec.d.ts +0 -1
  316. package/dist/types/IntegerType.spec.js +0 -12
  317. package/dist/types/IntegerType.spec.js.map +0 -1
  318. package/dist/types/InterfaceType.spec.d.ts +0 -1
  319. package/dist/types/InterfaceType.spec.js +0 -175
  320. package/dist/types/InterfaceType.spec.js.map +0 -1
  321. package/dist/types/InvalidType.spec.d.ts +0 -1
  322. package/dist/types/InvalidType.spec.js +0 -12
  323. package/dist/types/InvalidType.spec.js.map +0 -1
  324. package/dist/types/LongIntegerType.spec.d.ts +0 -1
  325. package/dist/types/LongIntegerType.spec.js +0 -12
  326. package/dist/types/LongIntegerType.spec.js.map +0 -1
  327. package/dist/types/ObjectType.spec.d.ts +0 -1
  328. package/dist/types/ObjectType.spec.js +0 -12
  329. package/dist/types/ObjectType.spec.js.map +0 -1
  330. package/dist/types/StringType.spec.d.ts +0 -1
  331. package/dist/types/StringType.spec.js +0 -12
  332. package/dist/types/StringType.spec.js.map +0 -1
  333. package/dist/types/VoidType.spec.d.ts +0 -1
  334. package/dist/types/VoidType.spec.js +0 -12
  335. package/dist/types/VoidType.spec.js.map +0 -1
@@ -8,6 +8,53 @@
8
8
  "password"
9
9
  ]
10
10
  },
11
+ "definitions": {
12
+ "diagnosticReporterValue": {
13
+ "oneOf": [
14
+ {
15
+ "type": "string",
16
+ "description": "Either a preset name ('detailed' or 'github-actions') or a custom template string containing at least one known placeholder."
17
+ },
18
+ {
19
+ "type": "object",
20
+ "required": ["type"],
21
+ "properties": {
22
+ "type": {
23
+ "type": "string",
24
+ "enum": ["detailed"]
25
+ }
26
+ },
27
+ "additionalProperties": false
28
+ },
29
+ {
30
+ "type": "object",
31
+ "required": ["type"],
32
+ "properties": {
33
+ "type": {
34
+ "type": "string",
35
+ "enum": ["github-actions"]
36
+ }
37
+ },
38
+ "additionalProperties": false
39
+ },
40
+ {
41
+ "type": "object",
42
+ "required": ["type", "format"],
43
+ "properties": {
44
+ "type": {
45
+ "type": "string",
46
+ "enum": ["custom"]
47
+ },
48
+ "format": {
49
+ "type": "string",
50
+ "description": "Template string. Supported placeholders: {file}, {line}, {col}, {endLine}, {endCol}, {severity}, {severityCode}, {code}, {message}, {source}."
51
+ }
52
+ },
53
+ "additionalProperties": false
54
+ }
55
+ ]
56
+ }
57
+ },
11
58
  "properties": {
12
59
  "extends": {
13
60
  "description": "Relative or absolute path to another bsconfig.json file that this file should use as a base and then override. Prefix with a question mark (?) to prevent throwing an exception if the file does not exist.",
@@ -300,6 +347,21 @@
300
347
  "error"
301
348
  ]
302
349
  },
350
+ "diagnosticReporters": {
351
+ "description": "Specify how diagnostics are reported to the console. Accepts a single value or an array; each diagnostic is rendered once per entry. Each value is either a preset name ('detailed', 'github-actions'), a custom template string containing at least one known placeholder ({file}, {line}, {col}, {endLine}, {endCol}, {severity}, {severityCode}, {code}, {message}, {source}), or an object with explicit `type`. Defaults to 'detailed'.",
352
+ "default": "detailed",
353
+ "oneOf": [
354
+ {
355
+ "$ref": "#/definitions/diagnosticReporterValue"
356
+ },
357
+ {
358
+ "type": "array",
359
+ "items": {
360
+ "$ref": "#/definitions/diagnosticReporterValue"
361
+ }
362
+ }
363
+ ]
364
+ },
303
365
  "allowBrighterScriptInBrightScript": {
304
366
  "description": "Allow brighterscript features (classes, interfaces, etc...) to be included in BrightScript (`.brs`) files, and force those files to be transpiled.",
305
367
  "type": "boolean",
@@ -129,6 +129,28 @@ export interface BsConfig {
129
129
  * Specify what diagnostic types should be printed to the console. Defaults to 'warn'
130
130
  */
131
131
  diagnosticLevel?: 'info' | 'hint' | 'warn' | 'error';
132
+ /**
133
+ * Specify how diagnostics should be reported to the console.
134
+ * Accepts a single value or an array. When given an array, each diagnostic is rendered
135
+ * once per entry (so you can, for example, get both detailed terminal output and
136
+ * github-actions PR annotations from a single run).
137
+ *
138
+ * Each value may be a preset name ('detailed', 'github-actions'), a custom template string
139
+ * (any string containing a `{` placeholder), or an object with explicit `type`.
140
+ *
141
+ * Custom templates support the following placeholders, replaced per diagnostic:
142
+ * {file}, {line}, {col}, {endLine}, {endCol}, {severity}, {code}, {message}, {source}
143
+ *
144
+ * Examples:
145
+ * "detailed"
146
+ * "github-actions"
147
+ * "{file}:{line}:{col} {severity} {code}: {message}"
148
+ * { type: "custom", format: "{file}:{line}: {message}" }
149
+ * ["detailed", "github-actions"]
150
+ *
151
+ * @default "detailed"
152
+ */
153
+ diagnosticReporters?: DiagnosticReporter | DiagnosticReporter[];
132
154
  /**
133
155
  * A list of scripts or modules to add extra diagnostics or transform the AST
134
156
  */
@@ -221,7 +243,40 @@ export interface BsConfig {
221
243
  * Should be a semver-compatible string (e.g. "11.0.0").
222
244
  */
223
245
  minFirmwareVersion?: string;
246
+ /**
247
+ * When set to false, validation is skipped entirely. This can speed up builds when diagnostics
248
+ * are not needed (e.g. when using the VSCode extension which already surfaces diagnostics in the
249
+ * editor). Note that skipping validation may cause transpilation to fail or produce incorrect
250
+ * output if the project contains errors that would normally be caught during validation.
251
+ * @default true
252
+ */
253
+ validate?: boolean;
224
254
  }
225
- declare type OptionalBsConfigFields = '_ancestors' | 'sourceRoot' | 'project' | 'manifest' | 'noProject' | 'extends' | 'host' | 'password' | 'require' | 'stagingFolderPath' | 'diagnosticLevel' | 'rootDir' | 'stagingDir' | 'minFirmwareVersion';
255
+ /**
256
+ * Discriminated union describing how diagnostics are rendered to the console.
257
+ * - String shorthand: a preset name ('detailed' | 'github-actions') or a template string
258
+ * (any string containing a `{` is treated as a custom template).
259
+ * - Object form: explicit `type` so config files can stay strictly typed.
260
+ */
261
+ export declare type DiagnosticReporter = 'detailed' | 'github-actions' | (string & {}) | {
262
+ type: 'detailed';
263
+ } | {
264
+ type: 'github-actions';
265
+ } | {
266
+ type: 'custom';
267
+ format: string;
268
+ };
269
+ /**
270
+ * Object form of `DiagnosticReporter` after string shorthand has been resolved.
271
+ */
272
+ export declare type NormalizedDiagnosticReporter = {
273
+ type: 'detailed';
274
+ } | {
275
+ type: 'github-actions';
276
+ } | {
277
+ type: 'custom';
278
+ format: string;
279
+ };
280
+ declare type OptionalBsConfigFields = '_ancestors' | 'sourceRoot' | 'project' | 'manifest' | 'noProject' | 'extends' | 'host' | 'password' | 'require' | 'stagingFolderPath' | 'diagnosticLevel' | 'rootDir' | 'stagingDir' | 'minFirmwareVersion' | 'diagnosticReporters';
226
281
  export declare type FinalizedBsConfig = Omit<Required<BsConfig>, OptionalBsConfigFields> & Pick<BsConfig, OptionalBsConfigFields>;
227
282
  export {};
@@ -13,10 +13,6 @@ export declare class CommentFlagProcessor {
13
13
  * Valid diagnostic codes. Codes NOT in this list will be flagged
14
14
  */
15
15
  diagnosticCodes: DiagnosticCode[];
16
- /**
17
- * Diagnostic codes to never filter (these codes will always be flagged)
18
- */
19
- ignoreDiagnosticCodes: DiagnosticCode[];
20
16
  constructor(
21
17
  /**
22
18
  * The file this processor applies to
@@ -29,11 +25,7 @@ export declare class CommentFlagProcessor {
29
25
  /**
30
26
  * Valid diagnostic codes. Codes NOT in this list will be flagged
31
27
  */
32
- diagnosticCodes?: DiagnosticCode[],
33
- /**
34
- * Diagnostic codes to never filter (these codes will always be flagged)
35
- */
36
- ignoreDiagnosticCodes?: DiagnosticCode[]);
28
+ diagnosticCodes?: DiagnosticCode[]);
37
29
  /**
38
30
  * List of comment flags generated during processing
39
31
  */
@@ -43,12 +35,24 @@ export declare class CommentFlagProcessor {
43
35
  */
44
36
  diagnostics: BsDiagnostic[];
45
37
  /**
46
- * A list of all codes EXCEPT the ones in `ignoreDiagnosticCodes`
38
+ * Block-level `bs:disable` / `bs:enable` directives, recorded in source order
39
+ * by `tryAdd` and resolved into `CommentFlag`s by `finalize()`.
47
40
  */
48
- allCodesExceptIgnores: DiagnosticCode[];
41
+ private blockDirectives;
49
42
  tryAdd(text: string, range: Range): void;
50
43
  /**
51
- * Small tokenizer for bs:disable comments
44
+ * Resolve any pending `bs:disable` / `bs:enable` block directives into `CommentFlag`s.
45
+ * Must be called after the file's comment tokens have been fed through `tryAdd`.
46
+ */
47
+ finalize(): void;
48
+ /**
49
+ * Resolve a list of `{ code, range }` tokens into validated diagnostic codes.
50
+ * Pushes diagnostics for any unknown numeric codes. Returns `null` when no codes were specified
51
+ * (i.e. a bare `bs:disable` / `bs:enable`), and an array otherwise.
52
+ */
53
+ private collectCodes;
54
+ /**
55
+ * Small tokenizer for `bs:` directive comments.
52
56
  */
53
57
  private tokenize;
54
58
  /**
@@ -16,15 +16,10 @@ class CommentFlagProcessor {
16
16
  /**
17
17
  * Valid diagnostic codes. Codes NOT in this list will be flagged
18
18
  */
19
- diagnosticCodes = [],
20
- /**
21
- * Diagnostic codes to never filter (these codes will always be flagged)
22
- */
23
- ignoreDiagnosticCodes = []) {
19
+ diagnosticCodes = []) {
24
20
  this.file = file;
25
21
  this.commentStarters = commentStarters;
26
22
  this.diagnosticCodes = diagnosticCodes;
27
- this.ignoreDiagnosticCodes = ignoreDiagnosticCodes;
28
23
  /**
29
24
  * List of comment flags generated during processing
30
25
  */
@@ -33,73 +28,149 @@ class CommentFlagProcessor {
33
28
  * List of diagnostics generated during processing
34
29
  */
35
30
  this.diagnostics = [];
36
- this.allCodesExceptIgnores = this.diagnosticCodes.filter(x => !this.ignoreDiagnosticCodes.includes(x));
31
+ /**
32
+ * Block-level `bs:disable` / `bs:enable` directives, recorded in source order
33
+ * by `tryAdd` and resolved into `CommentFlag`s by `finalize()`.
34
+ */
35
+ this.blockDirectives = [];
37
36
  }
38
37
  tryAdd(text, range) {
39
- var _a, _b;
40
38
  const tokenized = this.tokenize(text, range);
41
39
  if (!tokenized) {
42
40
  return;
43
41
  }
44
- let affectedRange;
45
- if (tokenized.disableType === 'line') {
46
- affectedRange = util_1.util.createRange(range.start.line, 0, range.start.line, range.start.character);
47
- }
48
- else {
49
- // tokenized.disableType must be 'next-line'
50
- affectedRange = util_1.util.createRange(range.start.line + 1, 0, range.start.line + 1, Number.MAX_SAFE_INTEGER);
42
+ //queue block directives with their raw code tokens; finalize() validates and resolves them
43
+ if (tokenized.directive === 'disable' || tokenized.directive === 'enable') {
44
+ this.blockDirectives.push({
45
+ kind: tokenized.directive,
46
+ rawCodes: tokenized.codes,
47
+ range: range
48
+ });
49
+ return;
51
50
  }
52
- let commentFlag = null;
53
- //statement to disable EVERYTHING
51
+ //line-level directives emit a flag inline
52
+ const affectedRange = tokenized.directive === 'line'
53
+ ? util_1.util.createRange(range.start.line, 0, range.start.line, range.start.character)
54
+ : util_1.util.createRange(range.start.line + 1, 0, range.start.line + 1, Number.MAX_SAFE_INTEGER);
54
55
  if (tokenized.codes.length === 0) {
55
- commentFlag = {
56
+ //bare `bs:disable-line` / `bs:disable-next-line` suppresses everything
57
+ this.commentFlags.push({
56
58
  file: this.file,
57
- //null means all codes
58
59
  codes: null,
59
60
  range: range,
60
61
  affectedRange: affectedRange
61
- };
62
- //disable specific diagnostic codes
62
+ });
63
+ return;
63
64
  }
64
- else {
65
- let codes = [];
66
- for (let codeToken of tokenized.codes) {
67
- let codeInt = parseInt(codeToken.code);
68
- //is a plugin-contributed or non-numeric code
69
- if (isNaN(codeInt)) {
70
- codes.push((_b = (_a = codeToken.code) === null || _a === void 0 ? void 0 : _a.toString()) === null || _b === void 0 ? void 0 : _b.toLowerCase());
71
- //validate numeric codes against the list of known bsc codes
72
- }
73
- else if (this.diagnosticCodes.includes(codeInt)) {
74
- codes.push(codeInt);
75
- //add a warning for unknown codes
65
+ const codes = this.collectCodes(tokenized.codes);
66
+ if (codes && codes.length > 0) {
67
+ this.commentFlags.push({
68
+ file: this.file,
69
+ codes: codes,
70
+ range: range,
71
+ affectedRange: affectedRange
72
+ });
73
+ }
74
+ }
75
+ /**
76
+ * Resolve any pending `bs:disable` / `bs:enable` block directives into `CommentFlag`s.
77
+ * Must be called after the file's comment tokens have been fed through `tryAdd`.
78
+ */
79
+ finalize() {
80
+ if (this.blockDirectives.length === 0) {
81
+ return;
82
+ }
83
+ //state across the file: which codes are suppressed within the current block
84
+ let allSuppressed = false;
85
+ const carveOuts = new Set();
86
+ for (let i = 0; i < this.blockDirectives.length; i++) {
87
+ const directive = this.blockDirectives[i];
88
+ const codes = this.collectCodes(directive.rawCodes);
89
+ //apply this directive to the running state
90
+ if (codes === null) {
91
+ //bare `bs:disable` / `bs:enable` resets state
92
+ allSuppressed = directive.kind === 'disable';
93
+ carveOuts.clear();
94
+ }
95
+ else if (directive.kind === 'disable') {
96
+ //in disable-all mode, "disable: X" cancels a prior carve-out for X
97
+ //in enable-all mode, "disable: X" adds X to the suppressed set
98
+ for (const code of codes) {
99
+ if (allSuppressed) {
100
+ carveOuts.delete(code);
101
+ }
102
+ else {
103
+ carveOuts.add(code);
104
+ }
76
105
  }
77
- else {
78
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.unknownDiagnosticCode(codeInt)), { file: this.file, range: codeToken.range }));
106
+ }
107
+ else {
108
+ //'enable' with specific codes does the opposite of the disable branch above
109
+ for (const code of codes) {
110
+ if (allSuppressed) {
111
+ carveOuts.add(code);
112
+ }
113
+ else {
114
+ carveOuts.delete(code);
115
+ }
79
116
  }
80
117
  }
81
- if (codes.length > 0) {
82
- commentFlag = {
118
+ //affectedRange runs from the line after this directive to just before the next block directive (or EOF)
119
+ const next = this.blockDirectives[i + 1];
120
+ const startLine = directive.range.start.line + 1;
121
+ const endLine = next ? next.range.start.line - 1 : Number.MAX_SAFE_INTEGER;
122
+ if (endLine < startLine) {
123
+ continue;
124
+ }
125
+ const affectedRange = util_1.util.createRange(startLine, 0, endLine, Number.MAX_SAFE_INTEGER);
126
+ //emit a flag only when the current state actually suppresses something
127
+ if (allSuppressed) {
128
+ this.commentFlags.push({
83
129
  file: this.file,
84
- codes: codes,
85
- range: range,
130
+ codes: null,
131
+ enableCodes: carveOuts.size > 0 ? [...carveOuts] : undefined,
132
+ range: directive.range,
86
133
  affectedRange: affectedRange
87
- };
134
+ });
135
+ }
136
+ else if (carveOuts.size > 0) {
137
+ this.commentFlags.push({
138
+ file: this.file,
139
+ codes: [...carveOuts],
140
+ range: directive.range,
141
+ affectedRange: affectedRange
142
+ });
88
143
  }
89
144
  }
90
- if (commentFlag) {
91
- this.commentFlags.push(commentFlag);
92
- //add an ignore for everything in this comment except for Unknown_diagnostic_code_1014
93
- this.commentFlags.push({
94
- affectedRange: commentFlag.range,
95
- range: commentFlag.range,
96
- codes: this.allCodesExceptIgnores,
97
- file: this.file
98
- });
145
+ }
146
+ /**
147
+ * Resolve a list of `{ code, range }` tokens into validated diagnostic codes.
148
+ * Pushes diagnostics for any unknown numeric codes. Returns `null` when no codes were specified
149
+ * (i.e. a bare `bs:disable` / `bs:enable`), and an array otherwise.
150
+ */
151
+ collectCodes(rawCodes) {
152
+ var _a, _b;
153
+ if (rawCodes.length === 0) {
154
+ return null;
99
155
  }
156
+ const codes = [];
157
+ for (const codeToken of rawCodes) {
158
+ const codeInt = parseInt(codeToken.code);
159
+ if (isNaN(codeInt)) {
160
+ //plugin-contributed or non-numeric code
161
+ codes.push((_b = (_a = codeToken.code) === null || _a === void 0 ? void 0 : _a.toString()) === null || _b === void 0 ? void 0 : _b.toLowerCase());
162
+ }
163
+ else if (this.diagnosticCodes.includes(codeInt)) {
164
+ codes.push(codeInt);
165
+ }
166
+ else {
167
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.unknownDiagnosticCode(codeInt)), { file: this.file, range: codeToken.range }));
168
+ }
169
+ }
170
+ return codes;
100
171
  }
101
172
  /**
102
- * Small tokenizer for bs:disable comments
173
+ * Small tokenizer for `bs:` directive comments.
103
174
  */
104
175
  tokenize(text, range) {
105
176
  let lowerText = text.toLowerCase();
@@ -113,20 +184,31 @@ class CommentFlagProcessor {
113
184
  break;
114
185
  }
115
186
  }
116
- let disableType;
117
- //trim leading/trailing whitespace
118
- let len = lowerText.length;
187
+ //trim leading whitespace
188
+ const len = lowerText.length;
119
189
  lowerText = lowerText.trimLeft();
120
190
  offset += len - lowerText.length;
191
+ //match longest-prefix first so `bs:disable-line` doesn't get parsed as `bs:disable`
192
+ let directive;
121
193
  if (lowerText.startsWith('bs:disable-line')) {
122
194
  lowerText = lowerText.substring('bs:disable-line'.length);
123
195
  offset += 'bs:disable-line'.length;
124
- disableType = 'line';
196
+ directive = 'line';
125
197
  }
126
198
  else if (lowerText.startsWith('bs:disable-next-line')) {
127
199
  lowerText = lowerText.substring('bs:disable-next-line'.length);
128
200
  offset += 'bs:disable-next-line'.length;
129
- disableType = 'next-line';
201
+ directive = 'next-line';
202
+ }
203
+ else if (lowerText.startsWith('bs:disable')) {
204
+ lowerText = lowerText.substring('bs:disable'.length);
205
+ offset += 'bs:disable'.length;
206
+ directive = 'disable';
207
+ }
208
+ else if (lowerText.startsWith('bs:enable')) {
209
+ lowerText = lowerText.substring('bs:enable'.length);
210
+ offset += 'bs:enable'.length;
211
+ directive = 'enable';
130
212
  }
131
213
  else {
132
214
  return null;
@@ -136,9 +218,9 @@ class CommentFlagProcessor {
136
218
  lowerText = lowerText.substring(1);
137
219
  offset += 1;
138
220
  }
139
- let items = this.tokenizeByWhitespace(lowerText);
140
- let codes = [];
141
- for (let item of items) {
221
+ const items = this.tokenizeByWhitespace(lowerText);
222
+ const codes = [];
223
+ for (const item of items) {
142
224
  codes.push({
143
225
  code: item.text,
144
226
  range: util_1.util.createRange(range.start.line, range.start.character + offset + item.startIndex, range.start.line, range.start.character + offset + item.startIndex + item.text.length)
@@ -146,7 +228,7 @@ class CommentFlagProcessor {
146
228
  }
147
229
  return {
148
230
  commentTokenText: commentTokenText,
149
- disableType: disableType,
231
+ directive: directive,
150
232
  codes: codes
151
233
  };
152
234
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CommentFlagProcessor.js","sourceRoot":"","sources":["../src/CommentFlagProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommentFlagProcessor.js","sourceRoot":"","sources":["../src/CommentFlagProcessor.ts"],"names":[],"mappings":"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"}
@@ -762,8 +762,27 @@ export declare let DiagnosticMessages: {
762
762
  code: number;
763
763
  severity: 1;
764
764
  };
765
+ reservedBuiltinUsedAsValue: (name: string) => {
766
+ message: string;
767
+ code: number;
768
+ severity: 1;
769
+ };
770
+ /**
771
+ * Emitted when a block recovers from a wrong terminator (e.g. `while ... next` or `for ... end while`).
772
+ * `expected` lists the legal terminators in preferred-first order; `found` is the actual text.
773
+ * Quick fixes consume the structured `data` to build "Convert '<found>' to '<expected[i]>'" actions.
774
+ */
775
+ mismatchedEndingToken: (expected?: string[], found?: string) => {
776
+ message: string;
777
+ code: number;
778
+ data: {
779
+ expected: string[];
780
+ found: string;
781
+ };
782
+ severity: 1;
783
+ };
765
784
  };
766
- export declare const DiagnosticCodeMap: Record<"genericParserMessage" | "cannotFindName" | "mismatchArgumentCount" | "duplicateFunctionImplementation" | "referencedFileDoesNotExist" | "xmlComponentMissingComponentDeclaration" | "xmlComponentMissingNameAttribute" | "xmlComponentMissingExtendsAttribute" | "xmlGenericParseError" | "unnecessaryScriptImportInChildFromParent" | "overridesAncestorFunction" | "localVarFunctionShadowsParentFunction" | "scriptImportCaseMismatch" | "fileNotReferencedByAnyOtherFile" | "unknownDiagnosticCode" | "scriptSrcCannotBeEmpty" | "expectedIdentifierAfterKeyword" | "missingCallableKeyword" | "expectedValidTypeToFollowAsKeyword" | "bsFeatureNotSupportedInBrsFiles" | "brsConfigJsonIsDeprecated" | "bsConfigJsonHasSyntaxErrors" | "namespacedClassCannotShareNamewithNonNamespacedClass" | "cannotUseOverrideKeywordOnConstructorFunction" | "importStatementMustBeDeclaredAtTopOfFile" | "methodDoesNotExistOnType" | "duplicateIdentifier" | "missingOverrideKeyword" | "duplicateClassDeclaration" | "classCouldNotBeFound" | "expectedClassFieldIdentifier" | "expressionIsNotConstructable" | "expectedKeyword" | "expectedLeftParenAfterCallable" | "expectedNameAfterCallableKeyword" | "expectedLeftParenAfterCallableName" | "tooManyCallableParameters" | "invalidFunctionReturnType" | "requiredParameterMayNotFollowOptionalParameter" | "expectedNewlineOrColon" | "functionNameCannotEndWithTypeDesignator" | "callableBlockMissingEndKeyword" | "mismatchedEndCallableKeyword" | "expectedParameterNameButFound" | "functionParameterTypeIsInvalid" | "cannotUseReservedWordAsIdentifier" | "expectedOperatorAfterIdentifier" | "expectedInlineIfStatement" | "expectedFinalNewline" | "couldNotFindMatchingEndKeyword" | "expectedCatchBlockInTryCatch" | "expectedEndForOrNextToTerminateForLoop" | "expectedInAfterForEach" | "expectedExpressionAfterForEachIn" | "unexpectedColonBeforeIfStatement" | "expectedStringLiteralAfterKeyword" | "keywordMustBeDeclaredAtRootLevel" | "libraryStatementMustBeDeclaredAtTopOfFile" | "expectedEndIfElseIfOrElseToTerminateThenBlock" | "expectedEndTryToTerminateTryCatch" | "expectedEndIfToCloseIfStatement" | "expectedStatementToFollowConditionalCondition" | "expectedStatementToFollowElse" | "consecutiveIncrementDecrementOperatorsAreNotAllowed" | "incrementDecrementOperatorsAreNotAllowedAsResultOfFunctionCall" | "xmlUnexpectedTag" | "expectedStatementOrFunctionCallButReceivedExpression" | "xmlFunctionNotFound" | "xmlInvalidFieldType" | "xmlUnexpectedChildren" | "xmlTagMissingAttribute" | "expectedLabelIdentifierAfterGotoKeyword" | "expectedRightSquareBraceAfterArrayOrObjectIndex" | "expectedPropertyNameAfterPeriod" | "tooManyCallableArguments" | "expectedRightParenAfterFunctionCallArguments" | "unmatchedLeftParenAfterExpression" | "unmatchedLeftSquareBraceAfterArrayLiteral" | "unexpectedAAKey" | "expectedColonBetweenAAKeyAndvalue" | "unmatchedLeftCurlyAfterAALiteral" | "unexpectedToken" | "unexpectedCharacter" | "unterminatedStringAtEndOfLine" | "unterminatedStringAtEndOfFile" | "fractionalHexLiteralsAreNotSupported" | "unexpectedConditionalCompilationString" | "duplicateConstDeclaration" | "constAliasDoesNotExist" | "invalidHashConstValue" | "referencedConstDoesNotExist" | "invalidHashIfValue" | "hashError" | "expectedEqualAfterConstName" | "expectedHashElseIfToCloseHashIf" | "constNameCannotBeReservedWord" | "expectedIdentifier" | "expectedAttributeNameAfterAtSymbol" | "childFieldTypeNotAssignableToBaseProperty" | "classChildMemberDifferentMemberTypeThanAncestor" | "classConstructorMissingSuperCall" | "classConstructorIllegalUseOfMBeforeSuperCall" | "classFieldCannotBeOverridden" | "unusedAnnotation" | "localVarShadowedByScopedFunction" | "scopeFunctionShadowedByBuiltInFunction" | "localVarSameNameAsClass" | "unnecessaryCodebehindScriptImport" | "expectedOpenParenToFollowCallfuncIdentifier" | "expectedToken" | "parameterMayNotHaveSameNameAsNamespace" | "variableMayNotHaveSameNameAsNamespace" | "unterminatedTemplateStringAtEndOfFile" | "unterminatedTemplateExpression" | "duplicateComponentName" | "functionCannotHaveSameNameAsClass" | "missingExceptionVarToFollowCatch" | "missingExceptionExpressionAfterThrowKeyword" | "missingLeftSquareBracketAfterDimIdentifier" | "missingRightSquareBracketAfterDimIdentifier" | "missingExpressionsInDimStatement" | "mismatchedOverriddenMemberVisibility" | "cannotFindType" | "enumValueMustBeType" | "enumValueIsRequired" | "unknownEnumValue" | "duplicateEnumDeclaration" | "unknownRoSGNode" | "unknownBrightScriptComponent" | "mismatchCreateObjectArgumentCount" | "deprecatedBrightScriptComponent" | "circularReferenceDetected" | "unexpectedStatementOutsideFunction" | "detectedTooDeepFileSource" | "illegalContinueStatement" | "keywordMustBeDeclaredAtNamespaceLevel" | "itemCannotBeUsedAsVariable" | "callfuncHasToManyArgs" | "noOptionalChainingInLeftHandSideOfAssignment" | "cannotFindFunction" | "voidFunctionMayNotReturnValue" | "nonVoidFunctionMustReturnValue" | "propAccessNotPermittedAfterFunctionCallInExpressionStatement" | "computedPropertyKeyMustBeConstantExpression" | "computedAAKeyMustBeStringExpression" | "featureRequiresMinFirmwareVersion", number>;
785
+ export declare const DiagnosticCodeMap: Record<"genericParserMessage" | "cannotFindName" | "mismatchArgumentCount" | "duplicateFunctionImplementation" | "referencedFileDoesNotExist" | "xmlComponentMissingComponentDeclaration" | "xmlComponentMissingNameAttribute" | "xmlComponentMissingExtendsAttribute" | "xmlGenericParseError" | "unnecessaryScriptImportInChildFromParent" | "overridesAncestorFunction" | "localVarFunctionShadowsParentFunction" | "scriptImportCaseMismatch" | "fileNotReferencedByAnyOtherFile" | "unknownDiagnosticCode" | "scriptSrcCannotBeEmpty" | "expectedIdentifierAfterKeyword" | "missingCallableKeyword" | "expectedValidTypeToFollowAsKeyword" | "bsFeatureNotSupportedInBrsFiles" | "brsConfigJsonIsDeprecated" | "bsConfigJsonHasSyntaxErrors" | "namespacedClassCannotShareNamewithNonNamespacedClass" | "cannotUseOverrideKeywordOnConstructorFunction" | "importStatementMustBeDeclaredAtTopOfFile" | "methodDoesNotExistOnType" | "duplicateIdentifier" | "missingOverrideKeyword" | "duplicateClassDeclaration" | "classCouldNotBeFound" | "expectedClassFieldIdentifier" | "expressionIsNotConstructable" | "expectedKeyword" | "expectedLeftParenAfterCallable" | "expectedNameAfterCallableKeyword" | "expectedLeftParenAfterCallableName" | "tooManyCallableParameters" | "invalidFunctionReturnType" | "requiredParameterMayNotFollowOptionalParameter" | "expectedNewlineOrColon" | "functionNameCannotEndWithTypeDesignator" | "callableBlockMissingEndKeyword" | "mismatchedEndCallableKeyword" | "expectedParameterNameButFound" | "functionParameterTypeIsInvalid" | "cannotUseReservedWordAsIdentifier" | "expectedOperatorAfterIdentifier" | "expectedInlineIfStatement" | "expectedFinalNewline" | "couldNotFindMatchingEndKeyword" | "expectedCatchBlockInTryCatch" | "expectedEndForOrNextToTerminateForLoop" | "expectedInAfterForEach" | "expectedExpressionAfterForEachIn" | "unexpectedColonBeforeIfStatement" | "expectedStringLiteralAfterKeyword" | "keywordMustBeDeclaredAtRootLevel" | "libraryStatementMustBeDeclaredAtTopOfFile" | "expectedEndIfElseIfOrElseToTerminateThenBlock" | "expectedEndTryToTerminateTryCatch" | "expectedEndIfToCloseIfStatement" | "expectedStatementToFollowConditionalCondition" | "expectedStatementToFollowElse" | "consecutiveIncrementDecrementOperatorsAreNotAllowed" | "incrementDecrementOperatorsAreNotAllowedAsResultOfFunctionCall" | "xmlUnexpectedTag" | "expectedStatementOrFunctionCallButReceivedExpression" | "xmlFunctionNotFound" | "xmlInvalidFieldType" | "xmlUnexpectedChildren" | "xmlTagMissingAttribute" | "expectedLabelIdentifierAfterGotoKeyword" | "expectedRightSquareBraceAfterArrayOrObjectIndex" | "expectedPropertyNameAfterPeriod" | "tooManyCallableArguments" | "expectedRightParenAfterFunctionCallArguments" | "unmatchedLeftParenAfterExpression" | "unmatchedLeftSquareBraceAfterArrayLiteral" | "unexpectedAAKey" | "expectedColonBetweenAAKeyAndvalue" | "unmatchedLeftCurlyAfterAALiteral" | "unexpectedToken" | "unexpectedCharacter" | "unterminatedStringAtEndOfLine" | "unterminatedStringAtEndOfFile" | "fractionalHexLiteralsAreNotSupported" | "unexpectedConditionalCompilationString" | "duplicateConstDeclaration" | "constAliasDoesNotExist" | "invalidHashConstValue" | "referencedConstDoesNotExist" | "invalidHashIfValue" | "hashError" | "expectedEqualAfterConstName" | "expectedHashElseIfToCloseHashIf" | "constNameCannotBeReservedWord" | "expectedIdentifier" | "expectedAttributeNameAfterAtSymbol" | "childFieldTypeNotAssignableToBaseProperty" | "classChildMemberDifferentMemberTypeThanAncestor" | "classConstructorMissingSuperCall" | "classConstructorIllegalUseOfMBeforeSuperCall" | "classFieldCannotBeOverridden" | "unusedAnnotation" | "localVarShadowedByScopedFunction" | "scopeFunctionShadowedByBuiltInFunction" | "localVarSameNameAsClass" | "unnecessaryCodebehindScriptImport" | "expectedOpenParenToFollowCallfuncIdentifier" | "expectedToken" | "parameterMayNotHaveSameNameAsNamespace" | "variableMayNotHaveSameNameAsNamespace" | "unterminatedTemplateStringAtEndOfFile" | "unterminatedTemplateExpression" | "duplicateComponentName" | "functionCannotHaveSameNameAsClass" | "missingExceptionVarToFollowCatch" | "missingExceptionExpressionAfterThrowKeyword" | "missingLeftSquareBracketAfterDimIdentifier" | "missingRightSquareBracketAfterDimIdentifier" | "missingExpressionsInDimStatement" | "mismatchedOverriddenMemberVisibility" | "cannotFindType" | "enumValueMustBeType" | "enumValueIsRequired" | "unknownEnumValue" | "duplicateEnumDeclaration" | "unknownRoSGNode" | "unknownBrightScriptComponent" | "mismatchCreateObjectArgumentCount" | "deprecatedBrightScriptComponent" | "circularReferenceDetected" | "unexpectedStatementOutsideFunction" | "detectedTooDeepFileSource" | "illegalContinueStatement" | "keywordMustBeDeclaredAtNamespaceLevel" | "itemCannotBeUsedAsVariable" | "callfuncHasToManyArgs" | "noOptionalChainingInLeftHandSideOfAssignment" | "cannotFindFunction" | "voidFunctionMayNotReturnValue" | "nonVoidFunctionMustReturnValue" | "propAccessNotPermittedAfterFunctionCallInExpressionStatement" | "computedPropertyKeyMustBeConstantExpression" | "computedAAKeyMustBeStringExpression" | "featureRequiresMinFirmwareVersion" | "reservedBuiltinUsedAsValue" | "mismatchedEndingToken", number>;
767
786
  export declare let diagnosticCodes: number[];
768
787
  export interface DiagnosticInfo {
769
788
  message: string;
@@ -776,3 +795,10 @@ export interface DiagnosticInfo {
776
795
  * DiagnosticMessages-like object in order to get the same type support
777
796
  */
778
797
  export declare type DiagnosticMessageType<K extends keyof D, D extends Record<string, (...args: any) => any> = typeof DiagnosticMessages> = ReturnType<D[K]> & Pick<BsDiagnostic, 'range' | 'file' | 'relatedInformation' | 'tags'>;
798
+ /**
799
+ * Refines a diagnostic to its concrete `DiagnosticMessageType<K>` shape (including the typed `data`
800
+ * payload) when its code matches `DiagnosticCodeMap[key]`.
801
+ */
802
+ export declare function isDiagnosticOfType<K extends keyof typeof DiagnosticMessages>(diagnostic: {
803
+ code?: number | string;
804
+ }, key: K): diagnostic is DiagnosticMessageType<K>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.diagnosticCodes = exports.DiagnosticCodeMap = exports.DiagnosticMessages = void 0;
3
+ exports.isDiagnosticOfType = exports.diagnosticCodes = exports.DiagnosticCodeMap = exports.DiagnosticMessages = void 0;
4
4
  const vscode_languageserver_1 = require("vscode-languageserver");
5
5
  /**
6
6
  * An object that keeps track of all possible error messages.
@@ -769,7 +769,29 @@ exports.DiagnosticMessages = {
769
769
  message: `'${featureName}' requires Roku firmware version ${minimumVersion} or higher (current target is ${configuredVersion})`,
770
770
  code: 1146,
771
771
  severity: vscode_languageserver_1.DiagnosticSeverity.Error
772
- })
772
+ }),
773
+ reservedBuiltinUsedAsValue: (name) => ({
774
+ message: `'${name}' is a reserved builtin and can only be used as a function call (e.g. '${name}(...)')`,
775
+ code: 1147,
776
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error
777
+ }),
778
+ /**
779
+ * Emitted when a block recovers from a wrong terminator (e.g. `while ... next` or `for ... end while`).
780
+ * `expected` lists the legal terminators in preferred-first order; `found` is the actual text.
781
+ * Quick fixes consume the structured `data` to build "Convert '<found>' to '<expected[i]>'" actions.
782
+ */
783
+ mismatchedEndingToken: (expected = [], found = '') => {
784
+ const expectedList = Array.isArray(expected) ? expected : [];
785
+ return {
786
+ message: `Expected ${expectedList.map(text => `'${text}'`).join(' or ')} but found '${found}'`,
787
+ code: 1148,
788
+ data: {
789
+ expected: expectedList,
790
+ found: found
791
+ },
792
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error
793
+ };
794
+ }
773
795
  };
774
796
  exports.DiagnosticCodeMap = {};
775
797
  exports.diagnosticCodes = [];
@@ -777,4 +799,12 @@ for (let key in exports.DiagnosticMessages) {
777
799
  exports.diagnosticCodes.push(exports.DiagnosticMessages[key]().code);
778
800
  exports.DiagnosticCodeMap[key] = exports.DiagnosticMessages[key]().code;
779
801
  }
802
+ /**
803
+ * Refines a diagnostic to its concrete `DiagnosticMessageType<K>` shape (including the typed `data`
804
+ * payload) when its code matches `DiagnosticCodeMap[key]`.
805
+ */
806
+ function isDiagnosticOfType(diagnostic, key) {
807
+ return diagnostic.code === exports.DiagnosticCodeMap[key];
808
+ }
809
+ exports.isDiagnosticOfType = isDiagnosticOfType;
780
810
  //# sourceMappingURL=DiagnosticMessages.js.map