brighterscript 1.0.0-alpha.50 → 1.0.0-alpha.52

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 (485) hide show
  1. package/README.md +10 -2
  2. package/bsconfig.schema.json +75 -0
  3. package/dist/BsConfig.d.ts +90 -5
  4. package/dist/CodeActionUtil.d.ts +17 -0
  5. package/dist/CodeActionUtil.js.map +1 -1
  6. package/dist/CommentFlagProcessor.d.ts +16 -12
  7. package/dist/CommentFlagProcessor.js +141 -59
  8. package/dist/CommentFlagProcessor.js.map +1 -1
  9. package/dist/CrossScopeValidator.js +13 -5
  10. package/dist/CrossScopeValidator.js.map +1 -1
  11. package/dist/DiagnosticManager.d.ts +1 -0
  12. package/dist/DiagnosticManager.js +25 -9
  13. package/dist/DiagnosticManager.js.map +1 -1
  14. package/dist/DiagnosticMessages.d.ts +61 -17
  15. package/dist/DiagnosticMessages.js +78 -24
  16. package/dist/DiagnosticMessages.js.map +1 -1
  17. package/dist/LanguageServer.d.ts +40 -2
  18. package/dist/LanguageServer.js +154 -5
  19. package/dist/LanguageServer.js.map +1 -1
  20. package/dist/Program.d.ts +66 -1
  21. package/dist/Program.js +205 -13
  22. package/dist/Program.js.map +1 -1
  23. package/dist/ProgramBuilder.d.ts +1 -8
  24. package/dist/ProgramBuilder.js +31 -11
  25. package/dist/ProgramBuilder.js.map +1 -1
  26. package/dist/Scope.d.ts +87 -6
  27. package/dist/Scope.js +76 -31
  28. package/dist/Scope.js.map +1 -1
  29. package/dist/ScopeNamespaceLookup.d.ts +73 -0
  30. package/dist/ScopeNamespaceLookup.js +242 -0
  31. package/dist/ScopeNamespaceLookup.js.map +1 -0
  32. package/dist/SymbolTable.d.ts +9 -2
  33. package/dist/SymbolTable.js +24 -14
  34. package/dist/SymbolTable.js.map +1 -1
  35. package/dist/astUtils/CachedLookups.js +3 -0
  36. package/dist/astUtils/CachedLookups.js.map +1 -1
  37. package/dist/astUtils/reflection.d.ts +4 -1
  38. package/dist/astUtils/reflection.js +24 -4
  39. package/dist/astUtils/reflection.js.map +1 -1
  40. package/dist/astUtils/visitors.d.ts +2 -1
  41. package/dist/astUtils/visitors.js.map +1 -1
  42. package/dist/bscPlugin/BscPlugin.d.ts +5 -2
  43. package/dist/bscPlugin/BscPlugin.js +14 -2
  44. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  45. package/dist/bscPlugin/CallExpressionInfo.d.ts +1 -1
  46. package/dist/bscPlugin/CallExpressionInfo.js +1 -2
  47. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
  48. package/dist/bscPlugin/FileWriter.d.ts +13 -0
  49. package/dist/bscPlugin/FileWriter.js +56 -1
  50. package/dist/bscPlugin/FileWriter.js.map +1 -1
  51. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +106 -5
  52. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +630 -126
  53. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  54. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.d.ts +17 -0
  55. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js +66 -0
  56. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js.map +1 -0
  57. package/dist/bscPlugin/codeActions/codeActionHelpers.d.ts +18 -0
  58. package/dist/bscPlugin/codeActions/codeActionHelpers.js +31 -0
  59. package/dist/bscPlugin/codeActions/codeActionHelpers.js.map +1 -0
  60. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +1 -1
  61. package/dist/bscPlugin/completions/CompletionsProcessor.js +5 -5
  62. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  63. package/dist/bscPlugin/definition/DefinitionProvider.js +8 -0
  64. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -1
  65. package/dist/bscPlugin/hover/HoverProcessor.js +11 -3
  66. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  67. package/dist/bscPlugin/inlayHints/InlayHintProcessor.d.ts +23 -0
  68. package/dist/bscPlugin/inlayHints/InlayHintProcessor.js +186 -0
  69. package/dist/bscPlugin/inlayHints/InlayHintProcessor.js.map +1 -0
  70. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.d.ts +7 -0
  71. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js +77 -0
  72. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js.map +1 -0
  73. package/dist/bscPlugin/serialize/FileSerializer.d.ts +1 -1
  74. package/dist/bscPlugin/serialize/FileSerializer.js +12 -7
  75. package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -1
  76. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +7 -0
  77. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +87 -1
  78. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -1
  79. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +14 -0
  80. package/dist/bscPlugin/validation/BrsFileValidator.js +97 -21
  81. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  82. package/dist/bscPlugin/validation/ScopeValidator.d.ts +17 -0
  83. package/dist/bscPlugin/validation/ScopeValidator.js +162 -4
  84. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  85. package/dist/bscPlugin/validation/XmlFileValidator.js +14 -0
  86. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -1
  87. package/dist/cli.js +13 -0
  88. package/dist/cli.js.map +1 -1
  89. package/dist/diagnosticUtils.d.ts +51 -1
  90. package/dist/diagnosticUtils.js +222 -1
  91. package/dist/diagnosticUtils.js.map +1 -1
  92. package/dist/files/BrsFile.d.ts +18 -2
  93. package/dist/files/BrsFile.js +87 -6
  94. package/dist/files/BrsFile.js.map +1 -1
  95. package/dist/files/XmlFile.js +2 -1
  96. package/dist/files/XmlFile.js.map +1 -1
  97. package/dist/interfaces.d.ts +101 -23
  98. package/dist/interfaces.js.map +1 -1
  99. package/dist/lexer/Lexer.js +4 -5
  100. package/dist/lexer/Lexer.js.map +1 -1
  101. package/dist/lexer/Token.d.ts +1 -1
  102. package/dist/lexer/TokenKind.d.ts +8 -0
  103. package/dist/lexer/TokenKind.js +21 -1
  104. package/dist/lexer/TokenKind.js.map +1 -1
  105. package/dist/lsp/LspProject.d.ts +56 -1
  106. package/dist/lsp/Project.d.ts +38 -2
  107. package/dist/lsp/Project.js +135 -4
  108. package/dist/lsp/Project.js.map +1 -1
  109. package/dist/lsp/ProjectManager.d.ts +52 -2
  110. package/dist/lsp/ProjectManager.js +164 -9
  111. package/dist/lsp/ProjectManager.js.map +1 -1
  112. package/dist/lsp/worker/WorkerThreadProject.d.ts +31 -2
  113. package/dist/lsp/worker/WorkerThreadProject.js +19 -0
  114. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -1
  115. package/dist/parser/AstNode.d.ts +3 -1
  116. package/dist/parser/AstNode.js +2 -0
  117. package/dist/parser/AstNode.js.map +1 -1
  118. package/dist/parser/Expression.d.ts +54 -5
  119. package/dist/parser/Expression.js +112 -7
  120. package/dist/parser/Expression.js.map +1 -1
  121. package/dist/parser/Parser.d.ts +24 -1
  122. package/dist/parser/Parser.js +180 -41
  123. package/dist/parser/Parser.js.map +1 -1
  124. package/dist/parser/SGParser.d.ts +1 -0
  125. package/dist/parser/SGParser.js +9 -0
  126. package/dist/parser/SGParser.js.map +1 -1
  127. package/dist/parser/Statement.d.ts +6 -1
  128. package/dist/parser/Statement.js +22 -14
  129. package/dist/parser/Statement.js.map +1 -1
  130. package/dist/parser/TranspileState.d.ts +4 -2
  131. package/dist/parser/TranspileState.js +13 -4
  132. package/dist/parser/TranspileState.js.map +1 -1
  133. package/dist/roku-types/data.json +210 -3
  134. package/dist/types/ArrayType.js +6 -1
  135. package/dist/types/ArrayType.js.map +1 -1
  136. package/dist/types/BooleanType.js +1 -1
  137. package/dist/types/BooleanType.js.map +1 -1
  138. package/dist/types/CallFuncableType.d.ts +1 -1
  139. package/dist/types/ClassType.js +3 -0
  140. package/dist/types/ClassType.js.map +1 -1
  141. package/dist/types/ComponentType.js +3 -0
  142. package/dist/types/ComponentType.js.map +1 -1
  143. package/dist/types/EnumType.js +3 -0
  144. package/dist/types/EnumType.js.map +1 -1
  145. package/dist/types/IntersectionType.js +3 -0
  146. package/dist/types/IntersectionType.js.map +1 -1
  147. package/dist/types/ReferenceType.js +6 -0
  148. package/dist/types/ReferenceType.js.map +1 -1
  149. package/dist/types/TypeStatementType.d.ts +1 -0
  150. package/dist/types/TypeStatementType.js +12 -1
  151. package/dist/types/TypeStatementType.js.map +1 -1
  152. package/dist/types/TypedFunctionType.js +20 -10
  153. package/dist/types/TypedFunctionType.js.map +1 -1
  154. package/dist/types/UnionType.js +3 -0
  155. package/dist/types/UnionType.js.map +1 -1
  156. package/dist/types/helpers.js +6 -0
  157. package/dist/types/helpers.js.map +1 -1
  158. package/dist/util.d.ts +42 -3
  159. package/dist/util.js +131 -7
  160. package/dist/util.js.map +1 -1
  161. package/package.json +25 -26
  162. package/dist/astUtils/CachedLookups.spec.d.ts +0 -1
  163. package/dist/astUtils/CachedLookups.spec.js +0 -39
  164. package/dist/astUtils/CachedLookups.spec.js.map +0 -1
  165. package/dist/astUtils/Editor.spec.d.ts +0 -1
  166. package/dist/astUtils/Editor.spec.js +0 -258
  167. package/dist/astUtils/Editor.spec.js.map +0 -1
  168. package/dist/astUtils/creators.spec.d.ts +0 -1
  169. package/dist/astUtils/creators.spec.js +0 -21
  170. package/dist/astUtils/creators.spec.js.map +0 -1
  171. package/dist/astUtils/reflection.spec.d.ts +0 -1
  172. package/dist/astUtils/reflection.spec.js +0 -392
  173. package/dist/astUtils/reflection.spec.js.map +0 -1
  174. package/dist/astUtils/stackedVisitor.spec.d.ts +0 -1
  175. package/dist/astUtils/stackedVisitor.spec.js +0 -79
  176. package/dist/astUtils/stackedVisitor.spec.js.map +0 -1
  177. package/dist/astUtils/visitors.spec.d.ts +0 -1
  178. package/dist/astUtils/visitors.spec.js +0 -1432
  179. package/dist/astUtils/visitors.spec.js.map +0 -1
  180. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.d.ts +0 -1
  181. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +0 -311
  182. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +0 -1
  183. package/dist/bscPlugin/completions/CompletionsProcessor.spec.d.ts +0 -1
  184. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +0 -2512
  185. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +0 -1
  186. package/dist/bscPlugin/definition/DefinitionProvider.spec.d.ts +0 -1
  187. package/dist/bscPlugin/definition/DefinitionProvider.spec.js +0 -87
  188. package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +0 -1
  189. package/dist/bscPlugin/hover/HoverProcessor.spec.d.ts +0 -1
  190. package/dist/bscPlugin/hover/HoverProcessor.spec.js +0 -991
  191. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +0 -1
  192. package/dist/bscPlugin/references/ReferencesProvider.spec.d.ts +0 -1
  193. package/dist/bscPlugin/references/ReferencesProvider.spec.js +0 -51
  194. package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +0 -1
  195. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.d.ts +0 -1
  196. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +0 -564
  197. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +0 -1
  198. package/dist/bscPlugin/serialize/BslibInjector.spec.d.ts +0 -1
  199. package/dist/bscPlugin/serialize/BslibInjector.spec.js +0 -33
  200. package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +0 -1
  201. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.d.ts +0 -1
  202. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js +0 -291
  203. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js.map +0 -1
  204. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.d.ts +0 -1
  205. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js +0 -245
  206. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js.map +0 -1
  207. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.d.ts +0 -1
  208. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +0 -75
  209. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +0 -1
  210. package/dist/bscPlugin/validation/BrsFileValidator.spec.d.ts +0 -1
  211. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +0 -1517
  212. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +0 -1
  213. package/dist/bscPlugin/validation/ScopeValidator.spec.d.ts +0 -1
  214. package/dist/bscPlugin/validation/ScopeValidator.spec.js +0 -6135
  215. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +0 -1
  216. package/dist/common/Sequencer.spec.d.ts +0 -1
  217. package/dist/common/Sequencer.spec.js +0 -75
  218. package/dist/common/Sequencer.spec.js.map +0 -1
  219. package/dist/files/BrsFile.Class.spec.d.ts +0 -1
  220. package/dist/files/BrsFile.Class.spec.js +0 -2035
  221. package/dist/files/BrsFile.Class.spec.js.map +0 -1
  222. package/dist/files/BrsFile.spec.d.ts +0 -1
  223. package/dist/files/BrsFile.spec.js +0 -5848
  224. package/dist/files/BrsFile.spec.js.map +0 -1
  225. package/dist/files/LazyFileData.spec.d.ts +0 -1
  226. package/dist/files/LazyFileData.spec.js +0 -27
  227. package/dist/files/LazyFileData.spec.js.map +0 -1
  228. package/dist/files/XmlFile.spec.d.ts +0 -1
  229. package/dist/files/XmlFile.spec.js +0 -1173
  230. package/dist/files/XmlFile.spec.js.map +0 -1
  231. package/dist/files/tests/imports.spec.d.ts +0 -1
  232. package/dist/files/tests/imports.spec.js +0 -251
  233. package/dist/files/tests/imports.spec.js.map +0 -1
  234. package/dist/files/tests/optionalChaning.spec.d.ts +0 -1
  235. package/dist/files/tests/optionalChaning.spec.js +0 -152
  236. package/dist/files/tests/optionalChaning.spec.js.map +0 -1
  237. package/dist/lexer/Character.spec.d.ts +0 -1
  238. package/dist/lexer/Character.spec.js +0 -27
  239. package/dist/lexer/Character.spec.js.map +0 -1
  240. package/dist/lexer/Lexer.spec.d.ts +0 -1
  241. package/dist/lexer/Lexer.spec.js +0 -1345
  242. package/dist/lexer/Lexer.spec.js.map +0 -1
  243. package/dist/lsp/ActionQueue.spec.d.ts +0 -1
  244. package/dist/lsp/ActionQueue.spec.js +0 -80
  245. package/dist/lsp/ActionQueue.spec.js.map +0 -1
  246. package/dist/lsp/DocumentManager.spec.d.ts +0 -1
  247. package/dist/lsp/DocumentManager.spec.js +0 -103
  248. package/dist/lsp/DocumentManager.spec.js.map +0 -1
  249. package/dist/lsp/PathFilterer.spec.d.ts +0 -1
  250. package/dist/lsp/PathFilterer.spec.js +0 -182
  251. package/dist/lsp/PathFilterer.spec.js.map +0 -1
  252. package/dist/lsp/Project.spec.d.ts +0 -1
  253. package/dist/lsp/Project.spec.js +0 -267
  254. package/dist/lsp/Project.spec.js.map +0 -1
  255. package/dist/lsp/ProjectManager.spec.d.ts +0 -1
  256. package/dist/lsp/ProjectManager.spec.js +0 -913
  257. package/dist/lsp/ProjectManager.spec.js.map +0 -1
  258. package/dist/lsp/worker/MessageHandler.spec.d.ts +0 -1
  259. package/dist/lsp/worker/MessageHandler.spec.js +0 -64
  260. package/dist/lsp/worker/MessageHandler.spec.js.map +0 -1
  261. package/dist/lsp/worker/WorkerPool.spec.d.ts +0 -1
  262. package/dist/lsp/worker/WorkerPool.spec.js +0 -59
  263. package/dist/lsp/worker/WorkerPool.spec.js.map +0 -1
  264. package/dist/lsp/worker/WorkerThreadProject.spec.d.ts +0 -2
  265. package/dist/lsp/worker/WorkerThreadProject.spec.js +0 -71
  266. package/dist/lsp/worker/WorkerThreadProject.spec.js.map +0 -1
  267. package/dist/parser/AstNode.spec.d.ts +0 -1
  268. package/dist/parser/AstNode.spec.js +0 -1455
  269. package/dist/parser/AstNode.spec.js.map +0 -1
  270. package/dist/parser/BrightScriptDocParser.spec.d.ts +0 -1
  271. package/dist/parser/BrightScriptDocParser.spec.js +0 -310
  272. package/dist/parser/BrightScriptDocParser.spec.js.map +0 -1
  273. package/dist/parser/Expression.spec.d.ts +0 -1
  274. package/dist/parser/Expression.spec.js +0 -40
  275. package/dist/parser/Expression.spec.js.map +0 -1
  276. package/dist/parser/Parser.Class.spec.d.ts +0 -1
  277. package/dist/parser/Parser.Class.spec.js +0 -520
  278. package/dist/parser/Parser.Class.spec.js.map +0 -1
  279. package/dist/parser/Parser.spec.d.ts +0 -6
  280. package/dist/parser/Parser.spec.js +0 -2802
  281. package/dist/parser/Parser.spec.js.map +0 -1
  282. package/dist/parser/SGParser.spec.d.ts +0 -1
  283. package/dist/parser/SGParser.spec.js +0 -130
  284. package/dist/parser/SGParser.spec.js.map +0 -1
  285. package/dist/parser/Statement.spec.d.ts +0 -1
  286. package/dist/parser/Statement.spec.js +0 -191
  287. package/dist/parser/Statement.spec.js.map +0 -1
  288. package/dist/parser/tests/Parser.spec.d.ts +0 -12
  289. package/dist/parser/tests/Parser.spec.js +0 -29
  290. package/dist/parser/tests/Parser.spec.js.map +0 -1
  291. package/dist/parser/tests/controlFlow/For.spec.d.ts +0 -1
  292. package/dist/parser/tests/controlFlow/For.spec.js +0 -169
  293. package/dist/parser/tests/controlFlow/For.spec.js.map +0 -1
  294. package/dist/parser/tests/controlFlow/ForEach.spec.d.ts +0 -1
  295. package/dist/parser/tests/controlFlow/ForEach.spec.js +0 -140
  296. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +0 -1
  297. package/dist/parser/tests/controlFlow/If.spec.d.ts +0 -1
  298. package/dist/parser/tests/controlFlow/If.spec.js +0 -694
  299. package/dist/parser/tests/controlFlow/If.spec.js.map +0 -1
  300. package/dist/parser/tests/controlFlow/While.spec.d.ts +0 -1
  301. package/dist/parser/tests/controlFlow/While.spec.js +0 -114
  302. package/dist/parser/tests/controlFlow/While.spec.js.map +0 -1
  303. package/dist/parser/tests/expression/Additive.spec.d.ts +0 -1
  304. package/dist/parser/tests/expression/Additive.spec.js +0 -107
  305. package/dist/parser/tests/expression/Additive.spec.js.map +0 -1
  306. package/dist/parser/tests/expression/ArrayLiterals.spec.d.ts +0 -1
  307. package/dist/parser/tests/expression/ArrayLiterals.spec.js +0 -304
  308. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +0 -1
  309. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.d.ts +0 -1
  310. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +0 -342
  311. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +0 -1
  312. package/dist/parser/tests/expression/Boolean.spec.d.ts +0 -1
  313. package/dist/parser/tests/expression/Boolean.spec.js +0 -90
  314. package/dist/parser/tests/expression/Boolean.spec.js.map +0 -1
  315. package/dist/parser/tests/expression/Call.spec.d.ts +0 -1
  316. package/dist/parser/tests/expression/Call.spec.js +0 -252
  317. package/dist/parser/tests/expression/Call.spec.js.map +0 -1
  318. package/dist/parser/tests/expression/Exponential.spec.d.ts +0 -1
  319. package/dist/parser/tests/expression/Exponential.spec.js +0 -37
  320. package/dist/parser/tests/expression/Exponential.spec.js.map +0 -1
  321. package/dist/parser/tests/expression/Function.spec.d.ts +0 -1
  322. package/dist/parser/tests/expression/Function.spec.js +0 -412
  323. package/dist/parser/tests/expression/Function.spec.js.map +0 -1
  324. package/dist/parser/tests/expression/Indexing.spec.d.ts +0 -1
  325. package/dist/parser/tests/expression/Indexing.spec.js +0 -302
  326. package/dist/parser/tests/expression/Indexing.spec.js.map +0 -1
  327. package/dist/parser/tests/expression/Multiplicative.spec.d.ts +0 -1
  328. package/dist/parser/tests/expression/Multiplicative.spec.js +0 -67
  329. package/dist/parser/tests/expression/Multiplicative.spec.js.map +0 -1
  330. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.d.ts +0 -1
  331. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +0 -346
  332. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +0 -1
  333. package/dist/parser/tests/expression/PrefixUnary.spec.d.ts +0 -1
  334. package/dist/parser/tests/expression/PrefixUnary.spec.js +0 -111
  335. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +0 -1
  336. package/dist/parser/tests/expression/Primary.spec.d.ts +0 -1
  337. package/dist/parser/tests/expression/Primary.spec.js +0 -165
  338. package/dist/parser/tests/expression/Primary.spec.js.map +0 -1
  339. package/dist/parser/tests/expression/RegexLiteralExpression.spec.d.ts +0 -1
  340. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +0 -171
  341. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +0 -1
  342. package/dist/parser/tests/expression/Relational.spec.d.ts +0 -1
  343. package/dist/parser/tests/expression/Relational.spec.js +0 -83
  344. package/dist/parser/tests/expression/Relational.spec.js.map +0 -1
  345. package/dist/parser/tests/expression/SourceLiteralExpression.spec.d.ts +0 -1
  346. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +0 -201
  347. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +0 -1
  348. package/dist/parser/tests/expression/TemplateStringExpression.spec.d.ts +0 -1
  349. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +0 -389
  350. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +0 -1
  351. package/dist/parser/tests/expression/TernaryExpression.spec.d.ts +0 -1
  352. package/dist/parser/tests/expression/TernaryExpression.spec.js +0 -878
  353. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +0 -1
  354. package/dist/parser/tests/expression/TypeExpression.spec.d.ts +0 -1
  355. package/dist/parser/tests/expression/TypeExpression.spec.js +0 -126
  356. package/dist/parser/tests/expression/TypeExpression.spec.js.map +0 -1
  357. package/dist/parser/tests/expression/UnaryExpression.spec.d.ts +0 -1
  358. package/dist/parser/tests/expression/UnaryExpression.spec.js +0 -52
  359. package/dist/parser/tests/expression/UnaryExpression.spec.js.map +0 -1
  360. package/dist/parser/tests/statement/AssignmentOperators.spec.d.ts +0 -1
  361. package/dist/parser/tests/statement/AssignmentOperators.spec.js +0 -79
  362. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +0 -1
  363. package/dist/parser/tests/statement/ConstStatement.spec.d.ts +0 -1
  364. package/dist/parser/tests/statement/ConstStatement.spec.js +0 -500
  365. package/dist/parser/tests/statement/ConstStatement.spec.js.map +0 -1
  366. package/dist/parser/tests/statement/Continue.spec.d.ts +0 -1
  367. package/dist/parser/tests/statement/Continue.spec.js +0 -119
  368. package/dist/parser/tests/statement/Continue.spec.js.map +0 -1
  369. package/dist/parser/tests/statement/Declaration.spec.d.ts +0 -1
  370. package/dist/parser/tests/statement/Declaration.spec.js +0 -114
  371. package/dist/parser/tests/statement/Declaration.spec.js.map +0 -1
  372. package/dist/parser/tests/statement/Dim.spec.d.ts +0 -1
  373. package/dist/parser/tests/statement/Dim.spec.js +0 -80
  374. package/dist/parser/tests/statement/Dim.spec.js.map +0 -1
  375. package/dist/parser/tests/statement/Enum.spec.d.ts +0 -1
  376. package/dist/parser/tests/statement/Enum.spec.js +0 -744
  377. package/dist/parser/tests/statement/Enum.spec.js.map +0 -1
  378. package/dist/parser/tests/statement/For.spec.d.ts +0 -1
  379. package/dist/parser/tests/statement/For.spec.js +0 -45
  380. package/dist/parser/tests/statement/For.spec.js.map +0 -1
  381. package/dist/parser/tests/statement/ForEach.spec.d.ts +0 -1
  382. package/dist/parser/tests/statement/ForEach.spec.js +0 -36
  383. package/dist/parser/tests/statement/ForEach.spec.js.map +0 -1
  384. package/dist/parser/tests/statement/Function.spec.d.ts +0 -1
  385. package/dist/parser/tests/statement/Function.spec.js +0 -343
  386. package/dist/parser/tests/statement/Function.spec.js.map +0 -1
  387. package/dist/parser/tests/statement/Goto.spec.d.ts +0 -1
  388. package/dist/parser/tests/statement/Goto.spec.js +0 -51
  389. package/dist/parser/tests/statement/Goto.spec.js.map +0 -1
  390. package/dist/parser/tests/statement/Increment.spec.d.ts +0 -1
  391. package/dist/parser/tests/statement/Increment.spec.js +0 -120
  392. package/dist/parser/tests/statement/Increment.spec.js.map +0 -1
  393. package/dist/parser/tests/statement/InterfaceStatement.spec.d.ts +0 -1
  394. package/dist/parser/tests/statement/InterfaceStatement.spec.js +0 -110
  395. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +0 -1
  396. package/dist/parser/tests/statement/LibraryStatement.spec.d.ts +0 -1
  397. package/dist/parser/tests/statement/LibraryStatement.spec.js +0 -74
  398. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +0 -1
  399. package/dist/parser/tests/statement/Misc.spec.d.ts +0 -1
  400. package/dist/parser/tests/statement/Misc.spec.js +0 -292
  401. package/dist/parser/tests/statement/Misc.spec.js.map +0 -1
  402. package/dist/parser/tests/statement/PrintStatement.spec.d.ts +0 -1
  403. package/dist/parser/tests/statement/PrintStatement.spec.js +0 -200
  404. package/dist/parser/tests/statement/PrintStatement.spec.js.map +0 -1
  405. package/dist/parser/tests/statement/ReturnStatement.spec.d.ts +0 -1
  406. package/dist/parser/tests/statement/ReturnStatement.spec.js +0 -97
  407. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +0 -1
  408. package/dist/parser/tests/statement/Set.spec.d.ts +0 -1
  409. package/dist/parser/tests/statement/Set.spec.js +0 -232
  410. package/dist/parser/tests/statement/Set.spec.js.map +0 -1
  411. package/dist/parser/tests/statement/Stop.spec.d.ts +0 -1
  412. package/dist/parser/tests/statement/Stop.spec.js +0 -38
  413. package/dist/parser/tests/statement/Stop.spec.js.map +0 -1
  414. package/dist/parser/tests/statement/Throw.spec.d.ts +0 -1
  415. package/dist/parser/tests/statement/Throw.spec.js +0 -38
  416. package/dist/parser/tests/statement/Throw.spec.js.map +0 -1
  417. package/dist/parser/tests/statement/TryCatch.spec.d.ts +0 -1
  418. package/dist/parser/tests/statement/TryCatch.spec.js +0 -151
  419. package/dist/parser/tests/statement/TryCatch.spec.js.map +0 -1
  420. package/dist/preprocessor/Manifest.spec.d.ts +0 -1
  421. package/dist/preprocessor/Manifest.spec.js +0 -80
  422. package/dist/preprocessor/Manifest.spec.js.map +0 -1
  423. package/dist/types/ArrayType.spec.d.ts +0 -1
  424. package/dist/types/ArrayType.spec.js +0 -58
  425. package/dist/types/ArrayType.spec.js.map +0 -1
  426. package/dist/types/BooleanType.spec.d.ts +0 -1
  427. package/dist/types/BooleanType.spec.js +0 -18
  428. package/dist/types/BooleanType.spec.js.map +0 -1
  429. package/dist/types/BuiltInInterfaceAdder.spec.d.ts +0 -1
  430. package/dist/types/BuiltInInterfaceAdder.spec.js +0 -115
  431. package/dist/types/BuiltInInterfaceAdder.spec.js.map +0 -1
  432. package/dist/types/ClassType.spec.d.ts +0 -1
  433. package/dist/types/ClassType.spec.js +0 -76
  434. package/dist/types/ClassType.spec.js.map +0 -1
  435. package/dist/types/DoubleType.spec.d.ts +0 -1
  436. package/dist/types/DoubleType.spec.js +0 -20
  437. package/dist/types/DoubleType.spec.js.map +0 -1
  438. package/dist/types/DynamicType.spec.d.ts +0 -1
  439. package/dist/types/DynamicType.spec.js +0 -23
  440. package/dist/types/DynamicType.spec.js.map +0 -1
  441. package/dist/types/EnumType.spec.d.ts +0 -1
  442. package/dist/types/EnumType.spec.js +0 -33
  443. package/dist/types/EnumType.spec.js.map +0 -1
  444. package/dist/types/FloatType.spec.d.ts +0 -1
  445. package/dist/types/FloatType.spec.js +0 -12
  446. package/dist/types/FloatType.spec.js.map +0 -1
  447. package/dist/types/IntegerType.spec.d.ts +0 -1
  448. package/dist/types/IntegerType.spec.js +0 -16
  449. package/dist/types/IntegerType.spec.js.map +0 -1
  450. package/dist/types/InterfaceType.spec.d.ts +0 -1
  451. package/dist/types/InterfaceType.spec.js +0 -227
  452. package/dist/types/InterfaceType.spec.js.map +0 -1
  453. package/dist/types/IntersectionType.spec.d.ts +0 -1
  454. package/dist/types/IntersectionType.spec.js +0 -150
  455. package/dist/types/IntersectionType.spec.js.map +0 -1
  456. package/dist/types/InvalidType.spec.d.ts +0 -1
  457. package/dist/types/InvalidType.spec.js +0 -16
  458. package/dist/types/InvalidType.spec.js.map +0 -1
  459. package/dist/types/LongIntegerType.spec.d.ts +0 -1
  460. package/dist/types/LongIntegerType.spec.js +0 -18
  461. package/dist/types/LongIntegerType.spec.js.map +0 -1
  462. package/dist/types/ObjectType.spec.d.ts +0 -1
  463. package/dist/types/ObjectType.spec.js +0 -12
  464. package/dist/types/ObjectType.spec.js.map +0 -1
  465. package/dist/types/ReferenceType.spec.d.ts +0 -1
  466. package/dist/types/ReferenceType.spec.js +0 -151
  467. package/dist/types/ReferenceType.spec.js.map +0 -1
  468. package/dist/types/StringType.spec.d.ts +0 -1
  469. package/dist/types/StringType.spec.js +0 -12
  470. package/dist/types/StringType.spec.js.map +0 -1
  471. package/dist/types/TypedFunctionType.spec.d.ts +0 -1
  472. package/dist/types/TypedFunctionType.spec.js +0 -122
  473. package/dist/types/TypedFunctionType.spec.js.map +0 -1
  474. package/dist/types/UnionType.spec.d.ts +0 -1
  475. package/dist/types/UnionType.spec.js +0 -205
  476. package/dist/types/UnionType.spec.js.map +0 -1
  477. package/dist/types/VoidType.spec.d.ts +0 -1
  478. package/dist/types/VoidType.spec.js +0 -12
  479. package/dist/types/VoidType.spec.js.map +0 -1
  480. package/dist/types/helper.spec.d.ts +0 -1
  481. package/dist/types/helper.spec.js +0 -174
  482. package/dist/types/helper.spec.js.map +0 -1
  483. package/dist/types/roFunctionType.spec.d.ts +0 -1
  484. package/dist/types/roFunctionType.spec.js +0 -20
  485. package/dist/types/roFunctionType.spec.js.map +0 -1
package/README.md CHANGED
@@ -3,9 +3,10 @@
3
3
  A superset of Roku's BrightScript language. Compiles to standard BrightScript.
4
4
 
5
5
  [![build status](https://img.shields.io/github/actions/workflow/status/rokucommunity/brighterscript/build.yml?branch=master&logo=github)](https://github.com/rokucommunity/brighterscript/actions?query=branch%3Amaster+workflow%3Abuild)
6
+ [![security](https://img.shields.io/github/actions/workflow/status/rokucommunity/brighterscript/security-audit.yml?branch=master&label=security&logo=data:image/svg%2Bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHJlY3QgeD0iMyIgeT0iOCIgd2lkdGg9IjEwIiBoZWlnaHQ9IjciIHJ4PSIxIiBmaWxsPSJ3aGl0ZSIvPjxwYXRoIGQ9Ik01IDhWNWEzIDMgMCAwIDEgNiAwdjMiIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMiIvPjwvc3ZnPg==)](https://github.com/rokucommunity/brighterscript/actions/workflows/security-audit.yml)
6
7
  [![coverage status](https://img.shields.io/coveralls/github/rokucommunity/brighterscript?logo=coveralls)](https://coveralls.io/github/rokucommunity/brighterscript?branch=master)
7
- [![monthly downloads](https://img.shields.io/npm/dm/brighterscript.svg?sanitize=true&logo=npm&logoColor=)](https://npmcharts.com/compare/brighterscript?minimal=true)
8
- [![npm version](https://img.shields.io/npm/v/brighterscript.svg?logo=npm)](https://www.npmjs.com/package/brighterscript)
8
+ [![monthly downloads](https://img.shields.io/npm/dm/brighterscript.svg?sanitize=true&logo=npm&logoColor=&label=npm)](https://npmcharts.com/compare/brighterscript?minimal=true)
9
+ [![npm version](https://img.shields.io/npm/v/brighterscript.svg?logo=npm&label=npm)](https://www.npmjs.com/package/brighterscript)
9
10
  [![license](https://img.shields.io/npm/l/brighterscript.svg)](LICENSE)
10
11
  [![Slack](https://img.shields.io/badge/Slack-RokuCommunity-4A154B?logo=slack)](https://join.slack.com/t/rokudevelopers/shared_invite/zt-4vw7rg6v-NH46oY7hTktpRIBM_zGvwA)
11
12
 
@@ -103,6 +104,9 @@ BrighterScript adds several new features to the BrightScript language such as na
103
104
  <a href="https://www.haystack.tv/">
104
105
  <img height="38" src="https://user-images.githubusercontent.com/2544493/192610056-d1b5a382-edf4-47b9-a6a5-d2d3ee9094cb.png">
105
106
  </a>&nbsp;&nbsp;&nbsp;
107
+ <a href="https://www.tksssoftware.com/">
108
+ <img height="38" alt="TKSS Software Inc" src="https://github.com/user-attachments/assets/332d692f-7386-495d-b29d-c2ed7d3d2e2f" />
109
+ </a>&nbsp;&nbsp;&nbsp;
106
110
  </p>
107
111
  <br/>
108
112
 
@@ -219,6 +223,10 @@ ropm install @rokucommunity/bslib
219
223
 
220
224
  This project also contributes a class that aligns with Microsoft's [Language Server Protocol](https://microsoft.github.io/language-server-protocol/), which makes it easy to integrate `BrightScript` and `BrighterScript` with any IDE that supports the protocol. We won't go into more detail here, but you can use the `LanguageServer` class from this project to integrate into your IDE. The [vscode-BrightScript-language](https://github.com/rokucommunity/vscode-BrightScript-language) extension uses this LanguageServer class to bring `BrightScript` and `BrighterScript` language support to Visual Studio Code.
221
225
 
226
+ ## Accepted security advisories
227
+
228
+ Dependencies flagged by `npm audit` that we have reviewed and chosen not to upgrade are tracked in [audit-ci.jsonc](https://github.com/RokuCommunity/brighterscript/blob/master/audit-ci.jsonc). Each entry includes the advisory ID, the date it was added, and the reason it does not apply to this project.
229
+
222
230
  ## Changelog
223
231
  [Click here](CHANGELOG.md) to view the changelog.
224
232
 
@@ -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.",
@@ -103,6 +150,11 @@
103
150
  "type": "boolean",
104
151
  "default": false
105
152
  },
153
+ "relativeSourceMaps": {
154
+ "description": "If true, source file paths in generated sourcemaps will be relative to the map file location instead of absolute. This makes sourcemaps portable across different machines and environments.",
155
+ "type": "boolean",
156
+ "default": false
157
+ },
106
158
  "copyToStaging": {
107
159
  "description": "If true, the files are copied to staging. This setting is ignored when deploy is enabled or if createPackage is enabled",
108
160
  "deprecated": true,
@@ -327,6 +379,21 @@
327
379
  "error"
328
380
  ]
329
381
  },
382
+ "diagnosticReporters": {
383
+ "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'.",
384
+ "default": "detailed",
385
+ "oneOf": [
386
+ {
387
+ "$ref": "#/definitions/diagnosticReporterValue"
388
+ },
389
+ {
390
+ "type": "array",
391
+ "items": {
392
+ "$ref": "#/definitions/diagnosticReporterValue"
393
+ }
394
+ }
395
+ ]
396
+ },
330
397
  "allowBrighterScriptInBrightScript": {
331
398
  "description": "Allow brighterscript features (classes, interfaces, etc...) to be included in BrightScript (`.brs`) files, and force those files to be transpiled.",
332
399
  "type": "boolean",
@@ -336,6 +403,14 @@
336
403
  "description": "Legacy RokuOS versions required at least one argument in callfunc() invocations. Previous brighterscript versions handled this by inserting invalid as an argument when no other args are present. This is not necessary in modern RokuOS versions.",
337
404
  "type": "boolean",
338
405
  "default": false
406
+ },
407
+ "minFirmwareVersion": {
408
+ "description": "The minimum Roku firmware version required to run this project. When set, BrightScript (.brs) files will be validated to ensure they only use language features available in that firmware version or earlier. BrighterScript (.bs) files are always allowed to use all features since they are transpiled. Should be a semver-compatible string (e.g. \"11.0.0\").",
409
+ "type": "string",
410
+ "examples": [
411
+ "11.0.0",
412
+ "12.0.0"
413
+ ]
339
414
  }
340
415
  }
341
416
  }
@@ -101,6 +101,28 @@ export interface BsConfig {
101
101
  * Specify what diagnostic types should be printed to the console. Defaults to 'warn'
102
102
  */
103
103
  diagnosticLevel?: 'info' | 'hint' | 'warn' | 'error';
104
+ /**
105
+ * Specify how diagnostics should be reported to the console.
106
+ * Accepts a single value or an array. When given an array, each diagnostic is rendered
107
+ * once per entry (so you can, for example, get both detailed terminal output and
108
+ * github-actions PR annotations from a single run).
109
+ *
110
+ * Each value may be a preset name ('detailed', 'github-actions'), a custom template string
111
+ * (any string containing a `{` placeholder), or an object with explicit `type`.
112
+ *
113
+ * Custom templates support the following placeholders, replaced per diagnostic:
114
+ * {file}, {line}, {col}, {endLine}, {endCol}, {severity}, {code}, {message}, {source}
115
+ *
116
+ * Examples:
117
+ * "detailed"
118
+ * "github-actions"
119
+ * "{file}:{line}:{col} {severity} {code}: {message}"
120
+ * { type: "custom", format: "{file}:{line}: {message}" }
121
+ * ["detailed", "github-actions"]
122
+ *
123
+ * @default "detailed"
124
+ */
125
+ diagnosticReporters?: DiagnosticReporter | DiagnosticReporter[];
104
126
  /**
105
127
  * A list of scripts or modules to add extra diagnostics or transform the AST
106
128
  */
@@ -126,10 +148,16 @@ export interface BsConfig {
126
148
  */
127
149
  logLevel?: LogLevel | 'error' | 'warn' | 'log' | 'info' | 'debug' | 'trace' | 'off';
128
150
  /**
129
- * Override the path to source files in source maps. Use this if you have a preprocess step and want
130
- * to ensure the source maps point to the original location.
131
- * This will only alter source maps for files within rootDir. Any files found outside of rootDir will not
132
- * have their source maps changed. This option also affects the `SOURCE_FILE_PATH` and `SOURCE_LOCATION` source literals.
151
+ * Overrides where source files appear to live, in both sourcemaps and the `SOURCE_FILE_PATH` /
152
+ * `SOURCE_LOCATION` runtime literals. Only applies to files within `rootDir`.
153
+ *
154
+ * When `relativeSourceMaps` is false (default): the `rootDir` portion of each source path is
155
+ * replaced with `sourceRoot` directly in `sources[]`. The map's `sourceRoot` field is not written.
156
+ *
157
+ * When `relativeSourceMaps` is true: the map's `sourceRoot` field is set to this value, and
158
+ * `sources[]` entries are relative to `sourceRoot` (per the sourcemap spec).
159
+ *
160
+ * In both modes, `SOURCE_FILE_PATH` and `SOURCE_LOCATION` reflect the `sourceRoot`-substituted path.
133
161
  */
134
162
  sourceRoot?: string;
135
163
  /**
@@ -142,6 +170,20 @@ export interface BsConfig {
142
170
  * @default true
143
171
  */
144
172
  sourceMap?: boolean;
173
+ /**
174
+ * If true, file paths in sourcemap `sources[]` will be written as relative paths instead of absolute.
175
+ * Only has an effect when `sourceMap` is true.
176
+ *
177
+ * When false (default): `sources[]` contains absolute paths. If `sourceRoot` is set, the `rootDir`
178
+ * portion is replaced with `sourceRoot` in-place; the map's `sourceRoot` field is never written.
179
+ *
180
+ * When true: `sources[]` entries are relative to the map file's directory, making sourcemaps
181
+ * portable across machines. If `sourceRoot` is also set, the map's `sourceRoot` field is written
182
+ * and `sources[]` entries are instead relative to `sourceRoot` (per the sourcemap spec — consumers
183
+ * reconstruct the full path as `path.resolve(sourceRoot, sources[0])`).
184
+ * @default false
185
+ */
186
+ relativeSourceMaps?: boolean;
145
187
  /**
146
188
  * Excludes empty files from being included in the output. Some Brighterscript files
147
189
  * are left empty or with only comments after transpilation to Brightscript.
@@ -164,7 +206,50 @@ export interface BsConfig {
164
206
  */
165
207
  bslibDestinationDir?: string;
166
208
  legacyCallfuncHandling?: boolean;
209
+ /**
210
+ * The minimum Roku firmware version required to run this project.
211
+ * When set, BrightScript (.brs) files are always validated against the version restriction.
212
+ * BrighterScript (.bs) files are only validated for features that BrighterScript does not
213
+ * transpile — for example, optional chaining is emitted as-is, so it is subject to the
214
+ * restriction. Features that BrighterScript fully transpiles (such as classes) are not
215
+ * restricted, since the transpiled output is compatible with older firmware.
216
+ * Should be a semver-compatible string (e.g. "11.0.0").
217
+ */
218
+ minFirmwareVersion?: string;
219
+ /**
220
+ * When set to false, validation is skipped entirely. This can speed up builds when diagnostics
221
+ * are not needed (e.g. when using the VSCode extension which already surfaces diagnostics in the
222
+ * editor). Note that skipping validation may cause transpilation to fail or produce incorrect
223
+ * output if the project contains errors that would normally be caught during validation.
224
+ * @default true
225
+ */
226
+ validate?: boolean;
167
227
  }
168
- declare type OptionalBsConfigFields = '_ancestors' | 'sourceRoot' | 'project' | 'manifest' | 'noProject' | 'extends' | 'require' | 'outDir' | 'diagnosticLevel' | 'rootDir' | 'stagingDir' | 'stagingFolderPath';
228
+ /**
229
+ * Discriminated union describing how diagnostics are rendered to the console.
230
+ * - String shorthand: a preset name ('detailed' | 'github-actions') or a template string
231
+ * (any string containing a `{` is treated as a custom template).
232
+ * - Object form: explicit `type` so config files can stay strictly typed.
233
+ */
234
+ export declare type DiagnosticReporter = 'detailed' | 'github-actions' | (string & {}) | {
235
+ type: 'detailed';
236
+ } | {
237
+ type: 'github-actions';
238
+ } | {
239
+ type: 'custom';
240
+ format: string;
241
+ };
242
+ /**
243
+ * Object form of `DiagnosticReporter` after string shorthand has been resolved.
244
+ */
245
+ export declare type NormalizedDiagnosticReporter = {
246
+ type: 'detailed';
247
+ } | {
248
+ type: 'github-actions';
249
+ } | {
250
+ type: 'custom';
251
+ format: string;
252
+ };
253
+ declare type OptionalBsConfigFields = '_ancestors' | 'sourceRoot' | 'project' | 'manifest' | 'noProject' | 'extends' | 'require' | 'outDir' | 'diagnosticLevel' | 'rootDir' | 'stagingDir' | 'stagingFolderPath' | 'minFirmwareVersion' | 'diagnosticReporters';
169
254
  export declare type FinalizedBsConfig = Omit<Required<BsConfig>, OptionalBsConfigFields> & Pick<BsConfig, OptionalBsConfigFields>;
170
255
  export {};
@@ -13,6 +13,23 @@ export interface CodeActionShorthand {
13
13
  isPreferred?: boolean;
14
14
  changes: Array<InsertChange | ReplaceChange | DeleteChange>;
15
15
  }
16
+ /**
17
+ * Represents a single named "source fix all" action that a plugin contributes.
18
+ * Each action becomes a separate entry in VS Code's Source Actions menu.
19
+ * Plugins are responsible for merging all their changes into the `changes` array.
20
+ */
21
+ export interface SourceFixAllCodeAction {
22
+ title: string;
23
+ /**
24
+ * The LSP code action kind. Should start with `source.fixAll`.
25
+ * Use a sub-kind like `source.fixAll.brighterscript.imports` to create
26
+ * a distinct named entry in the Source Actions menu.
27
+ * Defaults to `source.fixAll.brighterscript`.
28
+ */
29
+ kind?: string;
30
+ isPreferred?: boolean;
31
+ changes: Array<InsertChange | ReplaceChange | DeleteChange>;
32
+ }
16
33
  export interface InsertChange {
17
34
  filePath: string;
18
35
  newText: string;
@@ -1 +1 @@
1
- {"version":3,"file":"CodeActionUtil.js","sourceRoot":"","sources":["../src/CodeActionUtil.ts"],"names":[],"mappings":";;;AACA,iEAA6E;AAiDpE,+FAjDA,sCAAc,OAiDA;AA/CvB,iCAA0B;AAE1B,MAAa,cAAc;IAEhB,gBAAgB,CAAC,GAAwB;QAC5C,MAAM,IAAI,GAAG;YACT,OAAO,EAAE,EAAE;SACG,CAAC;QACnB,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE;YAC9B,MAAM,GAAG,GAAG,cAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE5C,4CAA4C;YAC5C,IAAI,CAAC,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,EAAE;gBACrB,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aAC3B;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC1B,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CACnB,gCAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CACnD,CAAC;aACL;iBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;gBAClC,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CACnB,gCAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CACjD,CAAC;aACL;iBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACjC,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CACnB,gCAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAC7B,CAAC;aACL;SACJ;QACD,MAAM,MAAM,GAAG,kCAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;QACrC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACnE,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,uBAAuB,CAAC,WAAuC;QAClE,OAAO,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5F,KAAK,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK;YACtB,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,OAAO;YAChB,kBAAkB,EAAE,kBAAkB;SACzC,CAAC,CAAC,CAAC;IACR,CAAC;CACJ;AA3CD,wCA2CC;AAiCY,QAAA,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"CodeActionUtil.js","sourceRoot":"","sources":["../src/CodeActionUtil.ts"],"names":[],"mappings":";;;AACA,iEAA6E;AAiDpE,+FAjDA,sCAAc,OAiDA;AA/CvB,iCAA0B;AAE1B,MAAa,cAAc;IAEhB,gBAAgB,CAAC,GAAwB;QAC5C,MAAM,IAAI,GAAG;YACT,OAAO,EAAE,EAAE;SACG,CAAC;QACnB,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE;YAC9B,MAAM,GAAG,GAAG,cAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE5C,4CAA4C;YAC5C,IAAI,CAAC,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,EAAE;gBACrB,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aAC3B;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC1B,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CACnB,gCAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CACnD,CAAC;aACL;iBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;gBAClC,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CACnB,gCAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CACjD,CAAC;aACL;iBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACjC,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CACnB,gCAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAC7B,CAAC;aACL;SACJ;QACD,MAAM,MAAM,GAAG,kCAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;QACrC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACnE,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,uBAAuB,CAAC,WAAuC;QAClE,OAAO,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5F,KAAK,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK;YACtB,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,OAAO;YAChB,kBAAkB,EAAE,kBAAkB;SACzC,CAAC,CAAC,CAAC;IACR,CAAC;CACJ;AA3CD,wCA2CC;AAmDY,QAAA,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC"}
@@ -14,10 +14,6 @@ export declare class CommentFlagProcessor {
14
14
  * Valid diagnostic codes. Codes NOT in this list will be flagged
15
15
  */
16
16
  diagnosticCodes: DiagnosticCode[];
17
- /**
18
- * Diagnostic codes to never filter (these codes will always be flagged)
19
- */
20
- ignoreDiagnosticCodes: DiagnosticCode[];
21
17
  constructor(
22
18
  /**
23
19
  * The file this processor applies to
@@ -30,11 +26,7 @@ export declare class CommentFlagProcessor {
30
26
  /**
31
27
  * Valid diagnostic codes. Codes NOT in this list will be flagged
32
28
  */
33
- diagnosticCodes?: DiagnosticCode[],
34
- /**
35
- * Diagnostic codes to never filter (these codes will always be flagged)
36
- */
37
- ignoreDiagnosticCodes?: DiagnosticCode[]);
29
+ diagnosticCodes?: DiagnosticCode[]);
38
30
  /**
39
31
  * List of comment flags generated during processing
40
32
  */
@@ -44,12 +36,24 @@ export declare class CommentFlagProcessor {
44
36
  */
45
37
  diagnostics: BsDiagnostic[];
46
38
  /**
47
- * A list of all codes EXCEPT the ones in `ignoreDiagnosticCodes`
39
+ * Block-level `bs:disable` / `bs:enable` directives, recorded in source order
40
+ * by `tryAdd` and resolved into `CommentFlag`s by `finalize()`.
48
41
  */
49
- allCodesExceptIgnores: DiagnosticCode[];
42
+ private blockDirectives;
50
43
  tryAdd(text: string, range: Range): void;
51
44
  /**
52
- * Small tokenizer for bs:disable comments
45
+ * Resolve any pending `bs:disable` / `bs:enable` block directives into `CommentFlag`s.
46
+ * Must be called after the file's comment tokens have been fed through `tryAdd`.
47
+ */
48
+ finalize(): void;
49
+ /**
50
+ * Resolve a list of `{ code, range }` tokens into validated diagnostic codes.
51
+ * Pushes diagnostics for any unknown numeric codes. Returns `null` when no codes were specified
52
+ * (i.e. a bare `bs:disable` / `bs:enable`), and an array otherwise.
53
+ */
54
+ private collectCodes;
55
+ /**
56
+ * Small tokenizer for `bs:` directive comments.
53
57
  */
54
58
  private tokenize;
55
59
  /**
@@ -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)), { location: util_1.util.createLocationFromFileRange(this.file, 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)), { location: util_1.util.createLocationFromFileRange(this.file, 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
  }