brighterscript 1.0.0-alpha.5 → 1.0.0-alpha.51

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 (652) hide show
  1. package/README.md +79 -138
  2. package/bsconfig.schema.json +196 -5
  3. package/dist/ActionPipeline.d.ts +10 -0
  4. package/dist/ActionPipeline.js +40 -0
  5. package/dist/ActionPipeline.js.map +1 -0
  6. package/dist/AstValidationSegmenter.d.ts +45 -0
  7. package/dist/AstValidationSegmenter.js +322 -0
  8. package/dist/AstValidationSegmenter.js.map +1 -0
  9. package/dist/BsConfig.d.ts +161 -43
  10. package/dist/BusyStatusTracker.d.ts +61 -0
  11. package/dist/BusyStatusTracker.js +148 -0
  12. package/dist/BusyStatusTracker.js.map +1 -0
  13. package/dist/Cache.d.ts +3 -8
  14. package/dist/Cache.js +9 -14
  15. package/dist/Cache.js.map +1 -1
  16. package/dist/CacheVerifier.d.ts +7 -0
  17. package/dist/CacheVerifier.js +20 -0
  18. package/dist/CacheVerifier.js.map +1 -0
  19. package/dist/CodeActionUtil.d.ts +29 -4
  20. package/dist/CodeActionUtil.js +22 -5
  21. package/dist/CodeActionUtil.js.map +1 -1
  22. package/dist/CommentFlagProcessor.d.ts +20 -15
  23. package/dist/CommentFlagProcessor.js +143 -58
  24. package/dist/CommentFlagProcessor.js.map +1 -1
  25. package/dist/CrossScopeValidator.d.ts +68 -0
  26. package/dist/CrossScopeValidator.js +650 -0
  27. package/dist/CrossScopeValidator.js.map +1 -0
  28. package/dist/DependencyGraph.d.ts +8 -3
  29. package/dist/DependencyGraph.js +49 -16
  30. package/dist/DependencyGraph.js.map +1 -1
  31. package/dist/DiagnosticCollection.d.ts +21 -5
  32. package/dist/DiagnosticCollection.js +77 -24
  33. package/dist/DiagnosticCollection.js.map +1 -1
  34. package/dist/DiagnosticFilterer.d.ts +27 -6
  35. package/dist/DiagnosticFilterer.js +273 -60
  36. package/dist/DiagnosticFilterer.js.map +1 -1
  37. package/dist/DiagnosticManager.d.ts +83 -0
  38. package/dist/DiagnosticManager.js +422 -0
  39. package/dist/DiagnosticManager.js.map +1 -0
  40. package/dist/DiagnosticMessages.d.ts +602 -196
  41. package/dist/DiagnosticMessages.js +926 -342
  42. package/dist/DiagnosticMessages.js.map +1 -1
  43. package/dist/DiagnosticSeverityAdjuster.d.ts +7 -0
  44. package/dist/DiagnosticSeverityAdjuster.js +45 -0
  45. package/dist/DiagnosticSeverityAdjuster.js.map +1 -0
  46. package/dist/FunctionScope.d.ts +28 -0
  47. package/dist/FunctionScope.js +52 -0
  48. package/dist/FunctionScope.js.map +1 -0
  49. package/dist/KeyedThrottler.d.ts +3 -3
  50. package/dist/KeyedThrottler.js +3 -3
  51. package/dist/KeyedThrottler.js.map +1 -1
  52. package/dist/LanguageServer.d.ts +136 -104
  53. package/dist/LanguageServer.js +577 -741
  54. package/dist/LanguageServer.js.map +1 -1
  55. package/dist/Logger.d.ts +17 -13
  56. package/dist/Logger.js +64 -34
  57. package/dist/Logger.js.map +1 -1
  58. package/dist/PluginInterface.d.ts +32 -10
  59. package/dist/PluginInterface.js +117 -7
  60. package/dist/PluginInterface.js.map +1 -1
  61. package/dist/Program.d.ts +302 -98
  62. package/dist/Program.js +1613 -726
  63. package/dist/Program.js.map +1 -1
  64. package/dist/ProgramBuilder.d.ts +39 -22
  65. package/dist/ProgramBuilder.js +245 -179
  66. package/dist/ProgramBuilder.js.map +1 -1
  67. package/dist/Scope.d.ts +227 -106
  68. package/dist/Scope.js +609 -557
  69. package/dist/Scope.js.map +1 -1
  70. package/dist/ScopeNamespaceLookup.d.ts +73 -0
  71. package/dist/ScopeNamespaceLookup.js +242 -0
  72. package/dist/ScopeNamespaceLookup.js.map +1 -0
  73. package/dist/SemanticTokenUtils.js +5 -1
  74. package/dist/SemanticTokenUtils.js.map +1 -1
  75. package/dist/Stopwatch.d.ts +4 -0
  76. package/dist/Stopwatch.js +8 -1
  77. package/dist/Stopwatch.js.map +1 -1
  78. package/dist/SymbolTable.d.ts +145 -26
  79. package/dist/SymbolTable.js +575 -64
  80. package/dist/SymbolTable.js.map +1 -1
  81. package/dist/SymbolTypeFlag.d.ts +9 -0
  82. package/dist/SymbolTypeFlag.js +14 -0
  83. package/dist/SymbolTypeFlag.js.map +1 -0
  84. package/dist/Throttler.d.ts +12 -0
  85. package/dist/Throttler.js +39 -0
  86. package/dist/Throttler.js.map +1 -1
  87. package/dist/Watcher.d.ts +0 -3
  88. package/dist/Watcher.js +0 -3
  89. package/dist/Watcher.js.map +1 -1
  90. package/dist/XmlScope.d.ts +5 -15
  91. package/dist/XmlScope.js +34 -90
  92. package/dist/XmlScope.js.map +1 -1
  93. package/dist/astUtils/CachedLookups.d.ts +50 -0
  94. package/dist/astUtils/CachedLookups.js +337 -0
  95. package/dist/astUtils/CachedLookups.js.map +1 -0
  96. package/dist/astUtils/Editor.d.ts +69 -0
  97. package/dist/astUtils/Editor.js +245 -0
  98. package/dist/astUtils/Editor.js.map +1 -0
  99. package/dist/astUtils/creators.d.ts +54 -19
  100. package/dist/astUtils/creators.js +242 -42
  101. package/dist/astUtils/creators.js.map +1 -1
  102. package/dist/astUtils/reflection.d.ts +199 -85
  103. package/dist/astUtils/reflection.js +518 -145
  104. package/dist/astUtils/reflection.js.map +1 -1
  105. package/dist/astUtils/stackedVisitor.js.map +1 -1
  106. package/dist/astUtils/visitors.d.ts +117 -53
  107. package/dist/astUtils/visitors.js +95 -15
  108. package/dist/astUtils/visitors.js.map +1 -1
  109. package/dist/astUtils/xml.d.ts +9 -8
  110. package/dist/astUtils/xml.js +12 -7
  111. package/dist/astUtils/xml.js.map +1 -1
  112. package/dist/bscPlugin/BscPlugin.d.ts +26 -4
  113. package/dist/bscPlugin/BscPlugin.js +96 -4
  114. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  115. package/dist/bscPlugin/CallExpressionInfo.d.ts +36 -0
  116. package/dist/bscPlugin/CallExpressionInfo.js +142 -0
  117. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
  118. package/dist/bscPlugin/FileWriter.d.ts +19 -0
  119. package/dist/bscPlugin/FileWriter.js +79 -0
  120. package/dist/bscPlugin/FileWriter.js.map +1 -0
  121. package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
  122. package/dist/bscPlugin/SignatureHelpUtil.js +137 -0
  123. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
  124. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +109 -7
  125. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +676 -26
  126. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  127. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.d.ts +17 -0
  128. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js +66 -0
  129. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js.map +1 -0
  130. package/dist/bscPlugin/codeActions/codeActionHelpers.d.ts +18 -0
  131. package/dist/bscPlugin/codeActions/codeActionHelpers.js +31 -0
  132. package/dist/bscPlugin/codeActions/codeActionHelpers.js.map +1 -0
  133. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +65 -0
  134. package/dist/bscPlugin/completions/CompletionsProcessor.js +633 -0
  135. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -0
  136. package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
  137. package/dist/bscPlugin/definition/DefinitionProvider.js +220 -0
  138. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
  139. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +9 -0
  140. package/dist/bscPlugin/fileProviders/FileProvider.js +51 -0
  141. package/dist/bscPlugin/fileProviders/FileProvider.js.map +1 -0
  142. package/dist/bscPlugin/hover/HoverProcessor.d.ts +18 -0
  143. package/dist/bscPlugin/hover/HoverProcessor.js +238 -0
  144. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -0
  145. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  146. package/dist/bscPlugin/references/ReferencesProvider.js +57 -0
  147. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  148. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.d.ts +7 -0
  149. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js +77 -0
  150. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js.map +1 -0
  151. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +14 -0
  152. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +164 -0
  153. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -0
  154. package/dist/bscPlugin/serialize/BslibManager.d.ts +12 -0
  155. package/dist/bscPlugin/serialize/BslibManager.js +46 -0
  156. package/dist/bscPlugin/serialize/BslibManager.js.map +1 -0
  157. package/dist/bscPlugin/serialize/FileSerializer.d.ts +9 -0
  158. package/dist/bscPlugin/serialize/FileSerializer.js +80 -0
  159. package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
  160. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
  161. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
  162. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
  163. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
  164. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
  165. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
  166. package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
  167. package/dist/bscPlugin/symbols/symbolUtils.js +141 -0
  168. package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
  169. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +34 -0
  170. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +504 -0
  171. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -0
  172. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +12 -0
  173. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +99 -0
  174. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
  175. package/dist/bscPlugin/validation/BrsFileAfterValidator.d.ts +7 -0
  176. package/dist/bscPlugin/validation/BrsFileAfterValidator.js +18 -0
  177. package/dist/bscPlugin/validation/BrsFileAfterValidator.js.map +1 -0
  178. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +51 -0
  179. package/dist/bscPlugin/validation/BrsFileValidator.js +714 -0
  180. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -0
  181. package/dist/bscPlugin/validation/ProgramValidator.d.ts +11 -0
  182. package/dist/bscPlugin/validation/ProgramValidator.js +33 -0
  183. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -0
  184. package/dist/bscPlugin/validation/ScopeValidator.d.ts +158 -0
  185. package/dist/bscPlugin/validation/ScopeValidator.js +1481 -0
  186. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -0
  187. package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
  188. package/dist/bscPlugin/validation/XmlFileValidator.js +50 -0
  189. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
  190. package/dist/cli.js +140 -28
  191. package/dist/cli.js.map +1 -1
  192. package/dist/common/Sequencer.d.ts +53 -0
  193. package/dist/common/Sequencer.js +233 -0
  194. package/dist/common/Sequencer.js.map +1 -0
  195. package/dist/deferred.d.ts +5 -3
  196. package/dist/deferred.js +10 -0
  197. package/dist/deferred.js.map +1 -1
  198. package/dist/diagnosticUtils.d.ts +61 -4
  199. package/dist/diagnosticUtils.js +285 -25
  200. package/dist/diagnosticUtils.js.map +1 -1
  201. package/dist/examples/plugins/removePrint.d.ts +2 -2
  202. package/dist/examples/plugins/removePrint.js +8 -12
  203. package/dist/examples/plugins/removePrint.js.map +1 -1
  204. package/dist/files/AssetFile.d.ts +24 -0
  205. package/dist/files/AssetFile.js +25 -0
  206. package/dist/files/AssetFile.js.map +1 -0
  207. package/dist/files/BrsFile.d.ts +161 -87
  208. package/dist/files/BrsFile.js +919 -936
  209. package/dist/files/BrsFile.js.map +1 -1
  210. package/dist/files/BscFile.d.ts +102 -0
  211. package/dist/files/BscFile.js +15 -0
  212. package/dist/files/BscFile.js.map +1 -0
  213. package/dist/files/Factory.d.ts +25 -0
  214. package/dist/files/Factory.js +22 -0
  215. package/dist/files/Factory.js.map +1 -0
  216. package/dist/files/LazyFileData.d.ts +21 -0
  217. package/dist/files/LazyFileData.js +54 -0
  218. package/dist/files/LazyFileData.js.map +1 -0
  219. package/dist/files/XmlFile.d.ts +80 -41
  220. package/dist/files/XmlFile.js +162 -137
  221. package/dist/files/XmlFile.js.map +1 -1
  222. package/dist/globalCallables.d.ts +3 -1
  223. package/dist/globalCallables.js +424 -184
  224. package/dist/globalCallables.js.map +1 -1
  225. package/dist/index.d.ts +32 -4
  226. package/dist/index.js +54 -7
  227. package/dist/index.js.map +1 -1
  228. package/dist/interfaces.d.ts +987 -125
  229. package/dist/interfaces.js +21 -0
  230. package/dist/interfaces.js.map +1 -1
  231. package/dist/lexer/Lexer.d.ts +51 -12
  232. package/dist/lexer/Lexer.js +214 -65
  233. package/dist/lexer/Lexer.js.map +1 -1
  234. package/dist/lexer/Token.d.ts +27 -11
  235. package/dist/lexer/Token.js +10 -2
  236. package/dist/lexer/Token.js.map +1 -1
  237. package/dist/lexer/TokenKind.d.ts +48 -2
  238. package/dist/lexer/TokenKind.js +167 -10
  239. package/dist/lexer/TokenKind.js.map +1 -1
  240. package/dist/logging.d.ts +14 -0
  241. package/dist/logging.js +29 -0
  242. package/dist/logging.js.map +1 -0
  243. package/dist/lsp/ActionQueue.d.ts +35 -0
  244. package/dist/lsp/ActionQueue.js +115 -0
  245. package/dist/lsp/ActionQueue.js.map +1 -0
  246. package/dist/lsp/DocumentManager.d.ts +63 -0
  247. package/dist/lsp/DocumentManager.js +122 -0
  248. package/dist/lsp/DocumentManager.js.map +1 -0
  249. package/dist/lsp/LspProject.d.ts +287 -0
  250. package/dist/lsp/LspProject.js +3 -0
  251. package/dist/lsp/LspProject.js.map +1 -0
  252. package/dist/lsp/PathFilterer.d.ts +75 -0
  253. package/dist/lsp/PathFilterer.js +196 -0
  254. package/dist/lsp/PathFilterer.js.map +1 -0
  255. package/dist/lsp/Project.d.ts +200 -0
  256. package/dist/lsp/Project.js +562 -0
  257. package/dist/lsp/Project.js.map +1 -0
  258. package/dist/lsp/ProjectManager.d.ts +288 -0
  259. package/dist/lsp/ProjectManager.js +967 -0
  260. package/dist/lsp/ProjectManager.js.map +1 -0
  261. package/dist/lsp/ReaderWriterManager.d.ts +21 -0
  262. package/dist/lsp/ReaderWriterManager.js +60 -0
  263. package/dist/lsp/ReaderWriterManager.js.map +1 -0
  264. package/dist/lsp/worker/MessageHandler.d.ts +99 -0
  265. package/dist/lsp/worker/MessageHandler.js +138 -0
  266. package/dist/lsp/worker/MessageHandler.js.map +1 -0
  267. package/dist/lsp/worker/WorkerPool.d.ts +38 -0
  268. package/dist/lsp/worker/WorkerPool.js +78 -0
  269. package/dist/lsp/worker/WorkerPool.js.map +1 -0
  270. package/dist/lsp/worker/WorkerThreadProject.d.ts +168 -0
  271. package/dist/lsp/worker/WorkerThreadProject.js +205 -0
  272. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -0
  273. package/dist/lsp/worker/WorkerThreadProjectRunner.d.ts +15 -0
  274. package/dist/lsp/worker/WorkerThreadProjectRunner.js +58 -0
  275. package/dist/lsp/worker/WorkerThreadProjectRunner.js.map +1 -0
  276. package/dist/lsp/worker/run.js +14 -0
  277. package/dist/lsp/worker/run.js.map +1 -0
  278. package/dist/parser/AstNode.d.ts +205 -0
  279. package/dist/parser/AstNode.js +305 -0
  280. package/dist/parser/AstNode.js.map +1 -0
  281. package/dist/parser/BrightScriptDocParser.d.ts +56 -0
  282. package/dist/parser/BrightScriptDocParser.js +294 -0
  283. package/dist/parser/BrightScriptDocParser.js.map +1 -0
  284. package/dist/parser/BrsTranspileState.d.ts +22 -3
  285. package/dist/parser/BrsTranspileState.js +19 -0
  286. package/dist/parser/BrsTranspileState.js.map +1 -1
  287. package/dist/parser/Expression.d.ts +601 -220
  288. package/dist/parser/Expression.js +1516 -502
  289. package/dist/parser/Expression.js.map +1 -1
  290. package/dist/parser/Parser.d.ts +137 -121
  291. package/dist/parser/Parser.js +1808 -982
  292. package/dist/parser/Parser.js.map +1 -1
  293. package/dist/parser/SGParser.d.ts +30 -13
  294. package/dist/parser/SGParser.js +94 -56
  295. package/dist/parser/SGParser.js.map +1 -1
  296. package/dist/parser/SGTypes.d.ts +134 -46
  297. package/dist/parser/SGTypes.js +206 -115
  298. package/dist/parser/SGTypes.js.map +1 -1
  299. package/dist/parser/Statement.d.ts +854 -267
  300. package/dist/parser/Statement.js +2416 -621
  301. package/dist/parser/Statement.js.map +1 -1
  302. package/dist/parser/TranspileState.d.ts +30 -14
  303. package/dist/parser/TranspileState.js +124 -27
  304. package/dist/parser/TranspileState.js.map +1 -1
  305. package/dist/preprocessor/Manifest.d.ts +6 -6
  306. package/dist/preprocessor/Manifest.js +17 -38
  307. package/dist/preprocessor/Manifest.js.map +1 -1
  308. package/dist/roku-types/data.json +20554 -0
  309. package/dist/roku-types/index.d.ts +5726 -0
  310. package/dist/roku-types/index.js +11 -0
  311. package/dist/roku-types/index.js.map +1 -0
  312. package/dist/types/ArrayType.d.ts +12 -5
  313. package/dist/types/ArrayType.js +95 -25
  314. package/dist/types/ArrayType.js.map +1 -1
  315. package/dist/types/AssociativeArrayType.d.ts +15 -0
  316. package/dist/types/AssociativeArrayType.js +64 -0
  317. package/dist/types/AssociativeArrayType.js.map +1 -0
  318. package/dist/types/BaseFunctionType.d.ts +10 -0
  319. package/dist/types/BaseFunctionType.js +26 -0
  320. package/dist/types/BaseFunctionType.js.map +1 -0
  321. package/dist/types/BooleanType.d.ts +9 -5
  322. package/dist/types/BooleanType.js +19 -8
  323. package/dist/types/BooleanType.js.map +1 -1
  324. package/dist/types/BscType.d.ts +41 -3
  325. package/dist/types/BscType.js +152 -0
  326. package/dist/types/BscType.js.map +1 -1
  327. package/dist/types/BscTypeKind.d.ts +28 -0
  328. package/dist/types/BscTypeKind.js +33 -0
  329. package/dist/types/BscTypeKind.js.map +1 -0
  330. package/dist/types/BuiltInInterfaceAdder.d.ts +28 -0
  331. package/dist/types/BuiltInInterfaceAdder.js +212 -0
  332. package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
  333. package/dist/types/CallFuncableType.d.ts +24 -0
  334. package/dist/types/CallFuncableType.js +91 -0
  335. package/dist/types/CallFuncableType.js.map +1 -0
  336. package/dist/types/ClassType.d.ts +17 -0
  337. package/dist/types/ClassType.js +63 -0
  338. package/dist/types/ClassType.js.map +1 -0
  339. package/dist/types/ComponentType.d.ts +22 -0
  340. package/dist/types/ComponentType.js +110 -0
  341. package/dist/types/ComponentType.js.map +1 -0
  342. package/dist/types/DoubleType.d.ts +10 -5
  343. package/dist/types/DoubleType.js +21 -17
  344. package/dist/types/DoubleType.js.map +1 -1
  345. package/dist/types/DynamicType.d.ts +13 -5
  346. package/dist/types/DynamicType.js +26 -5
  347. package/dist/types/DynamicType.js.map +1 -1
  348. package/dist/types/EnumType.d.ts +42 -0
  349. package/dist/types/EnumType.js +101 -0
  350. package/dist/types/EnumType.js.map +1 -0
  351. package/dist/types/FloatType.d.ts +10 -5
  352. package/dist/types/FloatType.js +21 -17
  353. package/dist/types/FloatType.js.map +1 -1
  354. package/dist/types/FunctionType.d.ts +8 -22
  355. package/dist/types/FunctionType.js +25 -63
  356. package/dist/types/FunctionType.js.map +1 -1
  357. package/dist/types/InheritableType.d.ts +29 -0
  358. package/dist/types/InheritableType.js +173 -0
  359. package/dist/types/InheritableType.js.map +1 -0
  360. package/dist/types/InlineInterfaceType.d.ts +5 -0
  361. package/dist/types/InlineInterfaceType.js +17 -0
  362. package/dist/types/InlineInterfaceType.js.map +1 -0
  363. package/dist/types/IntegerType.d.ts +10 -5
  364. package/dist/types/IntegerType.js +21 -17
  365. package/dist/types/IntegerType.js.map +1 -1
  366. package/dist/types/InterfaceType.d.ts +14 -6
  367. package/dist/types/InterfaceType.js +30 -15
  368. package/dist/types/InterfaceType.js.map +1 -1
  369. package/dist/types/IntersectionType.d.ts +29 -0
  370. package/dist/types/IntersectionType.js +256 -0
  371. package/dist/types/IntersectionType.js.map +1 -0
  372. package/dist/types/InvalidType.d.ts +10 -5
  373. package/dist/types/InvalidType.js +21 -9
  374. package/dist/types/InvalidType.js.map +1 -1
  375. package/dist/types/LongIntegerType.d.ts +10 -5
  376. package/dist/types/LongIntegerType.js +21 -17
  377. package/dist/types/LongIntegerType.js.map +1 -1
  378. package/dist/types/NamespaceType.d.ts +12 -0
  379. package/dist/types/NamespaceType.js +28 -0
  380. package/dist/types/NamespaceType.js.map +1 -0
  381. package/dist/types/ObjectType.d.ts +12 -5
  382. package/dist/types/ObjectType.js +25 -8
  383. package/dist/types/ObjectType.js.map +1 -1
  384. package/dist/types/ReferenceType.d.ts +123 -0
  385. package/dist/types/ReferenceType.js +726 -0
  386. package/dist/types/ReferenceType.js.map +1 -0
  387. package/dist/types/StringType.d.ts +12 -5
  388. package/dist/types/StringType.js +23 -8
  389. package/dist/types/StringType.js.map +1 -1
  390. package/dist/types/TypeStatementType.d.ts +19 -0
  391. package/dist/types/TypeStatementType.js +56 -0
  392. package/dist/types/TypeStatementType.js.map +1 -0
  393. package/dist/types/TypedFunctionType.d.ts +34 -0
  394. package/dist/types/TypedFunctionType.js +157 -0
  395. package/dist/types/TypedFunctionType.js.map +1 -0
  396. package/dist/types/UninitializedType.d.ts +11 -6
  397. package/dist/types/UninitializedType.js +20 -11
  398. package/dist/types/UninitializedType.js.map +1 -1
  399. package/dist/types/UnionType.d.ts +27 -0
  400. package/dist/types/UnionType.js +196 -0
  401. package/dist/types/UnionType.js.map +1 -0
  402. package/dist/types/VoidType.d.ts +11 -5
  403. package/dist/types/VoidType.js +22 -8
  404. package/dist/types/VoidType.js.map +1 -1
  405. package/dist/types/helpers.d.ts +51 -0
  406. package/dist/types/helpers.js +329 -0
  407. package/dist/types/helpers.js.map +1 -0
  408. package/dist/types/index.d.ts +22 -0
  409. package/dist/types/index.js +39 -0
  410. package/dist/types/index.js.map +1 -0
  411. package/dist/types/roFunctionType.d.ts +11 -0
  412. package/dist/types/roFunctionType.js +37 -0
  413. package/dist/types/roFunctionType.js.map +1 -0
  414. package/dist/util.d.ts +325 -185
  415. package/dist/util.js +2135 -568
  416. package/dist/util.js.map +1 -1
  417. package/dist/validators/ClassValidator.d.ts +9 -15
  418. package/dist/validators/ClassValidator.js +93 -138
  419. package/dist/validators/ClassValidator.js.map +1 -1
  420. package/package.json +183 -138
  421. package/CHANGELOG.md +0 -1188
  422. package/dist/astUtils/creators.spec.js +0 -21
  423. package/dist/astUtils/creators.spec.js.map +0 -1
  424. package/dist/astUtils/index.d.ts +0 -7
  425. package/dist/astUtils/index.js +0 -26
  426. package/dist/astUtils/index.js.map +0 -1
  427. package/dist/astUtils/reflection.spec.d.ts +0 -1
  428. package/dist/astUtils/reflection.spec.js +0 -292
  429. package/dist/astUtils/reflection.spec.js.map +0 -1
  430. package/dist/astUtils/stackedVisitor.spec.d.ts +0 -1
  431. package/dist/astUtils/stackedVisitor.spec.js +0 -79
  432. package/dist/astUtils/stackedVisitor.spec.js.map +0 -1
  433. package/dist/astUtils/visitors.spec.d.ts +0 -1
  434. package/dist/astUtils/visitors.spec.js +0 -854
  435. package/dist/astUtils/visitors.spec.js.map +0 -1
  436. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.d.ts +0 -1
  437. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +0 -194
  438. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +0 -1
  439. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.d.ts +0 -7
  440. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js +0 -63
  441. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js.map +0 -1
  442. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.d.ts +0 -1
  443. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js +0 -45
  444. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js.map +0 -1
  445. package/dist/files/BrsFile.Class.spec.d.ts +0 -1
  446. package/dist/files/BrsFile.Class.spec.js +0 -1081
  447. package/dist/files/BrsFile.Class.spec.js.map +0 -1
  448. package/dist/files/BrsFile.spec.d.ts +0 -1
  449. package/dist/files/BrsFile.spec.js +0 -2524
  450. package/dist/files/BrsFile.spec.js.map +0 -1
  451. package/dist/files/XmlFile.spec.d.ts +0 -1
  452. package/dist/files/XmlFile.spec.js +0 -1065
  453. package/dist/files/XmlFile.spec.js.map +0 -1
  454. package/dist/files/tests/imports.spec.d.ts +0 -1
  455. package/dist/files/tests/imports.spec.js +0 -241
  456. package/dist/files/tests/imports.spec.js.map +0 -1
  457. package/dist/lexer/Character.spec.d.ts +0 -1
  458. package/dist/lexer/Character.spec.js +0 -27
  459. package/dist/lexer/Character.spec.js.map +0 -1
  460. package/dist/lexer/Lexer.spec.d.ts +0 -1
  461. package/dist/lexer/Lexer.spec.js +0 -1101
  462. package/dist/lexer/Lexer.spec.js.map +0 -1
  463. package/dist/lexer/index.d.ts +0 -3
  464. package/dist/lexer/index.js +0 -17
  465. package/dist/lexer/index.js.map +0 -1
  466. package/dist/parser/Parser.Class.spec.d.ts +0 -1
  467. package/dist/parser/Parser.Class.spec.js +0 -390
  468. package/dist/parser/Parser.Class.spec.js.map +0 -1
  469. package/dist/parser/Parser.spec.d.ts +0 -4
  470. package/dist/parser/Parser.spec.js +0 -1216
  471. package/dist/parser/Parser.spec.js.map +0 -1
  472. package/dist/parser/SGParser.spec.d.ts +0 -1
  473. package/dist/parser/SGParser.spec.js +0 -145
  474. package/dist/parser/SGParser.spec.js.map +0 -1
  475. package/dist/parser/SGTypes.spec.d.ts +0 -1
  476. package/dist/parser/SGTypes.spec.js +0 -351
  477. package/dist/parser/SGTypes.spec.js.map +0 -1
  478. package/dist/parser/Statement.spec.d.ts +0 -1
  479. package/dist/parser/Statement.spec.js +0 -94
  480. package/dist/parser/Statement.spec.js.map +0 -1
  481. package/dist/parser/index.d.ts +0 -3
  482. package/dist/parser/index.js +0 -16
  483. package/dist/parser/index.js.map +0 -1
  484. package/dist/parser/tests/Parser.spec.d.ts +0 -18
  485. package/dist/parser/tests/Parser.spec.js +0 -35
  486. package/dist/parser/tests/Parser.spec.js.map +0 -1
  487. package/dist/parser/tests/controlFlow/For.spec.d.ts +0 -1
  488. package/dist/parser/tests/controlFlow/For.spec.js +0 -161
  489. package/dist/parser/tests/controlFlow/For.spec.js.map +0 -1
  490. package/dist/parser/tests/controlFlow/ForEach.spec.d.ts +0 -1
  491. package/dist/parser/tests/controlFlow/ForEach.spec.js +0 -106
  492. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +0 -1
  493. package/dist/parser/tests/controlFlow/If.spec.d.ts +0 -1
  494. package/dist/parser/tests/controlFlow/If.spec.js +0 -551
  495. package/dist/parser/tests/controlFlow/If.spec.js.map +0 -1
  496. package/dist/parser/tests/controlFlow/While.spec.d.ts +0 -1
  497. package/dist/parser/tests/controlFlow/While.spec.js +0 -107
  498. package/dist/parser/tests/controlFlow/While.spec.js.map +0 -1
  499. package/dist/parser/tests/expression/Additive.spec.d.ts +0 -1
  500. package/dist/parser/tests/expression/Additive.spec.js +0 -99
  501. package/dist/parser/tests/expression/Additive.spec.js.map +0 -1
  502. package/dist/parser/tests/expression/ArrayLiterals.spec.d.ts +0 -1
  503. package/dist/parser/tests/expression/ArrayLiterals.spec.js +0 -254
  504. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +0 -1
  505. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.d.ts +0 -1
  506. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +0 -266
  507. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +0 -1
  508. package/dist/parser/tests/expression/Boolean.spec.d.ts +0 -1
  509. package/dist/parser/tests/expression/Boolean.spec.js +0 -83
  510. package/dist/parser/tests/expression/Boolean.spec.js.map +0 -1
  511. package/dist/parser/tests/expression/Call.spec.d.ts +0 -1
  512. package/dist/parser/tests/expression/Call.spec.js +0 -134
  513. package/dist/parser/tests/expression/Call.spec.js.map +0 -1
  514. package/dist/parser/tests/expression/Exponential.spec.d.ts +0 -1
  515. package/dist/parser/tests/expression/Exponential.spec.js +0 -37
  516. package/dist/parser/tests/expression/Exponential.spec.js.map +0 -1
  517. package/dist/parser/tests/expression/Function.spec.d.ts +0 -1
  518. package/dist/parser/tests/expression/Function.spec.js +0 -403
  519. package/dist/parser/tests/expression/Function.spec.js.map +0 -1
  520. package/dist/parser/tests/expression/Indexing.spec.d.ts +0 -1
  521. package/dist/parser/tests/expression/Indexing.spec.js +0 -219
  522. package/dist/parser/tests/expression/Indexing.spec.js.map +0 -1
  523. package/dist/parser/tests/expression/Multiplicative.spec.d.ts +0 -1
  524. package/dist/parser/tests/expression/Multiplicative.spec.js +0 -67
  525. package/dist/parser/tests/expression/Multiplicative.spec.js.map +0 -1
  526. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.d.ts +0 -1
  527. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +0 -201
  528. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +0 -1
  529. package/dist/parser/tests/expression/PrefixUnary.spec.d.ts +0 -1
  530. package/dist/parser/tests/expression/PrefixUnary.spec.js +0 -105
  531. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +0 -1
  532. package/dist/parser/tests/expression/Primary.spec.d.ts +0 -1
  533. package/dist/parser/tests/expression/Primary.spec.js +0 -149
  534. package/dist/parser/tests/expression/Primary.spec.js.map +0 -1
  535. package/dist/parser/tests/expression/Relational.spec.d.ts +0 -1
  536. package/dist/parser/tests/expression/Relational.spec.js +0 -83
  537. package/dist/parser/tests/expression/Relational.spec.js.map +0 -1
  538. package/dist/parser/tests/expression/SourceLiteralExpression.spec.d.ts +0 -1
  539. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +0 -201
  540. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +0 -1
  541. package/dist/parser/tests/expression/TemplateStringExpression.spec.d.ts +0 -1
  542. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +0 -202
  543. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +0 -1
  544. package/dist/parser/tests/expression/TernaryExpression.spec.d.ts +0 -1
  545. package/dist/parser/tests/expression/TernaryExpression.spec.js +0 -323
  546. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +0 -1
  547. package/dist/parser/tests/statement/AssignmentOperators.spec.d.ts +0 -1
  548. package/dist/parser/tests/statement/AssignmentOperators.spec.js +0 -79
  549. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +0 -1
  550. package/dist/parser/tests/statement/Declaration.spec.d.ts +0 -1
  551. package/dist/parser/tests/statement/Declaration.spec.js +0 -108
  552. package/dist/parser/tests/statement/Declaration.spec.js.map +0 -1
  553. package/dist/parser/tests/statement/Dim.spec.d.ts +0 -1
  554. package/dist/parser/tests/statement/Dim.spec.js +0 -73
  555. package/dist/parser/tests/statement/Dim.spec.js.map +0 -1
  556. package/dist/parser/tests/statement/Function.spec.d.ts +0 -1
  557. package/dist/parser/tests/statement/Function.spec.js +0 -332
  558. package/dist/parser/tests/statement/Function.spec.js.map +0 -1
  559. package/dist/parser/tests/statement/Goto.spec.d.ts +0 -1
  560. package/dist/parser/tests/statement/Goto.spec.js +0 -50
  561. package/dist/parser/tests/statement/Goto.spec.js.map +0 -1
  562. package/dist/parser/tests/statement/Increment.spec.d.ts +0 -1
  563. package/dist/parser/tests/statement/Increment.spec.js +0 -117
  564. package/dist/parser/tests/statement/Increment.spec.js.map +0 -1
  565. package/dist/parser/tests/statement/LibraryStatement.spec.d.ts +0 -1
  566. package/dist/parser/tests/statement/LibraryStatement.spec.js +0 -74
  567. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +0 -1
  568. package/dist/parser/tests/statement/Misc.spec.d.ts +0 -1
  569. package/dist/parser/tests/statement/Misc.spec.js +0 -333
  570. package/dist/parser/tests/statement/Misc.spec.js.map +0 -1
  571. package/dist/parser/tests/statement/PrintStatement.spec.d.ts +0 -1
  572. package/dist/parser/tests/statement/PrintStatement.spec.js +0 -181
  573. package/dist/parser/tests/statement/PrintStatement.spec.js.map +0 -1
  574. package/dist/parser/tests/statement/ReturnStatement.spec.d.ts +0 -1
  575. package/dist/parser/tests/statement/ReturnStatement.spec.js +0 -94
  576. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +0 -1
  577. package/dist/parser/tests/statement/Set.spec.d.ts +0 -1
  578. package/dist/parser/tests/statement/Set.spec.js +0 -218
  579. package/dist/parser/tests/statement/Set.spec.js.map +0 -1
  580. package/dist/parser/tests/statement/Stop.spec.d.ts +0 -1
  581. package/dist/parser/tests/statement/Stop.spec.js +0 -37
  582. package/dist/parser/tests/statement/Stop.spec.js.map +0 -1
  583. package/dist/parser/tests/statement/Throw.spec.d.ts +0 -1
  584. package/dist/parser/tests/statement/Throw.spec.js +0 -35
  585. package/dist/parser/tests/statement/Throw.spec.js.map +0 -1
  586. package/dist/parser/tests/statement/TryCatch.spec.d.ts +0 -1
  587. package/dist/parser/tests/statement/TryCatch.spec.js +0 -140
  588. package/dist/parser/tests/statement/TryCatch.spec.js.map +0 -1
  589. package/dist/preprocessor/Chunk.d.ts +0 -82
  590. package/dist/preprocessor/Chunk.js +0 -77
  591. package/dist/preprocessor/Chunk.js.map +0 -1
  592. package/dist/preprocessor/Manifest.spec.d.ts +0 -0
  593. package/dist/preprocessor/Manifest.spec.js +0 -105
  594. package/dist/preprocessor/Manifest.spec.js.map +0 -1
  595. package/dist/preprocessor/Preprocessor.d.ts +0 -60
  596. package/dist/preprocessor/Preprocessor.js +0 -156
  597. package/dist/preprocessor/Preprocessor.js.map +0 -1
  598. package/dist/preprocessor/Preprocessor.spec.d.ts +0 -1
  599. package/dist/preprocessor/Preprocessor.spec.js +0 -152
  600. package/dist/preprocessor/Preprocessor.spec.js.map +0 -1
  601. package/dist/preprocessor/PreprocessorParser.d.ts +0 -61
  602. package/dist/preprocessor/PreprocessorParser.js +0 -194
  603. package/dist/preprocessor/PreprocessorParser.js.map +0 -1
  604. package/dist/preprocessor/PreprocessorParser.spec.d.ts +0 -1
  605. package/dist/preprocessor/PreprocessorParser.spec.js +0 -116
  606. package/dist/preprocessor/PreprocessorParser.spec.js.map +0 -1
  607. package/dist/preprocessor/index.d.ts +0 -3
  608. package/dist/preprocessor/index.js +0 -16
  609. package/dist/preprocessor/index.js.map +0 -1
  610. package/dist/types/ArrayType.spec.d.ts +0 -1
  611. package/dist/types/ArrayType.spec.js +0 -30
  612. package/dist/types/ArrayType.spec.js.map +0 -1
  613. package/dist/types/BooleanType.spec.d.ts +0 -1
  614. package/dist/types/BooleanType.spec.js +0 -12
  615. package/dist/types/BooleanType.spec.js.map +0 -1
  616. package/dist/types/CustomType.d.ts +0 -10
  617. package/dist/types/CustomType.js +0 -35
  618. package/dist/types/CustomType.js.map +0 -1
  619. package/dist/types/DoubleType.spec.d.ts +0 -1
  620. package/dist/types/DoubleType.spec.js +0 -12
  621. package/dist/types/DoubleType.spec.js.map +0 -1
  622. package/dist/types/DynamicType.spec.d.ts +0 -1
  623. package/dist/types/DynamicType.spec.js +0 -12
  624. package/dist/types/DynamicType.spec.js.map +0 -1
  625. package/dist/types/FloatType.spec.d.ts +0 -1
  626. package/dist/types/FloatType.spec.js +0 -12
  627. package/dist/types/FloatType.spec.js.map +0 -1
  628. package/dist/types/FunctionType.spec.d.ts +0 -1
  629. package/dist/types/FunctionType.spec.js +0 -29
  630. package/dist/types/FunctionType.spec.js.map +0 -1
  631. package/dist/types/IntegerType.spec.d.ts +0 -1
  632. package/dist/types/IntegerType.spec.js +0 -12
  633. package/dist/types/IntegerType.spec.js.map +0 -1
  634. package/dist/types/InvalidType.spec.d.ts +0 -1
  635. package/dist/types/InvalidType.spec.js +0 -12
  636. package/dist/types/InvalidType.spec.js.map +0 -1
  637. package/dist/types/LazyType.d.ts +0 -15
  638. package/dist/types/LazyType.js +0 -32
  639. package/dist/types/LazyType.js.map +0 -1
  640. package/dist/types/LongIntegerType.spec.d.ts +0 -1
  641. package/dist/types/LongIntegerType.spec.js +0 -12
  642. package/dist/types/LongIntegerType.spec.js.map +0 -1
  643. package/dist/types/ObjectType.spec.d.ts +0 -1
  644. package/dist/types/ObjectType.spec.js +0 -12
  645. package/dist/types/ObjectType.spec.js.map +0 -1
  646. package/dist/types/StringType.spec.d.ts +0 -1
  647. package/dist/types/StringType.spec.js +0 -12
  648. package/dist/types/StringType.spec.js.map +0 -1
  649. package/dist/types/VoidType.spec.d.ts +0 -1
  650. package/dist/types/VoidType.spec.js +0 -12
  651. package/dist/types/VoidType.spec.js.map +0 -1
  652. /package/dist/{astUtils/creators.spec.d.ts → lsp/worker/run.d.ts} +0 -0
@@ -0,0 +1,168 @@
1
+ import type { LspDiagnostic, ActivateResponse, ProjectConfig, FileRenameTextEdit } from '../LspProject';
2
+ import { type LspProject } from '../LspProject';
3
+ import { WorkerPool } from './WorkerPool';
4
+ import type { Hover, MaybePromise, SemanticToken } from '../../interfaces';
5
+ import type { DocumentAction, DocumentActionWithStatus } from '../DocumentManager';
6
+ import type { FileTranspileResult, SignatureInfoObj } from '../../Program';
7
+ import type { Position, Range, Location, DocumentSymbol, WorkspaceSymbol, CodeAction, CompletionList, SelectionRange } from 'vscode-languageserver-protocol';
8
+ import type { Logger } from '../../logging';
9
+ export declare const workerPool: WorkerPool;
10
+ export declare class WorkerThreadProject implements LspProject {
11
+ constructor(options?: {
12
+ logger?: Logger;
13
+ });
14
+ activate(options: ProjectConfig): Promise<ActivateResponse>;
15
+ logger: Logger;
16
+ isStandaloneProject: boolean;
17
+ private activationDeferred;
18
+ /**
19
+ * Options used to activate this project
20
+ */
21
+ activateOptions: ProjectConfig;
22
+ /**
23
+ * The root directory of the project
24
+ */
25
+ rootDir: string;
26
+ /**
27
+ * The file patterns from bsconfig.json that were used to find all files for this project
28
+ */
29
+ filePatterns: string[];
30
+ /**
31
+ * Path to a bsconfig.json file that will be used for this project
32
+ */
33
+ bsconfigPath?: string;
34
+ /**
35
+ * The contents of the bsconfig.json file. This is used to detect when the bsconfig file has not actually been changed (even if the fs says it did).
36
+ *
37
+ * Only available after `.activate()` has completed.
38
+ * @deprecated do not depend on this property. This will certainly be removed in a future release
39
+ */
40
+ bsconfigFileContents?: string;
41
+ /**
42
+ * The contents of the manifest file. This is used to detect when the manifest file has not actually been changed (even if the fs says it did).
43
+ *
44
+ * Only available after `.activate()` has completed.
45
+ * @deprecated do not depend on this property. This will certainly be removed in a future release
46
+ */
47
+ manifestFileContents?: string;
48
+ /**
49
+ * The absolute source path to the manifest file (the file that maps to dest 'manifest').
50
+ * May differ from rootDir/manifest if the project uses a custom {src; dest} mapping.
51
+ *
52
+ * Only available after `.activate()` has completed.
53
+ */
54
+ manifestSrcPath?: string;
55
+ /**
56
+ * The worker thread where the actual project will execute
57
+ */
58
+ private worker;
59
+ /**
60
+ * Path to the project. For directory-only projects, this is the path to the dir. For bsconfig.json projects, this is the path to the config.
61
+ */
62
+ projectKey: string;
63
+ /**
64
+ * The directory for the root of this project (typically where the bsconfig.json or manifest is located)
65
+ */
66
+ projectDir: string;
67
+ /**
68
+ * A unique number for this project, generated during this current language server session. Mostly used so we can identify which project is doing logging
69
+ */
70
+ projectNumber: number;
71
+ /**
72
+ * The path to the workspace where this project resides. A workspace can have multiple projects (by adding a bsconfig.json to each folder).
73
+ * Defaults to `.projectPath` if not set
74
+ */
75
+ workspaceFolder: string;
76
+ /**
77
+ * Promise that resolves when the project finishes activating
78
+ * @returns a promise that resolves when the project finishes activating
79
+ */
80
+ whenActivated(): Promise<void>;
81
+ /**
82
+ * Validate the project. This will trigger a full validation on any scopes that were changed since the last validation,
83
+ * and will also eventually emit a new 'diagnostics' event that includes all diagnostics for the project
84
+ */
85
+ validate(): Promise<void>;
86
+ /**
87
+ * Cancel any active validation that's running
88
+ */
89
+ cancelValidate(): Promise<void>;
90
+ getDiagnostics(): Promise<LspDiagnostic[]>;
91
+ /**
92
+ * Apply a series of file changes to the project. This is safe to call any time. Changes will be queued and flushed at the correct times
93
+ * during the program's lifecycle flow
94
+ */
95
+ applyFileChanges(documentActions: DocumentAction[]): Promise<DocumentActionWithStatus[]>;
96
+ /**
97
+ * Send a request with the standard structure
98
+ * @param name the name of the request
99
+ * @param data the array of data to send
100
+ * @returns the response from the request
101
+ */
102
+ private sendStandardRequest;
103
+ /**
104
+ * Get the full list of semantic tokens for the given file path
105
+ */
106
+ getSemanticTokens(options: {
107
+ srcPath: string;
108
+ }): Promise<SemanticToken[]>;
109
+ transpileFile(options: {
110
+ srcPath: string;
111
+ }): Promise<FileTranspileResult>;
112
+ getHover(options: {
113
+ srcPath: string;
114
+ position: Position;
115
+ }): Promise<Hover[]>;
116
+ getDefinition(options: {
117
+ srcPath: string;
118
+ position: Position;
119
+ }): Promise<Location[]>;
120
+ getSignatureHelp(options: {
121
+ srcPath: string;
122
+ position: Position;
123
+ }): Promise<SignatureInfoObj[]>;
124
+ getDocumentSymbol(options: {
125
+ srcPath: string;
126
+ }): Promise<DocumentSymbol[]>;
127
+ getWorkspaceSymbol(): Promise<WorkspaceSymbol[]>;
128
+ getReferences(options: {
129
+ srcPath: string;
130
+ position: Position;
131
+ }): Promise<Location[]>;
132
+ getFileRenameEdits(options: {
133
+ oldSrcPath: string;
134
+ newSrcPath: string;
135
+ }): Promise<FileRenameTextEdit[]>;
136
+ getCodeActions(options: {
137
+ srcPath: string;
138
+ range: Range;
139
+ }): Promise<CodeAction[]>;
140
+ getSourceFixAllCodeActions(options: {
141
+ srcPath: string;
142
+ }): Promise<CodeAction[]>;
143
+ getSelectionRanges(options: {
144
+ srcPath: string;
145
+ positions: Position[];
146
+ }): Promise<SelectionRange[]>;
147
+ getCompletions(options: {
148
+ srcPath: string;
149
+ position: Position;
150
+ }): Promise<CompletionList>;
151
+ /**
152
+ * Handles request/response/update messages from the worker thread
153
+ */
154
+ private messageHandler;
155
+ private processRequest;
156
+ private processUpdate;
157
+ on(eventName: 'critical-failure', handler: (data: {
158
+ message: string;
159
+ }) => void): any;
160
+ on(eventName: 'diagnostics', handler: (data: {
161
+ diagnostics: LspDiagnostic[];
162
+ }) => MaybePromise<void>): any;
163
+ on(eventName: 'all', handler: (eventName: string, data: any) => MaybePromise<void>): any;
164
+ private emit;
165
+ private emitter;
166
+ disposables: LspProject['disposables'];
167
+ dispose(): void;
168
+ }
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkerThreadProject = exports.workerPool = void 0;
4
+ const EventEmitter = require("eventemitter3");
5
+ const worker_threads_1 = require("worker_threads");
6
+ const MessageHandler_1 = require("./MessageHandler");
7
+ const util_1 = require("../../util");
8
+ const WorkerPool_1 = require("./WorkerPool");
9
+ const deferred_1 = require("../../deferred");
10
+ const logging_1 = require("../../logging");
11
+ const fsExtra = require("fs-extra");
12
+ const path = require("path");
13
+ const util_2 = require("../../util");
14
+ exports.workerPool = new WorkerPool_1.WorkerPool(() => {
15
+ var _a;
16
+ //construct the path to the `./run.ts` (or `./run.js`) script in this same directory
17
+ const runScriptPath = (0, util_2.standardizePath) `${__dirname}/run${path.extname(__filename)}`;
18
+ // Prepare execArgv for debugging support
19
+ const execArgv = [];
20
+ // Add ts-node if we're running TypeScript
21
+ if (/\.ts$/i.test(runScriptPath)) {
22
+ execArgv.push('--require', 'ts-node/register');
23
+ }
24
+ // Enable debugging for worker threads if the main process is being debugged
25
+ // Check if debugging is enabled via execArgv or environment variables
26
+ const isDebugging = process.execArgv.some(arg => arg.startsWith('--inspect')) || ((_a = process.env.NODE_OPTIONS) === null || _a === void 0 ? void 0 : _a.includes('--inspect'));
27
+ if (isDebugging) {
28
+ // Node.js will automatically assign a unique port for each worker when using --inspect=0
29
+ // This allows VSCode to automatically attach to worker threads
30
+ execArgv.push('--inspect=0');
31
+ }
32
+ return new worker_threads_1.Worker(runScriptPath, {
33
+ execArgv: execArgv.length > 0 ? execArgv : undefined
34
+ });
35
+ });
36
+ class WorkerThreadProject {
37
+ constructor(options) {
38
+ var _a;
39
+ this.isStandaloneProject = false;
40
+ this.activationDeferred = new deferred_1.Deferred();
41
+ this.emitter = new EventEmitter();
42
+ this.disposables = [];
43
+ this.logger = (_a = options === null || options === void 0 ? void 0 : options.logger) !== null && _a !== void 0 ? _a : (0, logging_1.createLogger)();
44
+ }
45
+ async activate(options) {
46
+ var _a;
47
+ this.activateOptions = options;
48
+ this.bsconfigPath = options.bsconfigPath ? util_1.default.standardizePath(options.bsconfigPath) : options.bsconfigPath;
49
+ this.projectDir = options.projectDir ? util_1.default.standardizePath(options.projectDir) : options.projectDir;
50
+ this.projectKey = options.projectKey ? util_1.default.standardizePath(options.projectKey) : (_a = options.bsconfigPath) !== null && _a !== void 0 ? _a : options.projectDir;
51
+ this.workspaceFolder = options.workspaceFolder ? util_1.default.standardizePath(options.workspaceFolder) : options.workspaceFolder;
52
+ this.projectNumber = options.projectNumber;
53
+ // start a new worker thread or get an unused existing thread
54
+ this.worker = exports.workerPool.getWorker();
55
+ this.messageHandler = new MessageHandler_1.MessageHandler({
56
+ name: 'MainThread',
57
+ port: this.worker,
58
+ onRequest: this.processRequest.bind(this),
59
+ onUpdate: this.processUpdate.bind(this)
60
+ });
61
+ this.disposables.push(this.messageHandler);
62
+ const activateResponse = await this.messageHandler.sendRequest('activate', { data: [options] });
63
+ this.bsconfigPath = activateResponse.data.bsconfigPath;
64
+ this.rootDir = activateResponse.data.rootDir;
65
+ this.filePatterns = activateResponse.data.filePatterns;
66
+ this.logger.logLevel = activateResponse.data.logLevel;
67
+ this.manifestSrcPath = activateResponse.data.manifestSrcPath;
68
+ //load the bsconfig file contents (used for performance optimizations externally)
69
+ try {
70
+ this.bsconfigFileContents = (await fsExtra.readFile(this.bsconfigPath)).toString();
71
+ }
72
+ catch (_b) { }
73
+ //load the manifest file contents (used for change detection to trigger project reloads).
74
+ //use manifestSrcPath from the activation response which reflects the actual src path (respects {src;dest} mappings)
75
+ try {
76
+ this.manifestFileContents = (await fsExtra.readFile(this.manifestSrcPath)).toString();
77
+ }
78
+ catch (_c) { }
79
+ this.activationDeferred.resolve();
80
+ return activateResponse.data;
81
+ }
82
+ /**
83
+ * Promise that resolves when the project finishes activating
84
+ * @returns a promise that resolves when the project finishes activating
85
+ */
86
+ whenActivated() {
87
+ return this.activationDeferred.promise;
88
+ }
89
+ /**
90
+ * Validate the project. This will trigger a full validation on any scopes that were changed since the last validation,
91
+ * and will also eventually emit a new 'diagnostics' event that includes all diagnostics for the project
92
+ */
93
+ async validate() {
94
+ const response = await this.messageHandler.sendRequest('validate');
95
+ return response.data;
96
+ }
97
+ /**
98
+ * Cancel any active validation that's running
99
+ */
100
+ async cancelValidate() {
101
+ const response = await this.messageHandler.sendRequest('cancelValidate');
102
+ return response.data;
103
+ }
104
+ async getDiagnostics() {
105
+ const response = await this.messageHandler.sendRequest('getDiagnostics');
106
+ return response.data;
107
+ }
108
+ /**
109
+ * Apply a series of file changes to the project. This is safe to call any time. Changes will be queued and flushed at the correct times
110
+ * during the program's lifecycle flow
111
+ */
112
+ async applyFileChanges(documentActions) {
113
+ const response = await this.messageHandler.sendRequest('applyFileChanges', {
114
+ data: [documentActions]
115
+ });
116
+ return response.data;
117
+ }
118
+ /**
119
+ * Send a request with the standard structure
120
+ * @param name the name of the request
121
+ * @param data the array of data to send
122
+ * @returns the response from the request
123
+ */
124
+ async sendStandardRequest(name, ...data) {
125
+ const response = await this.messageHandler.sendRequest(name, {
126
+ data: data
127
+ });
128
+ return response.data;
129
+ }
130
+ /**
131
+ * Get the full list of semantic tokens for the given file path
132
+ */
133
+ async getSemanticTokens(options) {
134
+ return this.sendStandardRequest('getSemanticTokens', options);
135
+ }
136
+ async transpileFile(options) {
137
+ return this.sendStandardRequest('transpileFile', options);
138
+ }
139
+ async getHover(options) {
140
+ return this.sendStandardRequest('getHover', options);
141
+ }
142
+ async getDefinition(options) {
143
+ return this.sendStandardRequest('getDefinition', options);
144
+ }
145
+ async getSignatureHelp(options) {
146
+ return this.sendStandardRequest('getSignatureHelp', options);
147
+ }
148
+ async getDocumentSymbol(options) {
149
+ return this.sendStandardRequest('getDocumentSymbol', options);
150
+ }
151
+ async getWorkspaceSymbol() {
152
+ return this.sendStandardRequest('getWorkspaceSymbol');
153
+ }
154
+ async getReferences(options) {
155
+ return this.sendStandardRequest('getReferences', options);
156
+ }
157
+ async getFileRenameEdits(options) {
158
+ return this.sendStandardRequest('getFileRenameEdits', options);
159
+ }
160
+ async getCodeActions(options) {
161
+ return this.sendStandardRequest('getCodeActions', options);
162
+ }
163
+ async getSourceFixAllCodeActions(options) {
164
+ return this.sendStandardRequest('getSourceFixAllCodeActions', options);
165
+ }
166
+ async getSelectionRanges(options) {
167
+ return this.sendStandardRequest('getSelectionRanges', options);
168
+ }
169
+ async getCompletions(options) {
170
+ return this.sendStandardRequest('getCompletions', options);
171
+ }
172
+ processRequest(request) {
173
+ }
174
+ processUpdate(update) {
175
+ //for now, all updates are treated like "events"
176
+ this.emit(update.name, update.data);
177
+ }
178
+ on(eventName, handler) {
179
+ this.emitter.on(eventName, handler);
180
+ return () => {
181
+ this.emitter.removeListener(eventName, handler);
182
+ };
183
+ }
184
+ async emit(eventName, data) {
185
+ //emit these events on next tick, otherwise they will be processed immediately which could cause issues
186
+ await util_1.default.sleep(0);
187
+ this.emitter.emit(eventName, data);
188
+ //emit the 'all' event
189
+ this.emitter.emit('all', eventName, data);
190
+ }
191
+ dispose() {
192
+ var _a, _b, _c;
193
+ for (let disposable of (_a = this.disposables) !== null && _a !== void 0 ? _a : []) {
194
+ (_b = disposable === null || disposable === void 0 ? void 0 : disposable.dispose) === null || _b === void 0 ? void 0 : _b.call(disposable);
195
+ }
196
+ this.disposables = [];
197
+ //move the worker back to the pool so it can be used again
198
+ if (this.worker) {
199
+ exports.workerPool.releaseWorker(this.worker);
200
+ }
201
+ (_c = this.emitter) === null || _c === void 0 ? void 0 : _c.removeAllListeners();
202
+ }
203
+ }
204
+ exports.WorkerThreadProject = WorkerThreadProject;
205
+ //# sourceMappingURL=WorkerThreadProject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerThreadProject.js","sourceRoot":"","sources":["../../../src/lsp/worker/WorkerThreadProject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /// <reference types="node" />
2
+ import type { MessagePort } from 'worker_threads';
3
+ /**
4
+ * Runner logic for Running a Project in a worker thread.
5
+ */
6
+ export declare class WorkerThreadProjectRunner {
7
+ private requestInterceptors;
8
+ private project;
9
+ private messageHandler;
10
+ run(parentPort: MessagePort): void;
11
+ /**
12
+ * Fired anytime we get an `activate` request from the client. This allows us to clean up the previous project and make a new one
13
+ */
14
+ private onActivate;
15
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkerThreadProjectRunner = void 0;
4
+ const logging_1 = require("../../logging");
5
+ const Project_1 = require("../Project");
6
+ const MessageHandler_1 = require("./MessageHandler");
7
+ /**
8
+ * Runner logic for Running a Project in a worker thread.
9
+ */
10
+ class WorkerThreadProjectRunner {
11
+ constructor() {
12
+ //collection of interceptors that will be called when events are fired
13
+ this.requestInterceptors = {};
14
+ }
15
+ run(parentPort) {
16
+ //ensure the lgoger is configured for LSP mode
17
+ (0, logging_1.setLspLoggerProps)();
18
+ this.messageHandler = new MessageHandler_1.MessageHandler({
19
+ name: 'WorkerThread',
20
+ port: parentPort,
21
+ onRequest: async (request) => {
22
+ var _a, _b, _c;
23
+ try {
24
+ //if we have a request interceptor registered for this event, call it
25
+ (_b = (_a = this.requestInterceptors)[request.name]) === null || _b === void 0 ? void 0 : _b.call(_a, request.data);
26
+ //only the LspProject interface method names will be passed as request names, so just call those functions on the Project class directly
27
+ let responseData = await this.project[request.name](...(_c = request.data) !== null && _c !== void 0 ? _c : []);
28
+ this.messageHandler.sendResponse(request, { data: responseData });
29
+ //we encountered a runtime crash. Pass that error along as the response to this request
30
+ }
31
+ catch (e) {
32
+ const error = e;
33
+ this.messageHandler.sendResponse(request, { error: error });
34
+ }
35
+ },
36
+ onUpdate: (update) => {
37
+ }
38
+ });
39
+ this.requestInterceptors.activate = this.onActivate.bind(this);
40
+ }
41
+ /**
42
+ * Fired anytime we get an `activate` request from the client. This allows us to clean up the previous project and make a new one
43
+ */
44
+ onActivate() {
45
+ var _a;
46
+ //clean up any existing project
47
+ (_a = this.project) === null || _a === void 0 ? void 0 : _a.dispose();
48
+ //make a new instance of the project (which is the same way we run it in the main thread).
49
+ this.project = new Project_1.Project();
50
+ this.project.on('all', (eventName, data) => {
51
+ this.messageHandler.sendUpdate(eventName, {
52
+ data: data
53
+ });
54
+ });
55
+ }
56
+ }
57
+ exports.WorkerThreadProjectRunner = WorkerThreadProjectRunner;
58
+ //# sourceMappingURL=WorkerThreadProjectRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerThreadProjectRunner.js","sourceRoot":"","sources":["../../../src/lsp/worker/WorkerThreadProjectRunner.ts"],"names":[],"mappings":";;;AAAA,2CAAkD;AAElD,wCAAqC;AAErC,qDAAkD;AAGlD;;GAEG;AACH,MAAa,yBAAyB;IAAtC;QACI,sEAAsE;QAC9D,wBAAmB,GAAG,EAAyD,CAAC;IAoD5F,CAAC;IA9CU,GAAG,CAAC,UAAuB;QAC9B,8CAA8C;QAC9C,IAAA,2BAAiB,GAAE,CAAC;QAEpB,IAAI,CAAC,cAAc,GAAG,IAAI,+BAAc,CAAC;YACrC,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,KAAK,EAAE,OAAsB,EAAE,EAAE;;gBACxC,IAAI;oBACA,qEAAqE;oBACrE,MAAA,MAAA,IAAI,CAAC,mBAAmB,EAAC,OAAO,CAAC,IAAI,CAAC,mDAAG,OAAO,CAAC,IAAI,CAAC,CAAC;oBAEvD,wIAAwI;oBACxI,IAAI,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAC;oBAC3E,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;oBAElE,uFAAuF;iBAC1F;gBAAC,OAAO,CAAC,EAAE;oBACR,MAAM,KAAK,GAAU,CAAQ,CAAC;oBAC9B,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;iBAC/D;YACL,CAAC;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YAErB,CAAC;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACK,UAAU;;QACd,+BAA+B;QAC/B,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,EAAE,CAAC;QAExB,0FAA0F;QAC1F,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAC;QAE7B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,SAAiB,EAAE,IAAS,EAAE,EAAE;YACpD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE;gBACtC,IAAI,EAAE,IAAI;aACb,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAtDD,8DAsDC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * This script is the entry point for worker threads that run LSP Projects.
5
+ * It sets up the WorkerThreadProjectRunner to handle messages from the main thread.
6
+ */
7
+ const worker_threads_1 = require("worker_threads");
8
+ const WorkerThreadProjectRunner_1 = require("./WorkerThreadProjectRunner");
9
+ const runner = new WorkerThreadProjectRunner_1.WorkerThreadProjectRunner();
10
+ if (!worker_threads_1.parentPort) {
11
+ throw new Error('This script must be run as a worker thread');
12
+ }
13
+ runner.run(worker_threads_1.parentPort);
14
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/lsp/worker/run.ts"],"names":[],"mappings":";;AAAA;;;GAGG;AACH,mDAA4C;AAC5C,2EAAwE;AAExE,MAAM,MAAM,GAAG,IAAI,qDAAyB,EAAE,CAAC;AAC/C,IAAI,CAAC,2BAAU,EAAE;IACb,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;CACjE;AACD,MAAM,CAAC,GAAG,CAAC,2BAAU,CAAC,CAAC"}