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
@@ -1,9 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDiagnosticSquigglyText = exports.getDiagnosticLine = exports.printDiagnostic = exports.getPrintDiagnosticOptions = exports.MAX_RELATED_INFOS_COUNT = void 0;
3
+ exports.createCustomDiagnosticReporter = exports.printDiagnosticGithubActions = exports.applyDiagnosticTemplate = exports.getDiagnosticSquigglyText = exports.getDiagnosticLine = exports.printDiagnostic = exports.normalizeDiagnosticReporters = exports.getPrintDiagnosticOptions = exports.KNOWN_DIAGNOSTIC_TEMPLATE_PLACEHOLDERS = exports.MAX_RELATED_INFOS_COUNT = void 0;
4
4
  const chalk_1 = require("chalk");
5
5
  const vscode_languageserver_1 = require("vscode-languageserver");
6
6
  exports.MAX_RELATED_INFOS_COUNT = 3;
7
+ const KNOWN_DIAGNOSTIC_REPORTER_PRESETS = ['detailed', 'github-actions'];
8
+ /**
9
+ * The set of placeholder names recognized inside a custom diagnostic reporter template.
10
+ * `buildDiagnosticPlaceholders` is typed against this list, so adding a name here will
11
+ * cause a compile error until the corresponding value is supplied (and vice versa).
12
+ */
13
+ exports.KNOWN_DIAGNOSTIC_TEMPLATE_PLACEHOLDERS = [
14
+ 'file',
15
+ 'line',
16
+ 'col',
17
+ 'endLine',
18
+ 'endCol',
19
+ 'severity',
20
+ 'severityCode',
21
+ 'code',
22
+ 'message',
23
+ 'source'
24
+ ];
25
+ //Built directly from the known-names list so that adding a placeholder is a one-line change.
26
+ //Names are simple identifiers (camelCase) so no regex-escaping is needed.
27
+ const KNOWN_PLACEHOLDER_REGEX = new RegExp(`\\{(${exports.KNOWN_DIAGNOSTIC_TEMPLATE_PLACEHOLDERS.join('|')})\\}`, 'g');
28
+ function findKnownPlaceholders(template) {
29
+ var _a;
30
+ return (_a = template.match(KNOWN_PLACEHOLDER_REGEX)) !== null && _a !== void 0 ? _a : [];
31
+ }
32
+ function describeDiagnosticReporterOptions() {
33
+ const presets = KNOWN_DIAGNOSTIC_REPORTER_PRESETS.map(x => `"${x}"`).join(', ');
34
+ const placeholders = exports.KNOWN_DIAGNOSTIC_TEMPLATE_PLACEHOLDERS.map(x => `{${x}}`).join(', ');
35
+ return `Expected one of:\n - preset name: ${presets}\n - template containing at least one placeholder: ${placeholders}`;
36
+ }
7
37
  /**
8
38
  * Prepare print diagnostic formatting options
9
39
  */
@@ -43,6 +73,90 @@ function getPrintDiagnosticOptions(options) {
43
73
  };
44
74
  }
45
75
  exports.getPrintDiagnosticOptions = getPrintDiagnosticOptions;
76
+ /**
77
+ * Resolve a single `DiagnosticReporter` value into its object form.
78
+ * String shorthand rules:
79
+ * - if the value contains at least one known `{placeholder}`, it's a custom template
80
+ * - otherwise it must match one of the known preset names
81
+ * Throws with the full list of supported presets and placeholders when nothing matches,
82
+ * so typos in either bucket surface loudly.
83
+ */
84
+ function normalizeOneDiagnosticReporter(value) {
85
+ if (typeof value === 'string') {
86
+ if (KNOWN_DIAGNOSTIC_REPORTER_PRESETS.includes(value)) {
87
+ return { type: value };
88
+ }
89
+ if (findKnownPlaceholders(value).length > 0) {
90
+ return { type: 'custom', format: value };
91
+ }
92
+ throw new Error(`Unknown diagnostic reporter "${value}". ${describeDiagnosticReporterOptions()}`);
93
+ }
94
+ if (value.type === 'custom') {
95
+ if (typeof value.format !== 'string' || value.format.length === 0) {
96
+ throw new Error(`Diagnostic reporter type "custom" requires a non-empty "format" string.`);
97
+ }
98
+ if (findKnownPlaceholders(value.format).length === 0) {
99
+ throw new Error(`Diagnostic reporter template "${value.format}" does not contain any known placeholders. Supported placeholders: ${exports.KNOWN_DIAGNOSTIC_TEMPLATE_PLACEHOLDERS.map(x => `{${x}}`).join(', ')}`);
100
+ }
101
+ return { type: 'custom', format: value.format };
102
+ }
103
+ if (value.type === 'detailed' || value.type === 'github-actions') {
104
+ return { type: value.type };
105
+ }
106
+ throw new Error(`Unknown diagnostic reporter type "${value.type}".`);
107
+ }
108
+ /**
109
+ * Resolve a `DiagnosticReporter` value (or array of them) into the array of object-form
110
+ * reporters used by the printer.
111
+ *
112
+ * Behavior:
113
+ * - missing/null value → default `[{ type: 'detailed' }]`
114
+ * - explicit empty array → preserved (caller has opted out of all output)
115
+ * - invalid entry inside a non-empty input → warned via `logger`, skipped
116
+ * - duplicate entry (same preset type, or same custom-template format string) → warned, skipped
117
+ * - all entries invalid → warned, falls back to `[{ type: 'detailed' }]`
118
+ *
119
+ * Bad reporters never throw, surfacing a typo shouldn't be able to abort a build.
120
+ */
121
+ function normalizeDiagnosticReporters(value, logger) {
122
+ var _a;
123
+ if (value === undefined || value === null) {
124
+ return [{ type: 'detailed' }];
125
+ }
126
+ const inputs = Array.isArray(value) ? value : [value];
127
+ if (inputs.length === 0) {
128
+ return [];
129
+ }
130
+ const warn = (message) => (logger ? logger.warn(message) : console.warn(message));
131
+ //presets are deduped by `type`; custom templates are deduped by their format string. running the
132
+ //same reporter twice would only produce duplicate output, so it's almost always a config mistake.
133
+ const seen = new Set();
134
+ const result = [];
135
+ for (const input of inputs) {
136
+ let reporter;
137
+ try {
138
+ reporter = normalizeOneDiagnosticReporter(input);
139
+ }
140
+ catch (e) {
141
+ warn(`Ignoring invalid diagnostic reporter: ${(_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : String(e)}`);
142
+ continue;
143
+ }
144
+ const key = reporter.type === 'custom' ? `custom:${reporter.format}` : reporter.type;
145
+ if (seen.has(key)) {
146
+ const description = reporter.type === 'custom' ? `custom template "${reporter.format}"` : `"${reporter.type}"`;
147
+ warn(`Ignoring duplicate diagnostic reporter: ${description}`);
148
+ continue;
149
+ }
150
+ seen.add(key);
151
+ result.push(reporter);
152
+ }
153
+ if (result.length === 0) {
154
+ warn(`No valid diagnostic reporters configured; falling back to "detailed".`);
155
+ return [{ type: 'detailed' }];
156
+ }
157
+ return result;
158
+ }
159
+ exports.normalizeDiagnosticReporters = normalizeDiagnosticReporters;
46
160
  /**
47
161
  * Format output of one diagnostic
48
162
  */
@@ -165,4 +279,111 @@ function getDiagnosticSquigglyText(line, startCharacter, endCharacter) {
165
279
  return squiggle;
166
280
  }
167
281
  exports.getDiagnosticSquigglyText = getDiagnosticSquigglyText;
282
+ /**
283
+ * Build the placeholder values used by the custom-template reporter.
284
+ * The return type is keyed off `KNOWN_DIAGNOSTIC_TEMPLATE_PLACEHOLDERS`, so
285
+ * the compiler enforces that the two stay in sync.
286
+ * Positions are 1-based to match editor/CI conventions; missing ranges fall back to 1.
287
+ */
288
+ function buildDiagnosticPlaceholders(severity, severityText, filePath, diagnostic) {
289
+ var _a, _b, _c;
290
+ const range = (_a = diagnostic.location) === null || _a === void 0 ? void 0 : _a.range;
291
+ const line = range ? range.start.line + 1 : 1;
292
+ const col = range ? range.start.character + 1 : 1;
293
+ const endLine = range ? range.end.line + 1 : line;
294
+ const endCol = range ? range.end.character + 1 : col;
295
+ return {
296
+ file: filePath !== null && filePath !== void 0 ? filePath : '',
297
+ line: String(line),
298
+ col: String(col),
299
+ endLine: String(endLine),
300
+ endCol: String(endCol),
301
+ severity: severityText,
302
+ severityCode: String(severity),
303
+ code: diagnostic.code === undefined ? '' : String(diagnostic.code),
304
+ message: (_b = diagnostic.message) !== null && _b !== void 0 ? _b : '',
305
+ source: (_c = diagnostic.source) !== null && _c !== void 0 ? _c : ''
306
+ };
307
+ }
308
+ /**
309
+ * Substitute `{name}` placeholders in `template` using the given values.
310
+ * Only known placeholder names are matched; anything else (typos like `{filename}`
311
+ * or unrelated braces in user text) passes through unchanged.
312
+ */
313
+ function applyDiagnosticTemplate(template, values) {
314
+ return template.replace(KNOWN_PLACEHOLDER_REGEX, (_match, name) => values[name]);
315
+ }
316
+ exports.applyDiagnosticTemplate = applyDiagnosticTemplate;
317
+ /**
318
+ * Escape a value for use inside a GitHub Actions workflow command.
319
+ * The message portion (after `::`) needs `%`, `\r`, and `\n` escaped;
320
+ * parameter values additionally need `,` and `:` escaped.
321
+ * @see https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions
322
+ */
323
+ function escapeGithubActionsData(value) {
324
+ return value
325
+ .replace(/%/g, '%25')
326
+ .replace(/\r/g, '%0D')
327
+ .replace(/\n/g, '%0A');
328
+ }
329
+ function escapeGithubActionsProperty(value) {
330
+ return escapeGithubActionsData(value)
331
+ .replace(/:/g, '%3A')
332
+ .replace(/,/g, '%2C');
333
+ }
334
+ const GITHUB_ACTIONS_SEVERITY_COMMAND = {
335
+ [vscode_languageserver_1.DiagnosticSeverity.Error]: 'error',
336
+ [vscode_languageserver_1.DiagnosticSeverity.Warning]: 'warning',
337
+ [vscode_languageserver_1.DiagnosticSeverity.Information]: 'notice',
338
+ [vscode_languageserver_1.DiagnosticSeverity.Hint]: 'notice'
339
+ };
340
+ /**
341
+ * Print one diagnostic in GitHub Actions workflow command format so the
342
+ * runner surfaces it as a PR annotation.
343
+ */
344
+ function printDiagnosticGithubActions(ctx) {
345
+ var _a, _b, _c;
346
+ const { options, severity, filePath, diagnostic } = ctx;
347
+ if (!options.includeDiagnostic[severity]) {
348
+ return;
349
+ }
350
+ const command = (_a = GITHUB_ACTIONS_SEVERITY_COMMAND[severity]) !== null && _a !== void 0 ? _a : 'error';
351
+ const range = (_b = diagnostic.location) === null || _b === void 0 ? void 0 : _b.range;
352
+ const line = range ? range.start.line + 1 : 1;
353
+ const col = range ? range.start.character + 1 : 1;
354
+ const endLine = range ? range.end.line + 1 : line;
355
+ const endCol = range ? range.end.character + 1 : col;
356
+ const codeText = diagnostic.code === undefined ? '' : `BS${diagnostic.code}`;
357
+ const params = [];
358
+ if (filePath) {
359
+ params.push(`file=${escapeGithubActionsProperty(filePath)}`);
360
+ }
361
+ params.push(`line=${line}`);
362
+ params.push(`col=${col}`);
363
+ params.push(`endLine=${endLine}`);
364
+ params.push(`endColumn=${endCol}`);
365
+ if (codeText) {
366
+ params.push(`title=${escapeGithubActionsProperty(codeText)}`);
367
+ }
368
+ const message = escapeGithubActionsData((_c = diagnostic.message) !== null && _c !== void 0 ? _c : '');
369
+ console.log(`::${command} ${params.join(',')}::${message}`);
370
+ }
371
+ exports.printDiagnosticGithubActions = printDiagnosticGithubActions;
372
+ /**
373
+ * Build a reporter that renders each diagnostic via the given user-supplied template.
374
+ * See `BsConfig.diagnosticReporters` for the placeholder list.
375
+ */
376
+ function createCustomDiagnosticReporter(template) {
377
+ return (ctx) => {
378
+ var _a;
379
+ const { options, severity, filePath, diagnostic } = ctx;
380
+ if (!options.includeDiagnostic[severity]) {
381
+ return;
382
+ }
383
+ const severityText = (_a = options.severityTextMap[severity]) !== null && _a !== void 0 ? _a : '';
384
+ const placeholders = buildDiagnosticPlaceholders(severity, severityText, filePath, diagnostic);
385
+ console.log(applyDiagnosticTemplate(template, placeholders));
386
+ };
387
+ }
388
+ exports.createCustomDiagnosticReporter = createCustomDiagnosticReporter;
168
389
  //# sourceMappingURL=diagnosticUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnosticUtils.js","sourceRoot":"","sources":["../src/diagnosticUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnosticUtils.js","sourceRoot":"","sources":["../src/diagnosticUtils.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import type { CodeWithSourceMap } from 'source-map';
2
2
  import type { CompletionItem, Position, Location } from 'vscode-languageserver';
3
+ import type { NamespaceFileContribution } from '../Scope';
4
+ import { SymbolTable } from '../SymbolTable';
3
5
  import { FunctionScope } from '../FunctionScope';
4
- import type { Callable, CommentFlag, FileReference, FileLink, SerializedCodeFile, NamespaceContainer } from '../interfaces';
6
+ import type { Callable, CommentFlag, FileReference, FileLink, SerializedCodeFile } from '../interfaces';
7
+ import type { NamespaceContainer } from '../Scope';
5
8
  import type { Token } from '../lexer/Token';
6
9
  import { TokenKind } from '../lexer/TokenKind';
7
10
  import { Parser, ParseMode } from '../parser/Parser';
@@ -13,7 +16,6 @@ import type { AstNode, Expression } from '../parser/AstNode';
13
16
  import type { UnresolvedSymbol, AssignedSymbol } from '../AstValidationSegmenter';
14
17
  import { AstValidationSegmenter } from '../AstValidationSegmenter';
15
18
  import type { BscSymbol } from '../SymbolTable';
16
- import { SymbolTable } from '../SymbolTable';
17
19
  import { SymbolTypeFlag } from '../SymbolTypeFlag';
18
20
  import { Editor } from '../astUtils/Editor';
19
21
  import type { BscFile } from './BscFile';
@@ -82,6 +84,20 @@ export declare class BrsFile implements BscFile {
82
84
  private _functionScopes;
83
85
  get functionScopes(): FunctionScope[];
84
86
  private get cache();
87
+ /**
88
+ * Return this file's per-namespace contributions. Cached on the file's parser-level
89
+ * cache, so the result is invalidated automatically when the file re-parses.
90
+ *
91
+ * Each entry covers a single dotted name part (so a `namespace A.B.C` declaration
92
+ * produces entries for `A`, `A.B`, and `A.B.C`). Intermediates carry only structural
93
+ * fields; leaves populate the relevant statement collections plus a single-file
94
+ * symbolTable. The symbolTable has no parent provider (see Phase 4 design notes).
95
+ *
96
+ * The returned Map is shared across every Scope that pulls in this file, which is
97
+ * the core sharing primitive Phase 4 relies on.
98
+ * @internal
99
+ */
100
+ protected getNamespaceContributions(): Map<string, NamespaceFileContribution>;
85
101
  /**
86
102
  * files referenced by import statements
87
103
  */
@@ -7,6 +7,7 @@ const vscode_languageserver_2 = require("vscode-languageserver");
7
7
  const chalk_1 = require("chalk");
8
8
  const path = require("path");
9
9
  const DiagnosticMessages_1 = require("../DiagnosticMessages");
10
+ const SymbolTable_1 = require("../SymbolTable");
10
11
  const FunctionScope_1 = require("../FunctionScope");
11
12
  const Lexer_1 = require("../lexer/Lexer");
12
13
  const TokenKind_1 = require("../lexer/TokenKind");
@@ -22,7 +23,6 @@ const DocumentSymbolProcessor_1 = require("../bscPlugin/symbols/DocumentSymbolPr
22
23
  const WorkspaceSymbolProcessor_1 = require("../bscPlugin/symbols/WorkspaceSymbolProcessor");
23
24
  const AstValidationSegmenter_1 = require("../AstValidationSegmenter");
24
25
  const Logger_1 = require("../Logger");
25
- const SymbolTable_1 = require("../SymbolTable");
26
26
  const CachedLookups_1 = require("../astUtils/CachedLookups");
27
27
  const Editor_1 = require("../astUtils/Editor");
28
28
  const Manifest_1 = require("../preprocessor/Manifest");
@@ -107,12 +107,90 @@ class BrsFile {
107
107
  // eslint-disable-next-line @typescript-eslint/dot-notation
108
108
  return this._cachedLookups['cache'];
109
109
  }
110
+ /**
111
+ * Return this file's per-namespace contributions. Cached on the file's parser-level
112
+ * cache, so the result is invalidated automatically when the file re-parses.
113
+ *
114
+ * Each entry covers a single dotted name part (so a `namespace A.B.C` declaration
115
+ * produces entries for `A`, `A.B`, and `A.B.C`). Intermediates carry only structural
116
+ * fields; leaves populate the relevant statement collections plus a single-file
117
+ * symbolTable. The symbolTable has no parent provider (see Phase 4 design notes).
118
+ *
119
+ * The returned Map is shared across every Scope that pulls in this file, which is
120
+ * the core sharing primitive Phase 4 relies on.
121
+ * @internal
122
+ */
123
+ getNamespaceContributions() {
124
+ return this.cache.getOrAdd('namespaceContributions', () => {
125
+ let contributions = new Map();
126
+ this.ast.walk((0, visitors_1.createVisitor)({
127
+ NamespaceStatement: namespaceStatement => {
128
+ var _a, _b, _c, _d, _e, _f, _g, _h;
129
+ const name = namespaceStatement.getName(Parser_1.ParseMode.BrighterScript);
130
+ const nameParts = name.split('.');
131
+ let loopName = null;
132
+ //ensure each dotted prefix has a contribution entry
133
+ for (const part of nameParts) {
134
+ loopName = loopName === null ? part : `${loopName}.${part}`;
135
+ const lowerLoopName = loopName.toLowerCase();
136
+ if (!contributions.has(lowerLoopName)) {
137
+ //explicitly assign every optional field as undefined so all
138
+ //NamespaceFileContribution instances share a single V8 hidden
139
+ //class. Subsequent `??=` assignments mutate values without
140
+ //changing the object shape, which keeps property access fast.
141
+ contributions.set(lowerLoopName, {
142
+ file: this,
143
+ fullName: loopName,
144
+ lastPartName: part,
145
+ nameRange: (_a = namespaceStatement.nameExpression.location) === null || _a === void 0 ? void 0 : _a.range,
146
+ namespaceStatements: undefined,
147
+ statements: undefined,
148
+ classStatements: undefined,
149
+ functionStatements: undefined,
150
+ enumStatements: undefined,
151
+ constStatements: undefined,
152
+ symbolTable: undefined
153
+ });
154
+ }
155
+ }
156
+ //populate the leaf contribution from this namespaceStatement's body
157
+ const ns = contributions.get(name.toLowerCase());
158
+ ((_b = ns.namespaceStatements) !== null && _b !== void 0 ? _b : (ns.namespaceStatements = [])).push(namespaceStatement);
159
+ if (namespaceStatement.body.statements.length > 0) {
160
+ ((_c = ns.statements) !== null && _c !== void 0 ? _c : (ns.statements = [])).push(...namespaceStatement.body.statements);
161
+ }
162
+ for (const statement of namespaceStatement.body.statements) {
163
+ if ((0, reflection_1.isClassStatement)(statement) && statement.tokens.name) {
164
+ ((_d = ns.classStatements) !== null && _d !== void 0 ? _d : (ns.classStatements = {}))[statement.tokens.name.text.toLowerCase()] = statement;
165
+ }
166
+ else if ((0, reflection_1.isFunctionStatement)(statement) && statement.tokens.name) {
167
+ ((_e = ns.functionStatements) !== null && _e !== void 0 ? _e : (ns.functionStatements = {}))[statement.tokens.name.text.toLowerCase()] = statement;
168
+ }
169
+ else if ((0, reflection_1.isEnumStatement)(statement) && statement.fullName) {
170
+ ((_f = ns.enumStatements) !== null && _f !== void 0 ? _f : (ns.enumStatements = new Map())).set(statement.fullName.toLowerCase(), statement);
171
+ }
172
+ else if ((0, reflection_1.isConstStatement)(statement) && statement.fullName) {
173
+ ((_g = ns.constStatements) !== null && _g !== void 0 ? _g : (ns.constStatements = new Map())).set(statement.fullName.toLowerCase(), statement);
174
+ }
175
+ }
176
+ //single-file aggregate; NO parent provider (sibling resolution does not
177
+ //walk into a sibling's parent, so the previous scope-coupled provider
178
+ //was dead code)
179
+ (_h = ns.symbolTable) !== null && _h !== void 0 ? _h : (ns.symbolTable = new SymbolTable_1.SymbolTable(`Namespace File Contribution: '${ns.fullName}' in ${this.pkgPath}`));
180
+ ns.symbolTable.mergeSymbolTable(namespaceStatement.body.getSymbolTable());
181
+ }
182
+ }), {
183
+ walkMode: visitors_1.WalkMode.visitStatements
184
+ });
185
+ return contributions;
186
+ });
187
+ }
110
188
  /**
111
189
  * files referenced by import statements
112
190
  */
113
191
  get ownScriptImports() {
114
192
  var _a, _b;
115
- const result = (_b = (_a = this.cache) === null || _a === void 0 ? void 0 : _a.getOrAdd('BrsFile_ownScriptImports', () => {
193
+ const result = (_b = (_a = this.cache) === null || _a === void 0 ? void 0 : _a.getOrAdd('ownScriptImports', () => {
116
194
  var _a, _b, _c;
117
195
  const result = [];
118
196
  for (const statement of (_b = (_a = this._cachedLookups) === null || _a === void 0 ? void 0 : _a.importStatements) !== null && _b !== void 0 ? _b : []) {
@@ -267,7 +345,8 @@ class BrsFile {
267
345
  srcPath: this.srcPath,
268
346
  mode: this.parseMode,
269
347
  logger: this.program.logger,
270
- bsConsts: (0, Manifest_1.getBsConst)(this.program.getManifest())
348
+ bsConsts: (0, Manifest_1.getBsConst)(this.program.getManifest()),
349
+ minFirmwareVersion: this.program.options.minFirmwareVersion
271
350
  });
272
351
  });
273
352
  //absorb all lexing/preprocessing/parsing diagnostics
@@ -322,7 +401,7 @@ class BrsFile {
322
401
  */
323
402
  getCommentFlags(tokens) {
324
403
  var _a, _b, _c;
325
- const processor = new CommentFlagProcessor_1.CommentFlagProcessor(this, ['rem', `'`], DiagnosticMessages_1.diagnosticCodes, [DiagnosticMessages_1.DiagnosticCodeMap.unknownDiagnosticCode, DiagnosticMessages_1.DiagnosticLegacyCodeMap.unknownDiagnosticCode]);
404
+ const processor = new CommentFlagProcessor_1.CommentFlagProcessor(this, ['rem', `'`], DiagnosticMessages_1.diagnosticCodes);
326
405
  this.commentFlags = [];
327
406
  for (let lexerToken of tokens) {
328
407
  for (let triviaToken of (_a = lexerToken.leadingTrivia) !== null && _a !== void 0 ? _a : []) {
@@ -331,6 +410,7 @@ class BrsFile {
331
410
  }
332
411
  }
333
412
  }
413
+ processor.finalize();
334
414
  this.commentFlags.push(...processor.commentFlags);
335
415
  (_c = this.program) === null || _c === void 0 ? void 0 : _c.diagnostics.register(processor.diagnostics);
336
416
  }
@@ -1118,8 +1198,9 @@ class BrsFile {
1118
1198
  return programNode.toString();
1119
1199
  }
1120
1200
  dispose() {
1121
- var _a;
1122
- (_a = this._parser) === null || _a === void 0 ? void 0 : _a.dispose();
1201
+ var _a, _b;
1202
+ (_a = this._cachedLookups) === null || _a === void 0 ? void 0 : _a.invalidate();
1203
+ (_b = this._parser) === null || _b === void 0 ? void 0 : _b.dispose();
1123
1204
  //deleting these properties result in lower memory usage (garbage collection is magic!)
1124
1205
  delete this.fileContents;
1125
1206
  delete this._parser;