brighterscript 1.0.0-alpha.25 → 1.0.0-alpha.27

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 (183) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/bsconfig.schema.json +5 -0
  3. package/dist/AstValidationSegmenter.d.ts +1 -1
  4. package/dist/AstValidationSegmenter.js +6 -7
  5. package/dist/AstValidationSegmenter.js.map +1 -1
  6. package/dist/BsConfig.d.ts +1 -0
  7. package/dist/DiagnosticMessages.d.ts +1 -3
  8. package/dist/DiagnosticMessages.js +5 -8
  9. package/dist/DiagnosticMessages.js.map +1 -1
  10. package/dist/Program.d.ts +1 -1
  11. package/dist/Program.js +40 -42
  12. package/dist/Program.js.map +1 -1
  13. package/dist/Scope.d.ts +2 -13
  14. package/dist/Scope.js +27 -35
  15. package/dist/Scope.js.map +1 -1
  16. package/dist/SymbolTable.d.ts +1 -8
  17. package/dist/SymbolTable.js +1 -10
  18. package/dist/SymbolTable.js.map +1 -1
  19. package/dist/SymbolTableFlag.d.ts +8 -0
  20. package/dist/SymbolTableFlag.js +13 -0
  21. package/dist/SymbolTableFlag.js.map +1 -0
  22. package/dist/XmlScope.d.ts +1 -6
  23. package/dist/XmlScope.js +6 -25
  24. package/dist/XmlScope.js.map +1 -1
  25. package/dist/astUtils/CachedLookups.d.ts +1 -2
  26. package/dist/astUtils/CachedLookups.js +3 -14
  27. package/dist/astUtils/CachedLookups.js.map +1 -1
  28. package/dist/astUtils/Editor.spec.js +1 -1
  29. package/dist/astUtils/Editor.spec.js.map +1 -1
  30. package/dist/astUtils/creators.js +77 -18
  31. package/dist/astUtils/creators.js.map +1 -1
  32. package/dist/astUtils/creators.spec.js +4 -4
  33. package/dist/astUtils/creators.spec.js.map +1 -1
  34. package/dist/astUtils/reflection.d.ts +3 -1
  35. package/dist/astUtils/reflection.js +12 -4
  36. package/dist/astUtils/reflection.js.map +1 -1
  37. package/dist/astUtils/reflection.spec.js +59 -42
  38. package/dist/astUtils/reflection.spec.js.map +1 -1
  39. package/dist/astUtils/visitors.spec.js +30 -19
  40. package/dist/astUtils/visitors.spec.js.map +1 -1
  41. package/dist/bscPlugin/BscPlugin.d.ts +2 -1
  42. package/dist/bscPlugin/BscPlugin.js +7 -3
  43. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  44. package/dist/bscPlugin/CallExpressionInfo.js +7 -7
  45. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
  46. package/dist/bscPlugin/SignatureHelpUtil.js +5 -4
  47. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -1
  48. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +2 -2
  49. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  50. package/dist/bscPlugin/completions/CompletionsProcessor.js +23 -23
  51. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  52. package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
  53. package/dist/bscPlugin/definition/DefinitionProvider.js +210 -0
  54. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
  55. package/dist/bscPlugin/definition/DefinitionProvider.spec.d.ts +1 -0
  56. package/dist/bscPlugin/definition/DefinitionProvider.spec.js +88 -0
  57. package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
  58. package/dist/bscPlugin/hover/HoverProcessor.d.ts +1 -0
  59. package/dist/bscPlugin/hover/HoverProcessor.js +28 -8
  60. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  61. package/dist/bscPlugin/hover/HoverProcessor.spec.js +74 -2
  62. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  63. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +2 -5
  64. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  65. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +8 -6
  66. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -1
  67. package/dist/bscPlugin/validation/BrsFileValidator.js +46 -47
  68. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  69. package/dist/bscPlugin/validation/ScopeValidator.d.ts +10 -0
  70. package/dist/bscPlugin/validation/ScopeValidator.js +120 -39
  71. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  72. package/dist/bscPlugin/validation/ScopeValidator.spec.js +165 -10
  73. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
  74. package/dist/diagnosticUtils.d.ts +1 -1
  75. package/dist/files/BrsFile.Class.spec.js +7 -6
  76. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  77. package/dist/files/BrsFile.d.ts +7 -15
  78. package/dist/files/BrsFile.js +49 -309
  79. package/dist/files/BrsFile.js.map +1 -1
  80. package/dist/files/BrsFile.spec.js +111 -157
  81. package/dist/files/BrsFile.spec.js.map +1 -1
  82. package/dist/files/XmlFile.d.ts +2 -3
  83. package/dist/files/XmlFile.js +0 -2
  84. package/dist/files/XmlFile.js.map +1 -1
  85. package/dist/interfaces.d.ts +109 -84
  86. package/dist/interfaces.js +9 -9
  87. package/dist/interfaces.js.map +1 -1
  88. package/dist/parser/AstNode.spec.js +6 -6
  89. package/dist/parser/AstNode.spec.js.map +1 -1
  90. package/dist/parser/Expression.d.ts +301 -164
  91. package/dist/parser/Expression.js +355 -294
  92. package/dist/parser/Expression.js.map +1 -1
  93. package/dist/parser/Parser.Class.spec.js +26 -27
  94. package/dist/parser/Parser.Class.spec.js.map +1 -1
  95. package/dist/parser/Parser.d.ts +6 -2
  96. package/dist/parser/Parser.js +361 -160
  97. package/dist/parser/Parser.js.map +1 -1
  98. package/dist/parser/Parser.spec.js +69 -213
  99. package/dist/parser/Parser.spec.js.map +1 -1
  100. package/dist/parser/SGParser.js +49 -35
  101. package/dist/parser/SGParser.js.map +1 -1
  102. package/dist/parser/SGTypes.d.ts +36 -24
  103. package/dist/parser/SGTypes.js +26 -55
  104. package/dist/parser/SGTypes.js.map +1 -1
  105. package/dist/parser/Statement.d.ts +381 -238
  106. package/dist/parser/Statement.js +510 -386
  107. package/dist/parser/Statement.js.map +1 -1
  108. package/dist/parser/Statement.spec.js +2 -2
  109. package/dist/parser/Statement.spec.js.map +1 -1
  110. package/dist/parser/tests/controlFlow/For.spec.js +1 -1
  111. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  112. package/dist/parser/tests/controlFlow/ForEach.spec.js +2 -2
  113. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  114. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +1 -1
  115. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  116. package/dist/parser/tests/expression/Call.spec.js +11 -11
  117. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  118. package/dist/parser/tests/expression/Indexing.spec.js +30 -5
  119. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  120. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +2 -2
  121. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  122. package/dist/parser/tests/expression/TernaryExpression.spec.js +2 -2
  123. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  124. package/dist/parser/tests/expression/TypeExpression.spec.js +8 -9
  125. package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -1
  126. package/dist/parser/tests/statement/ConstStatement.spec.js +1 -1
  127. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  128. package/dist/parser/tests/statement/Dim.spec.js +8 -8
  129. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  130. package/dist/parser/tests/statement/Enum.spec.js +2 -2
  131. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  132. package/dist/parser/tests/statement/LibraryStatement.spec.js +2 -2
  133. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  134. package/dist/parser/tests/statement/Misc.spec.js +2 -2
  135. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  136. package/dist/parser/tests/statement/PrintStatement.spec.js +1 -1
  137. package/dist/parser/tests/statement/TryCatch.spec.js +10 -3
  138. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  139. package/dist/roku-types/data.json +70 -52
  140. package/dist/roku-types/index.d.ts +43 -21
  141. package/dist/types/ArrayType.js +1 -2
  142. package/dist/types/ArrayType.js.map +1 -1
  143. package/dist/types/ArrayType.spec.js +7 -8
  144. package/dist/types/ArrayType.spec.js.map +1 -1
  145. package/dist/types/AssociativeArrayType.js +2 -3
  146. package/dist/types/AssociativeArrayType.js.map +1 -1
  147. package/dist/types/BscType.d.ts +1 -1
  148. package/dist/types/BscType.js +2 -3
  149. package/dist/types/BscType.js.map +1 -1
  150. package/dist/types/BuiltInInterfaceAdder.js +15 -9
  151. package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
  152. package/dist/types/BuiltInInterfaceAdder.spec.js +31 -32
  153. package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -1
  154. package/dist/types/ClassType.spec.js +10 -11
  155. package/dist/types/ClassType.spec.js.map +1 -1
  156. package/dist/types/ComponentType.d.ts +2 -1
  157. package/dist/types/ComponentType.js.map +1 -1
  158. package/dist/types/EnumType.js +2 -3
  159. package/dist/types/EnumType.js.map +1 -1
  160. package/dist/types/InheritableType.js +3 -4
  161. package/dist/types/InheritableType.js.map +1 -1
  162. package/dist/types/InterfaceType.js +2 -3
  163. package/dist/types/InterfaceType.js.map +1 -1
  164. package/dist/types/InterfaceType.spec.js +3 -4
  165. package/dist/types/InterfaceType.spec.js.map +1 -1
  166. package/dist/types/ObjectType.js +1 -2
  167. package/dist/types/ObjectType.js.map +1 -1
  168. package/dist/types/ReferenceType.d.ts +1 -1
  169. package/dist/types/ReferenceType.spec.js +21 -22
  170. package/dist/types/ReferenceType.spec.js.map +1 -1
  171. package/dist/types/UnionType.js +3 -3
  172. package/dist/types/UnionType.js.map +1 -1
  173. package/dist/types/UnionType.spec.js +37 -38
  174. package/dist/types/UnionType.spec.js.map +1 -1
  175. package/dist/types/helper.spec.js +4 -5
  176. package/dist/types/helper.spec.js.map +1 -1
  177. package/dist/util.d.ts +16 -7
  178. package/dist/util.js +89 -43
  179. package/dist/util.js.map +1 -1
  180. package/dist/validators/ClassValidator.d.ts +0 -9
  181. package/dist/validators/ClassValidator.js +9 -52
  182. package/dist/validators/ClassValidator.js.map +1 -1
  183. package/package.json +1 -1
@@ -1,15 +1,14 @@
1
1
  /// <reference types="node" />
2
- import type { Range, Diagnostic, CodeAction, SemanticTokenTypes, SemanticTokenModifiers, Position, CompletionItem } from 'vscode-languageserver';
2
+ import type { Range, Diagnostic, CodeAction, SemanticTokenTypes, SemanticTokenModifiers, Position, CompletionItem, Location } from 'vscode-languageserver';
3
3
  import type { Scope } from './Scope';
4
4
  import type { BrsFile } from './files/BrsFile';
5
5
  import type { XmlFile } from './files/XmlFile';
6
- import type { FunctionScope } from './FunctionScope';
7
6
  import type { TypedFunctionType } from './types/TypedFunctionType';
8
7
  import type { ParseMode } from './parser/Parser';
9
8
  import type { Program } from './Program';
10
9
  import type { ProgramBuilder } from './ProgramBuilder';
11
10
  import type { ClassStatement, ConstStatement, EnumStatement, FunctionStatement, NamespaceStatement } from './parser/Statement';
12
- import type { AstNode, Expression, Statement } from './parser/AstNode';
11
+ import type { AstNode, AstNodeKind, Expression, Statement } from './parser/AstNode';
13
12
  import type { TranspileState } from './parser/TranspileState';
14
13
  import type { SourceNode } from 'source-map';
15
14
  import type { BscType } from './types/BscType';
@@ -18,8 +17,8 @@ import type { Identifier, Token } from './lexer/Token';
18
17
  import type { BscFile } from './files/BscFile';
19
18
  import type { FileFactory } from './files/Factory';
20
19
  import type { LazyFileData } from './files/LazyFileData';
21
- import type { SymbolTable, SymbolTypeFlag } from './SymbolTable';
22
- import type { CallExpression } from './parser/Expression';
20
+ import type { SymbolTable } from './SymbolTable';
21
+ import type { SymbolTypeFlag } from './SymbolTableFlag';
23
22
  export interface BsDiagnostic extends Diagnostic {
24
23
  file: BscFile;
25
24
  /**
@@ -73,28 +72,6 @@ export interface Callable {
73
72
  */
74
73
  functionStatement: FunctionStatement;
75
74
  }
76
- export interface FunctionCall {
77
- /**
78
- * The full range of this function call (from the start of the function name to its closing paren)
79
- */
80
- range: Range;
81
- expression: CallExpression;
82
- functionScope: FunctionScope;
83
- file: BscFile;
84
- name: string;
85
- args: CallableArg[];
86
- nameRange: Range;
87
- }
88
- /**
89
- * An argument for an expression call.
90
- */
91
- export interface CallableArg {
92
- text: string;
93
- type: BscType;
94
- typeToken: Token;
95
- range: Range;
96
- expression: Expression;
97
- }
98
75
  export interface CallableParam {
99
76
  name: string;
100
77
  type: BscType;
@@ -182,185 +159,198 @@ export interface CompilerPlugin {
182
159
  /**
183
160
  * Called before a new program is created
184
161
  */
185
- beforeProgramCreate?: PluginHandler<BeforeProgramCreateEvent>;
162
+ beforeProgramCreate?(event: BeforeProgramCreateEvent): any;
186
163
  /**
187
164
  * Called after a new program is created
188
165
  */
189
- afterProgramCreate?: PluginHandler<AfterProgramCreateEvent>;
166
+ afterProgramCreate?(event: AfterProgramCreateEvent): any;
190
167
  /**
191
168
  * Called before the program gets prepared for building
192
169
  */
193
- beforePrepareProgram?: PluginHandler<BeforePrepareProgramEvent>;
170
+ beforePrepareProgram?(event: BeforePrepareProgramEvent): any;
194
171
  /**
195
172
  * Called when the program gets prepared for building
196
173
  */
197
- prepareProgram?: PluginHandler<PrepareProgramEvent>;
174
+ prepareProgram?(event: PrepareProgramEvent): any;
198
175
  /**
199
176
  * Called after the program gets prepared for building
200
177
  */
201
- afterPrepareProgram?: PluginHandler<AfterPrepareProgramEvent>;
178
+ afterPrepareProgram?(event: AfterPrepareProgramEvent): any;
202
179
  /**
203
180
  * Called before the entire program is validated
204
181
  */
205
- beforeProgramValidate?: PluginHandler<BeforeProgramValidateEvent>;
182
+ beforeProgramValidate?(event: BeforeProgramValidateEvent): any;
206
183
  /**
207
184
  * Called before the entire program is validated
208
185
  */
209
- onProgramValidate?: PluginHandler<OnProgramValidateEvent>;
186
+ onProgramValidate?(event: OnProgramValidateEvent): any;
210
187
  /**
211
188
  * Called after the program has been validated
212
189
  */
213
- afterProgramValidate?: PluginHandler<AfterProgramValidateEvent>;
190
+ afterProgramValidate?(event: AfterProgramValidateEvent): any;
214
191
  /**
215
192
  * Called right before the program is disposed/destroyed
216
193
  */
217
- beforeProgramDispose?: PluginHandler<BeforeProgramDisposeEvent>;
194
+ beforeProgramDispose?(event: BeforeProgramDisposeEvent): any;
218
195
  /**
219
196
  * Emitted before the program starts collecting completions
220
197
  */
221
- beforeProvideCompletions?: PluginHandler<BeforeProvideCompletionsEvent>;
198
+ beforeProvideCompletions?(event: BeforeProvideCompletionsEvent): any;
222
199
  /**
223
200
  * Use this event to contribute completions
224
201
  */
225
- provideCompletions?: PluginHandler<ProvideCompletionsEvent>;
202
+ provideCompletions?(event: ProvideCompletionsEvent): any;
226
203
  /**
227
204
  * Emitted after the program has finished collecting completions, but before they are sent to the client
228
205
  */
229
- afterProvideCompletions?: PluginHandler<AfterProvideCompletionsEvent>;
206
+ afterProvideCompletions?(event: AfterProvideCompletionsEvent): any;
230
207
  /**
231
208
  * Called before the `provideHover` hook. Use this if you need to prepare any of the in-memory objects before the `provideHover` gets called
232
209
  */
233
- beforeProvideHover?: PluginHandler<BeforeProvideHoverEvent>;
210
+ beforeProvideHover?(event: BeforeProvideHoverEvent): any;
234
211
  /**
235
212
  * Called when bsc looks for hover information. Use this if your plugin wants to contribute hover information.
236
213
  */
237
- provideHover?: PluginHandler<ProvideHoverEvent>;
214
+ provideHover?(event: ProvideHoverEvent): any;
238
215
  /**
239
216
  * Called after the `provideHover` hook. Use this if you want to intercept or sanitize the hover data (even from other plugins) before it gets sent to the client.
240
217
  */
241
- afterProvideHover?: PluginHandler<AfterProvideHoverEvent>;
218
+ afterProvideHover?(event: AfterProvideHoverEvent): any;
242
219
  /**
243
220
  * Called after a scope was created
244
221
  */
245
- afterScopeCreate?: PluginHandler<AfterScopeCreateEvent>;
246
- beforeScopeDispose?: PluginHandler<BeforeScopeDisposeEvent>;
247
- onScopeDispose?: PluginHandler<OnScopeDisposeEvent>;
248
- afterScopeDispose?: PluginHandler<AfterScopeDisposeEvent>;
249
- beforeScopeValidate?: PluginHandler<BeforeScopeValidateEvent>;
250
- onScopeValidate?: PluginHandler<OnScopeValidateEvent>;
251
- afterScopeValidate?: PluginHandler<BeforeScopeValidateEvent>;
252
- onGetCodeActions?: PluginHandler<OnGetCodeActionsEvent>;
253
- onGetSemanticTokens?: PluginHandler<OnGetSemanticTokensEvent>;
222
+ afterScopeCreate?(event: AfterScopeCreateEvent): any;
223
+ beforeScopeDispose?(event: BeforeScopeDisposeEvent): any;
224
+ onScopeDispose?(event: OnScopeDisposeEvent): any;
225
+ afterScopeDispose?(event: AfterScopeDisposeEvent): any;
226
+ beforeScopeValidate?(event: BeforeScopeValidateEvent): any;
227
+ /**
228
+ * Called before the `provideDefinition` hook
229
+ */
230
+ beforeProvideDefinition?(event: BeforeProvideDefinitionEvent): any;
231
+ /**
232
+ * Provide one or more `Location`s where the symbol at the given position was originally defined
233
+ * @param event
234
+ */
235
+ provideDefinition?(event: ProvideDefinitionEvent): any;
236
+ /**
237
+ * Called after `provideDefinition`. Use this if you want to intercept or sanitize the definition data provided by bsc or other plugins
238
+ * @param event
239
+ */
240
+ afterProvideDefinition?(event: AfterProvideDefinitionEvent): any;
241
+ onScopeValidate?(event: OnScopeValidateEvent): any;
242
+ afterScopeValidate?(event: BeforeScopeValidateEvent): any;
243
+ onGetCodeActions?(event: OnGetCodeActionsEvent): any;
244
+ onGetSemanticTokens?(event: OnGetSemanticTokensEvent): any;
254
245
  /**
255
246
  * Called before plugins are asked to provide files to the program. (excludes virtual files produced by `provideFile` events).
256
247
  * Call the `setFileData()` method to override the file contents.
257
248
  */
258
- beforeProvideFile?: PluginHandler<BeforeProvideFileEvent>;
249
+ beforeProvideFile?(event: BeforeProvideFileEvent): any;
259
250
  /**
260
251
  * Give plugins the opportunity to handle processing a file. (excludes virtual files produced by `provideFile` events)
261
252
  */
262
- provideFile?: PluginHandler<ProvideFileEvent>;
253
+ provideFile?(event: ProvideFileEvent): any;
263
254
  /**
264
255
  * Called after a file was added to the program. (excludes virtual files produced by `provideFile` events)
265
256
  */
266
- afterProvideFile?: PluginHandler<AfterProvideFileEvent>;
257
+ afterProvideFile?(event: AfterProvideFileEvent): any;
267
258
  /**
268
259
  * Called before a file is added to the program.
269
260
  * Includes physical files as well as any virtual files produced by `provideFile` events
270
261
  */
271
- beforeFileAdd?: PluginHandler<BeforeFileAddEvent>;
262
+ beforeFileAdd?(event: BeforeFileAddEvent): any;
272
263
  /**
273
264
  * Called after a file has been added to the program.
274
265
  * Includes physical files as well as any virtual files produced by `provideFile` events
275
266
  */
276
- afterFileAdd?: PluginHandler<AfterFileAddEvent>;
267
+ afterFileAdd?(event: AfterFileAddEvent): any;
277
268
  /**
278
269
  * Called before a file is removed from the program. This includes physical and virtual files
279
270
  */
280
- beforeFileRemove?: PluginHandler<BeforeFileRemoveEvent>;
271
+ beforeFileRemove?(event: BeforeFileRemoveEvent): any;
281
272
  /**
282
273
  * Called after a file has been removed from the program. This includes physical and virtual files
283
274
  */
284
- afterFileRemove?: PluginHandler<AfterFileRemoveEvent>;
275
+ afterFileRemove?(event: AfterFileRemoveEvent): any;
285
276
  /**
286
277
  * Called before each file is validated
287
278
  */
288
- beforeFileValidate?: PluginHandler<BeforeFileValidateEvent>;
279
+ beforeFileValidate?(event: BeforeFileValidateEvent): any;
289
280
  /**
290
281
  * Called during the file validation process. If your plugin contributes file validations, this is a good place to contribute them.
291
282
  */
292
- onFileValidate?: PluginHandler<OnFileValidateEvent>;
283
+ onFileValidate?(event: OnFileValidateEvent): any;
293
284
  /**
294
285
  * Called after each file is validated
295
286
  */
296
- afterFileValidate?: PluginHandler<AfterFileValidateEvent>;
287
+ afterFileValidate?(event: AfterFileValidateEvent): any;
297
288
  /**
298
289
  * Called right before the program builds (i.e. generates the code and puts it in the stagingDir
299
290
  */
300
- beforeBuildProgram?: PluginHandler<BeforeBuildProgramEvent>;
291
+ beforeBuildProgram?(event: BeforeBuildProgramEvent): any;
301
292
  /**
302
293
  * Called right after the program builds (i.e. generates the code and puts it in the stagingDir
303
294
  */
304
- afterBuildProgram?: PluginHandler<AfterBuildProgramEvent>;
295
+ afterBuildProgram?(event: AfterBuildProgramEvent): any;
305
296
  /**
306
297
  * Before preparing the file for building
307
298
  */
308
- beforePrepareFile?: PluginHandler<BeforePrepareFileEvent>;
299
+ beforePrepareFile?(event: BeforePrepareFileEvent): any;
309
300
  /**
310
301
  * Prepare the file for building
311
302
  */
312
- prepareFile?: PluginHandler<PrepareFileEvent>;
303
+ prepareFile?(event: PrepareFileEvent): any;
313
304
  /**
314
305
  * After preparing the file for building
315
306
  */
316
- afterPrepareFile?: PluginHandler<AfterPrepareFileEvent>;
307
+ afterPrepareFile?(event: AfterPrepareFileEvent): any;
317
308
  /**
318
309
  * Before the program turns all file objects into their final buffers
319
310
  */
320
- beforeSerializeProgram?: PluginHandler<BeforeSerializeProgramEvent>;
311
+ beforeSerializeProgram?(event: BeforeSerializeProgramEvent): any;
321
312
  /**
322
313
  * Emitted right at the start of the program turning all file objects into their final buffers
323
314
  */
324
- onSerializeProgram?: PluginHandler<OnSerializeProgramEvent>;
315
+ onSerializeProgram?(event: OnSerializeProgramEvent): any;
325
316
  /**
326
317
  * After the program turns all file objects into their final buffers
327
318
  */
328
- afterSerializeProgram?: PluginHandler<AfterSerializeProgramEvent>;
319
+ afterSerializeProgram?(event: AfterSerializeProgramEvent): any;
329
320
  /**
330
321
  * Before turning the file into its final contents
331
322
  */
332
- beforeSerializeFile?: PluginHandler<BeforeSerializeFileEvent>;
323
+ beforeSerializeFile?(event: BeforeSerializeFileEvent): any;
333
324
  /**
334
325
  * Turn the file into its final contents (i.e. transpile a bs file, compress a jpeg, etc)
335
326
  */
336
- serializeFile?: PluginHandler<SerializeFileEvent>;
327
+ serializeFile?(event: SerializeFileEvent): any;
337
328
  /**
338
329
  * After turning the file into its final contents
339
330
  */
340
- afterSerializeFile?: PluginHandler<AfterSerializeFileEvent>;
331
+ afterSerializeFile?(event: AfterSerializeFileEvent): any;
341
332
  /**
342
333
  * Called before any files are written
343
334
  */
344
- beforeWriteProgram?: PluginHandler<BeforeWriteProgramEvent>;
335
+ beforeWriteProgram?(event: BeforeWriteProgramEvent): any;
345
336
  /**
346
337
  * Called after all files are written
347
338
  */
348
- afterWriteProgram?: PluginHandler<AfterWriteProgramEvent>;
339
+ afterWriteProgram?(event: AfterWriteProgramEvent): any;
349
340
  /**
350
341
  * Before a file is written to disk. These are raw files that contain the final output. One `File` may produce several of these
351
342
  */
352
- beforeWriteFile?: PluginHandler<BeforeWriteFileEvent>;
343
+ beforeWriteFile?(event: BeforeWriteFileEvent): any;
353
344
  /**
354
345
  * Called when a file should be persisted (usually writing to storage). These are raw files that contain the final output. One `File` may produce several of these.
355
346
  * When a plugin has handled a file, it should be pushed to the `handledFiles` set so future plugins don't write the file multiple times
356
347
  */
357
- writeFile?: PluginHandler<WriteFileEvent>;
348
+ writeFile?(event: WriteFileEvent): any;
358
349
  /**
359
350
  * Before a file is written to disk. These are raw files that contain the final output. One `File` may produce several of these
360
351
  */
361
- afterWriteFile?: PluginHandler<AfterWriteFileEvent>;
352
+ afterWriteFile?(event: AfterWriteFileEvent): any;
362
353
  }
363
- export declare type PluginHandler<T, R = void> = (event: T) => R;
364
354
  export interface OnGetCodeActionsEvent<TFile extends BscFile = BscFile> {
365
355
  program: Program;
366
356
  file: TFile;
@@ -455,6 +445,23 @@ export interface AfterFileParseEvent {
455
445
  program: Program;
456
446
  file: BscFile;
457
447
  }
448
+ export interface ProvideDefinitionEvent<TFile = BscFile> {
449
+ program: Program;
450
+ /**
451
+ * The file that the getDefinition request was invoked in
452
+ */
453
+ file: TFile;
454
+ /**
455
+ * The position in the text document where the getDefinition request was invoked
456
+ */
457
+ position: Position;
458
+ /**
459
+ * The list of locations for where the item at the file and position was defined
460
+ */
461
+ definitions: Location[];
462
+ }
463
+ export declare type BeforeProvideDefinitionEvent<TFile = BscFile> = ProvideDefinitionEvent<TFile>;
464
+ export declare type AfterProvideDefinitionEvent<TFile = BscFile> = ProvideDefinitionEvent<TFile>;
458
465
  export interface OnGetSemanticTokensEvent<T extends BscFile = BscFile> {
459
466
  /**
460
467
  * The program this file is from
@@ -695,13 +702,21 @@ export interface GetTypeOptions {
695
702
  ignoreCacheForRetrieval?: boolean;
696
703
  }
697
704
  export declare class TypeChainEntry {
698
- name: string;
699
- type: BscType;
700
- range: Range;
701
- separatorToken: Token;
702
- data: ExtraSymbolData;
703
- constructor(name: string, type: BscType, data: ExtraSymbolData, range: Range, separatorToken?: Token);
705
+ constructor(options: {
706
+ name: string;
707
+ type: BscType;
708
+ data: ExtraSymbolData;
709
+ range: Range;
710
+ separatorToken?: Token;
711
+ kind?: AstNodeKind;
712
+ });
704
713
  get isResolved(): boolean;
714
+ readonly name: string;
715
+ readonly type: BscType;
716
+ readonly data: ExtraSymbolData;
717
+ readonly range: Range;
718
+ readonly separatorToken: Token;
719
+ kind: AstNodeKind;
705
720
  }
706
721
  export interface TypeChainProcessResult {
707
722
  itemName: string;
@@ -742,3 +757,13 @@ export interface NamespaceContainer {
742
757
  namespaces?: Map<string, NamespaceContainer>;
743
758
  symbolTable: SymbolTable;
744
759
  }
760
+ /**
761
+ * Use Writable<T> to remove readonly flag from properties in T
762
+ * Be careful!
763
+ */
764
+ export declare type Writeable<T> = {
765
+ -readonly [P in keyof T]: T[P];
766
+ };
767
+ export declare type DeepWriteable<T> = {
768
+ -readonly [P in keyof T]: DeepWriteable<T[P]>;
769
+ };
@@ -11,15 +11,15 @@ var DiagnosticOrigin;
11
11
  DiagnosticOrigin["ASTSegment"] = "AstSegment";
12
12
  })(DiagnosticOrigin = exports.DiagnosticOrigin || (exports.DiagnosticOrigin = {}));
13
13
  class TypeChainEntry {
14
- constructor(name, type, data, range, separatorToken = (0, creators_1.createToken)(TokenKind_1.TokenKind.Dot)) {
15
- this.name = name;
16
- this.type = type;
17
- this.range = range;
18
- this.separatorToken = separatorToken;
19
- if (data) {
20
- // make a copy of this data
21
- this.data = Object.assign({}, data);
22
- }
14
+ constructor(options) {
15
+ var _a;
16
+ this.name = options.name;
17
+ // make a copy of this data
18
+ this.data = Object.assign({}, options.data);
19
+ this.type = options.type;
20
+ this.range = options.range;
21
+ this.separatorToken = (_a = options.separatorToken) !== null && _a !== void 0 ? _a : (0, creators_1.createToken)(TokenKind_1.TokenKind.Dot);
22
+ this.kind = options.kind;
23
23
  }
24
24
  get isResolved() {
25
25
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AAqBA,kDAAkD;AAClD,iDAA8C;AAU9C,IAAY,gBAKX;AALD,WAAY,gBAAgB;IACxB,uCAAmB,CAAA;IACnB,mCAAe,CAAA;IACf,iCAAa,CAAA;IACb,6CAAyB,CAAA;AAC7B,CAAC,EALW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAK3B;AA+uBD,MAAa,cAAc;IAEvB,YAAmB,IAAY,EAAS,IAAa,EAAE,IAAqB,EAAS,KAAY,EAAS,iBAAwB,IAAA,sBAAW,EAAC,qBAAS,CAAC,GAAG,CAAC;QAAzI,SAAI,GAAJ,IAAI,CAAQ;QAAS,SAAI,GAAJ,IAAI,CAAS;QAAgC,UAAK,GAAL,KAAK,CAAO;QAAS,mBAAc,GAAd,cAAc,CAAoC;QACxJ,IAAI,IAAI,EAAE;YACN,2BAA2B;YAC3B,IAAI,CAAC,IAAI,qBAAQ,IAAI,CAAE,CAAC;SAC3B;IACL,CAAC;IACD,IAAI,UAAU;;QACV,OAAO,MAAA,IAAI,CAAC,IAAI,0CAAE,YAAY,EAAE,CAAC;IACrC,CAAC;CACJ;AAXD,wCAWC"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AAoBA,kDAAkD;AAClD,iDAA8C;AAU9C,IAAY,gBAKX;AALD,WAAY,gBAAgB;IACxB,uCAAmB,CAAA;IACnB,mCAAe,CAAA;IACf,iCAAa,CAAA;IACb,6CAAyB,CAAA;AAC7B,CAAC,EALW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAK3B;AAwvBD,MAAa,cAAc;IACvB,YAAY,OAOX;;QACG,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,2BAA2B;QAC3B,IAAI,CAAC,IAAI,qBAAQ,OAAO,CAAC,IAAI,CAAE,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,IAAA,sBAAW,EAAC,qBAAS,CAAC,GAAG,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7B,CAAC;IACD,IAAI,UAAU;;QACV,OAAO,MAAA,IAAI,CAAC,IAAI,0CAAE,YAAY,EAAE,CAAC;IACrC,CAAC;CAQJ;AA3BD,wCA2BC"}
@@ -33,9 +33,9 @@ describe('AstNode', () => {
33
33
  program.validate();
34
34
  (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
35
35
  const delta = file.ast.findChildAtPosition(util_1.util.createPosition(3, 52));
36
- (0, chai_config_spec_1.expect)(delta.name.text).to.eql('delta');
36
+ (0, chai_config_spec_1.expect)(delta.tokens.name.text).to.eql('delta');
37
37
  const foxtrot = file.ast.findChildAtPosition(util_1.util.createPosition(3, 71));
38
- (0, chai_config_spec_1.expect)(foxtrot.name.text).to.eql('foxtrot');
38
+ (0, chai_config_spec_1.expect)(foxtrot.tokens.name.text).to.eql('foxtrot');
39
39
  });
40
40
  });
41
41
  describe('findChild', () => {
@@ -47,7 +47,7 @@ describe('AstNode', () => {
47
47
  end sub
48
48
  `);
49
49
  (0, chai_config_spec_1.expect)(file.ast.findChild((node) => {
50
- return (0, reflection_1.isAssignmentStatement)(node) && node.name.text === 'alpha';
50
+ return (0, reflection_1.isAssignmentStatement)(node) && node.tokens.name.text === 'alpha';
51
51
  })).instanceof(Statement_1.AssignmentStatement);
52
52
  });
53
53
  it('returns the exact node that matches', () => {
@@ -114,7 +114,7 @@ describe('AstNode', () => {
114
114
  const secondStatement = file.ast.statements[0].func.body.statements[1];
115
115
  const foxtrot = file.ast.findChild((node) => {
116
116
  var _a;
117
- return (0, reflection_1.isDottedGetExpression)(node) && ((_a = node.name) === null || _a === void 0 ? void 0 : _a.text) === 'foxtrot';
117
+ return (0, reflection_1.isDottedGetExpression)(node) && ((_a = node.tokens.name) === null || _a === void 0 ? void 0 : _a.text) === 'foxtrot';
118
118
  });
119
119
  (0, chai_config_spec_1.expect)(foxtrot.findAncestor(reflection_1.isPrintStatement)).to.equal(secondStatement);
120
120
  });
@@ -127,7 +127,7 @@ describe('AstNode', () => {
127
127
  `);
128
128
  const foxtrot = file.ast.findChild((node) => {
129
129
  var _a;
130
- return (0, reflection_1.isDottedGetExpression)(node) && ((_a = node.name) === null || _a === void 0 ? void 0 : _a.text) === 'foxtrot';
130
+ return (0, reflection_1.isDottedGetExpression)(node) && ((_a = node.tokens.name) === null || _a === void 0 ? void 0 : _a.text) === 'foxtrot';
131
131
  });
132
132
  (0, chai_config_spec_1.expect)(foxtrot.findAncestor(reflection_1.isClassStatement)).to.be.undefined;
133
133
  });
@@ -141,7 +141,7 @@ describe('AstNode', () => {
141
141
  const firstStatement = file.ast.statements[0].func.body.statements[0];
142
142
  const foxtrot = file.ast.findChild((node) => {
143
143
  var _a;
144
- return (0, reflection_1.isDottedGetExpression)(node) && ((_a = node.name) === null || _a === void 0 ? void 0 : _a.text) === 'foxtrot';
144
+ return (0, reflection_1.isDottedGetExpression)(node) && ((_a = node.tokens.name) === null || _a === void 0 ? void 0 : _a.text) === 'foxtrot';
145
145
  });
146
146
  (0, chai_config_spec_1.expect)(foxtrot.findAncestor(node => firstStatement)).to.equal(firstStatement);
147
147
  });
@@ -1 +1 @@
1
- {"version":3,"file":"AstNode.spec.js","sourceRoot":"","sources":["../../src/parser/AstNode.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AstNode.spec.js","sourceRoot":"","sources":["../../src/parser/AstNode.spec.ts"],"names":[],"mappings":"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"}