brighterscript 1.0.0-alpha.44 → 1.0.0-alpha.46

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 (229) hide show
  1. package/bsconfig.schema.json +6 -1
  2. package/dist/AstValidationSegmenter.js +6 -1
  3. package/dist/AstValidationSegmenter.js.map +1 -1
  4. package/dist/BsConfig.d.ts +4 -0
  5. package/dist/BusyStatusTracker.d.ts +37 -7
  6. package/dist/BusyStatusTracker.js +73 -8
  7. package/dist/BusyStatusTracker.js.map +1 -1
  8. package/dist/Cache.d.ts +0 -4
  9. package/dist/Cache.js +0 -6
  10. package/dist/Cache.js.map +1 -1
  11. package/dist/CodeActionUtil.d.ts +6 -1
  12. package/dist/CodeActionUtil.js +3 -0
  13. package/dist/CodeActionUtil.js.map +1 -1
  14. package/dist/CrossScopeValidator.d.ts +1 -1
  15. package/dist/CrossScopeValidator.js +8 -7
  16. package/dist/CrossScopeValidator.js.map +1 -1
  17. package/dist/DiagnosticCollection.d.ts +19 -5
  18. package/dist/DiagnosticCollection.js +71 -23
  19. package/dist/DiagnosticCollection.js.map +1 -1
  20. package/dist/DiagnosticFilterer.d.ts +14 -1
  21. package/dist/DiagnosticFilterer.js +130 -12
  22. package/dist/DiagnosticFilterer.js.map +1 -1
  23. package/dist/DiagnosticManager.d.ts +11 -1
  24. package/dist/DiagnosticManager.js +192 -35
  25. package/dist/DiagnosticManager.js.map +1 -1
  26. package/dist/DiagnosticMessages.d.ts +19 -7
  27. package/dist/DiagnosticMessages.js +21 -9
  28. package/dist/DiagnosticMessages.js.map +1 -1
  29. package/dist/LanguageServer.d.ts +82 -139
  30. package/dist/LanguageServer.js +402 -980
  31. package/dist/LanguageServer.js.map +1 -1
  32. package/dist/Logger.d.ts +9 -4
  33. package/dist/Logger.js +30 -6
  34. package/dist/Logger.js.map +1 -1
  35. package/dist/PluginInterface.d.ts +8 -8
  36. package/dist/PluginInterface.js.map +1 -1
  37. package/dist/Program.d.ts +23 -4
  38. package/dist/Program.js +294 -194
  39. package/dist/Program.js.map +1 -1
  40. package/dist/ProgramBuilder.d.ts +22 -7
  41. package/dist/ProgramBuilder.js +44 -21
  42. package/dist/ProgramBuilder.js.map +1 -1
  43. package/dist/Scope.d.ts +11 -6
  44. package/dist/Scope.js +60 -36
  45. package/dist/Scope.js.map +1 -1
  46. package/dist/SemanticTokenUtils.js +1 -1
  47. package/dist/SemanticTokenUtils.js.map +1 -1
  48. package/dist/astUtils/CachedLookups.js +0 -1
  49. package/dist/astUtils/CachedLookups.js.map +1 -1
  50. package/dist/astUtils/reflection.d.ts +4 -4
  51. package/dist/astUtils/reflection.js +12 -10
  52. package/dist/astUtils/reflection.js.map +1 -1
  53. package/dist/bscPlugin/BscPlugin.d.ts +3 -3
  54. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  55. package/dist/bscPlugin/CallExpressionInfo.js +4 -2
  56. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
  57. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +2 -0
  58. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +147 -0
  59. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  60. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +44 -0
  61. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  62. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +1 -1
  63. package/dist/bscPlugin/completions/CompletionsProcessor.js +15 -15
  64. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  65. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +82 -5
  66. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
  67. package/dist/bscPlugin/hover/HoverProcessor.js +3 -0
  68. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  69. package/dist/bscPlugin/hover/HoverProcessor.spec.js +44 -0
  70. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  71. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +4 -0
  72. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  73. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +17 -0
  74. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  75. package/dist/bscPlugin/validation/BrsFileValidator.js +21 -0
  76. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  77. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +161 -7
  78. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  79. package/dist/bscPlugin/validation/ScopeValidator.d.ts +4 -1
  80. package/dist/bscPlugin/validation/ScopeValidator.js +166 -63
  81. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  82. package/dist/bscPlugin/validation/ScopeValidator.spec.js +21 -9
  83. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
  84. package/dist/common/Sequencer.d.ts +53 -0
  85. package/dist/common/Sequencer.js +233 -0
  86. package/dist/common/Sequencer.js.map +1 -0
  87. package/dist/common/Sequencer.spec.d.ts +1 -0
  88. package/dist/common/Sequencer.spec.js +75 -0
  89. package/dist/common/Sequencer.spec.js.map +1 -0
  90. package/dist/deferred.d.ts +2 -0
  91. package/dist/deferred.js +10 -0
  92. package/dist/deferred.js.map +1 -1
  93. package/dist/examples/plugins/removePrint.d.ts +2 -2
  94. package/dist/examples/plugins/removePrint.js.map +1 -1
  95. package/dist/files/BrsFile.d.ts +1 -1
  96. package/dist/files/BrsFile.js +22 -42
  97. package/dist/files/BrsFile.js.map +1 -1
  98. package/dist/files/BrsFile.spec.js +155 -4
  99. package/dist/files/BrsFile.spec.js.map +1 -1
  100. package/dist/files/BscFile.d.ts +1 -0
  101. package/dist/files/LazyFileData.d.ts +1 -0
  102. package/dist/files/XmlFile.spec.js +1 -1
  103. package/dist/files/XmlFile.spec.js.map +1 -1
  104. package/dist/globalCallables.js +189 -189
  105. package/dist/globalCallables.js.map +1 -1
  106. package/dist/interfaces.d.ts +56 -13
  107. package/dist/interfaces.js.map +1 -1
  108. package/dist/lexer/Lexer.js +1 -1
  109. package/dist/lexer/Lexer.js.map +1 -1
  110. package/dist/logging.d.ts +6 -1
  111. package/dist/logging.js +14 -1
  112. package/dist/logging.js.map +1 -1
  113. package/dist/lsp/ActionQueue.d.ts +35 -0
  114. package/dist/lsp/ActionQueue.js +115 -0
  115. package/dist/lsp/ActionQueue.js.map +1 -0
  116. package/dist/lsp/ActionQueue.spec.d.ts +1 -0
  117. package/dist/lsp/ActionQueue.spec.js +80 -0
  118. package/dist/lsp/ActionQueue.spec.js.map +1 -0
  119. package/dist/lsp/DocumentManager.d.ts +63 -0
  120. package/dist/lsp/DocumentManager.js +122 -0
  121. package/dist/lsp/DocumentManager.js.map +1 -0
  122. package/dist/lsp/DocumentManager.spec.d.ts +1 -0
  123. package/dist/lsp/DocumentManager.spec.js +103 -0
  124. package/dist/lsp/DocumentManager.spec.js.map +1 -0
  125. package/dist/lsp/LspProject.d.ts +231 -0
  126. package/dist/lsp/LspProject.js +3 -0
  127. package/dist/lsp/LspProject.js.map +1 -0
  128. package/dist/lsp/PathFilterer.d.ts +75 -0
  129. package/dist/lsp/PathFilterer.js +196 -0
  130. package/dist/lsp/PathFilterer.js.map +1 -0
  131. package/dist/lsp/PathFilterer.spec.d.ts +1 -0
  132. package/dist/lsp/PathFilterer.spec.js +182 -0
  133. package/dist/lsp/PathFilterer.spec.js.map +1 -0
  134. package/dist/lsp/Project.d.ts +167 -0
  135. package/dist/lsp/Project.js +432 -0
  136. package/dist/lsp/Project.js.map +1 -0
  137. package/dist/lsp/Project.spec.d.ts +1 -0
  138. package/dist/lsp/Project.spec.js +220 -0
  139. package/dist/lsp/Project.spec.js.map +1 -0
  140. package/dist/lsp/ProjectManager.d.ts +221 -0
  141. package/dist/lsp/ProjectManager.js +754 -0
  142. package/dist/lsp/ProjectManager.js.map +1 -0
  143. package/dist/lsp/ProjectManager.spec.d.ts +1 -0
  144. package/dist/lsp/ProjectManager.spec.js +783 -0
  145. package/dist/lsp/ProjectManager.spec.js.map +1 -0
  146. package/dist/lsp/ReaderWriterManager.d.ts +21 -0
  147. package/dist/lsp/ReaderWriterManager.js +60 -0
  148. package/dist/lsp/ReaderWriterManager.js.map +1 -0
  149. package/dist/lsp/worker/MessageHandler.d.ts +99 -0
  150. package/dist/lsp/worker/MessageHandler.js +138 -0
  151. package/dist/lsp/worker/MessageHandler.js.map +1 -0
  152. package/dist/lsp/worker/MessageHandler.spec.d.ts +1 -0
  153. package/dist/lsp/worker/MessageHandler.spec.js +64 -0
  154. package/dist/lsp/worker/MessageHandler.spec.js.map +1 -0
  155. package/dist/lsp/worker/WorkerPool.d.ts +38 -0
  156. package/dist/lsp/worker/WorkerPool.js +78 -0
  157. package/dist/lsp/worker/WorkerPool.js.map +1 -0
  158. package/dist/lsp/worker/WorkerPool.spec.d.ts +1 -0
  159. package/dist/lsp/worker/WorkerPool.spec.js +59 -0
  160. package/dist/lsp/worker/WorkerPool.spec.js.map +1 -0
  161. package/dist/lsp/worker/WorkerThreadProject.d.ts +144 -0
  162. package/dist/lsp/worker/WorkerThreadProject.js +183 -0
  163. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -0
  164. package/dist/lsp/worker/WorkerThreadProject.spec.d.ts +2 -0
  165. package/dist/lsp/worker/WorkerThreadProject.spec.js +68 -0
  166. package/dist/lsp/worker/WorkerThreadProject.spec.js.map +1 -0
  167. package/dist/lsp/worker/WorkerThreadProjectRunner.d.ts +15 -0
  168. package/dist/lsp/worker/WorkerThreadProjectRunner.js +58 -0
  169. package/dist/lsp/worker/WorkerThreadProjectRunner.js.map +1 -0
  170. package/dist/parser/Expression.d.ts +1 -0
  171. package/dist/parser/Expression.js +65 -3
  172. package/dist/parser/Expression.js.map +1 -1
  173. package/dist/parser/Parser.spec.js +12 -0
  174. package/dist/parser/Parser.spec.js.map +1 -1
  175. package/dist/parser/Statement.js +2 -2
  176. package/dist/parser/Statement.js.map +1 -1
  177. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +47 -0
  178. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  179. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +51 -5
  180. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  181. package/dist/parser/tests/expression/TernaryExpression.spec.js +44 -0
  182. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  183. package/dist/roku-types/data.json +880 -756
  184. package/dist/roku-types/index.d.ts +17 -0
  185. package/dist/types/BooleanType.d.ts +0 -2
  186. package/dist/types/BooleanType.js +4 -6
  187. package/dist/types/BooleanType.js.map +1 -1
  188. package/dist/types/BscType.js +5 -0
  189. package/dist/types/BscType.js.map +1 -1
  190. package/dist/types/BuiltInInterfaceAdder.d.ts +1 -0
  191. package/dist/types/BuiltInInterfaceAdder.js +24 -17
  192. package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
  193. package/dist/types/DoubleType.d.ts +0 -2
  194. package/dist/types/DoubleType.js +4 -6
  195. package/dist/types/DoubleType.js.map +1 -1
  196. package/dist/types/DynamicType.d.ts +0 -2
  197. package/dist/types/DynamicType.js +3 -5
  198. package/dist/types/DynamicType.js.map +1 -1
  199. package/dist/types/FloatType.d.ts +0 -2
  200. package/dist/types/FloatType.js +4 -6
  201. package/dist/types/FloatType.js.map +1 -1
  202. package/dist/types/FunctionType.d.ts +0 -2
  203. package/dist/types/FunctionType.js +5 -7
  204. package/dist/types/FunctionType.js.map +1 -1
  205. package/dist/types/IntegerType.d.ts +0 -2
  206. package/dist/types/IntegerType.js +4 -6
  207. package/dist/types/IntegerType.js.map +1 -1
  208. package/dist/types/LongIntegerType.d.ts +0 -2
  209. package/dist/types/LongIntegerType.js +4 -6
  210. package/dist/types/LongIntegerType.js.map +1 -1
  211. package/dist/types/ObjectType.d.ts +3 -3
  212. package/dist/types/ObjectType.js +6 -8
  213. package/dist/types/ObjectType.js.map +1 -1
  214. package/dist/types/StringType.d.ts +0 -2
  215. package/dist/types/StringType.js +4 -6
  216. package/dist/types/StringType.js.map +1 -1
  217. package/dist/types/VoidType.d.ts +0 -2
  218. package/dist/types/VoidType.js +4 -6
  219. package/dist/types/VoidType.js.map +1 -1
  220. package/dist/types/helpers.d.ts +4 -0
  221. package/dist/types/helpers.js +5 -1
  222. package/dist/types/helpers.js.map +1 -1
  223. package/dist/util.d.ts +48 -16
  224. package/dist/util.js +203 -70
  225. package/dist/util.js.map +1 -1
  226. package/dist/validators/ClassValidator.js +2 -2
  227. package/dist/validators/ClassValidator.js.map +1 -1
  228. package/package.json +15 -5
  229. package/CHANGELOG.md +0 -2352
@@ -1 +1 @@
1
- {"version":3,"file":"BrsFile.js","sourceRoot":"","sources":["../../src/files/BrsFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BrsFile.js","sourceRoot":"","sources":["../../src/files/BrsFile.ts"],"names":[],"mappings":"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"}
@@ -23,9 +23,9 @@ const undent_1 = require("undent");
23
23
  const testHelpers_spec_2 = require("../testHelpers.spec");
24
24
  const types_1 = require("../types");
25
25
  const fileUrl = require("file-url");
26
- const reflection_1 = require("../astUtils/reflection");
27
26
  const Expression_1 = require("../parser/Expression");
28
27
  const logger_1 = require("@rokucommunity/logger");
28
+ const reflection_1 = require("../astUtils/reflection");
29
29
  let sinon = sinonImport.createSandbox();
30
30
  describe('BrsFile', () => {
31
31
  let program;
@@ -80,6 +80,14 @@ describe('BrsFile', () => {
80
80
  });
81
81
  });
82
82
  });
83
+ describe('dispose', () => {
84
+ it('does not crash the program after it has been disposed', () => {
85
+ const file = program.setFile('source/main.bs', `sub main(): end sub`);
86
+ file.dispose();
87
+ program.validate();
88
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
89
+ });
90
+ });
83
91
  describe('allowBrighterScriptInBrightScript', () => {
84
92
  it('is false by default', () => {
85
93
  program.setFile('source/main.brs', `
@@ -1693,9 +1701,9 @@ describe('BrsFile', () => {
1693
1701
  print (1 + 2)
1694
1702
  end sub
1695
1703
 
1696
- sub test(p1)
1704
+ function test(p1)
1697
1705
  return p1
1698
- end sub
1706
+ end function
1699
1707
  `);
1700
1708
  });
1701
1709
  it('works for bs content', () => {
@@ -2604,6 +2612,50 @@ describe('BrsFile', () => {
2604
2612
  end function
2605
2613
  `);
2606
2614
  });
2615
+ it('does not remove `as void` when removeParameterTypes is true', async () => {
2616
+ program.options.removeParameterTypes = true;
2617
+ await testTranspile(`
2618
+ function one() as void
2619
+ return
2620
+ end function
2621
+ `, `
2622
+ function one() as void
2623
+ return
2624
+ end function
2625
+ `);
2626
+ });
2627
+ it('does not remove `as <type>` for sub when removeParameterTypes is true', async () => {
2628
+ program.options.removeParameterTypes = true;
2629
+ await testTranspile(`
2630
+ sub one() as string
2631
+ return "hello"
2632
+ end sub
2633
+ `, `
2634
+ sub one() as string
2635
+ return "hello"
2636
+ end sub
2637
+ `);
2638
+ });
2639
+ it('does not remove `as boolean` from onKeyEvent when removeParameterTypes is true', async () => {
2640
+ program.options.removeParameterTypes = true;
2641
+ await testTranspile(`
2642
+ function onKeyEvent(p1) as boolean
2643
+ return true
2644
+ end function
2645
+
2646
+ function somethingElse() as string
2647
+ return "hello"
2648
+ end function
2649
+ `, `
2650
+ function onKeyEvent(p1) as boolean
2651
+ return true
2652
+ end function
2653
+
2654
+ function somethingElse()
2655
+ return "hello"
2656
+ end function
2657
+ `);
2658
+ });
2607
2659
  it('transpiles local var assignment operators', async () => {
2608
2660
  await testTranspile(`
2609
2661
  sub main()
@@ -3699,7 +3751,7 @@ describe('BrsFile', () => {
3699
3751
  print m.name
3700
3752
  end sub
3701
3753
  `, `
3702
- 'typecast m as dynamic ' typecast comment
3754
+ 'typecast m as MyComponent ' typecast comment
3703
3755
  'import "types.bs" ' import comment
3704
3756
  'alias Person2 = Person ' alias comment
3705
3757
 
@@ -3819,6 +3871,64 @@ describe('BrsFile', () => {
3819
3871
  `);
3820
3872
  });
3821
3873
  });
3874
+ describe('enums', () => {
3875
+ it('handles shadowed enum names', async () => {
3876
+ await testTranspile(`
3877
+ sub foo()
3878
+ event = {}
3879
+ event.event.append({})
3880
+ end sub
3881
+
3882
+ enum event
3883
+ end enum
3884
+ `, `
3885
+ sub foo()
3886
+ event = {}
3887
+ event.event.append({})
3888
+ end sub
3889
+ `);
3890
+ });
3891
+ it('handles shadowed enum names in namespace', async () => {
3892
+ await testTranspile(`
3893
+ namespace alpha
3894
+ sub foo()
3895
+ event = {}
3896
+ event.event.append({})
3897
+ end sub
3898
+
3899
+ enum event
3900
+ end enum
3901
+ end namespace
3902
+ `, `
3903
+ sub alpha_foo()
3904
+ event = {}
3905
+ event.event.append({})
3906
+ end sub
3907
+ `);
3908
+ });
3909
+ it('handles shadowed enum names in previous namespace', async () => {
3910
+ await testTranspile(`
3911
+ namespace alpha
3912
+ namespace beta
3913
+ sub foo()
3914
+ event = {}
3915
+ event.event.append({})
3916
+ print 1
3917
+ end sub
3918
+ end namespace
3919
+
3920
+ enum event
3921
+ end enum
3922
+ end namespace
3923
+ `, `
3924
+ sub alpha_beta_foo()
3925
+ event = {}
3926
+ event.event.append({})
3927
+ print 1
3928
+ end sub
3929
+ `);
3930
+ });
3931
+ });
3822
3932
  });
3823
3933
  describe('callfunc operator', () => {
3824
3934
  describe('transpile', () => {
@@ -5496,6 +5606,25 @@ describe('BrsFile', () => {
5496
5606
  program.validate();
5497
5607
  (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
5498
5608
  });
5609
+ it('allows typecast statements', async () => {
5610
+ await testTranspile(`
5611
+ typecast m as whatever
5612
+
5613
+ sub foo(node as object)
5614
+ print node[m.keyProp]
5615
+ end sub
5616
+
5617
+ interface whatever
5618
+ keyProp as string
5619
+ end interface
5620
+ `, `
5621
+ 'typecast m as whatever
5622
+
5623
+ sub foo(node as object)
5624
+ print node[m.keyProp]
5625
+ end sub
5626
+ `);
5627
+ });
5499
5628
  });
5500
5629
  it('allows up to 63 function params', () => {
5501
5630
  program.setFile('source/main.bs', `
@@ -5535,5 +5664,27 @@ describe('BrsFile', () => {
5535
5664
  location: { range: util_1.default.createRange(3, 20, 3, 27) } })
5536
5665
  ]);
5537
5666
  });
5667
+ describe('getClosestExpression', () => {
5668
+ it('returns undefined for missing Position', () => {
5669
+ const file = program.setFile('source/main.bs', `
5670
+ sub Main()
5671
+ if true THEN
5672
+ print "works"
5673
+ end if
5674
+ end sub
5675
+ `);
5676
+ (0, chai_config_spec_1.expect)(file.getClosestExpression(undefined)).to.be.undefined;
5677
+ });
5678
+ it('returns the closest expression at Position', () => {
5679
+ const file = program.setFile('source/main.bs', `
5680
+ sub Main()
5681
+ if true THEN
5682
+ print "works"
5683
+ end if
5684
+ end sub
5685
+ `);
5686
+ (0, chai_config_spec_1.expect)(file.getClosestExpression({ line: 3, character: 34 })).to.be.instanceOf(Expression_1.LiteralExpression);
5687
+ });
5688
+ });
5538
5689
  });
5539
5690
  //# sourceMappingURL=BrsFile.spec.js.map