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.
- package/CHANGELOG.md +44 -0
- package/bsconfig.schema.json +5 -0
- package/dist/AstValidationSegmenter.d.ts +1 -1
- package/dist/AstValidationSegmenter.js +6 -7
- package/dist/AstValidationSegmenter.js.map +1 -1
- package/dist/BsConfig.d.ts +1 -0
- package/dist/DiagnosticMessages.d.ts +1 -3
- package/dist/DiagnosticMessages.js +5 -8
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/Program.d.ts +1 -1
- package/dist/Program.js +40 -42
- package/dist/Program.js.map +1 -1
- package/dist/Scope.d.ts +2 -13
- package/dist/Scope.js +27 -35
- package/dist/Scope.js.map +1 -1
- package/dist/SymbolTable.d.ts +1 -8
- package/dist/SymbolTable.js +1 -10
- package/dist/SymbolTable.js.map +1 -1
- package/dist/SymbolTableFlag.d.ts +8 -0
- package/dist/SymbolTableFlag.js +13 -0
- package/dist/SymbolTableFlag.js.map +1 -0
- package/dist/XmlScope.d.ts +1 -6
- package/dist/XmlScope.js +6 -25
- package/dist/XmlScope.js.map +1 -1
- package/dist/astUtils/CachedLookups.d.ts +1 -2
- package/dist/astUtils/CachedLookups.js +3 -14
- package/dist/astUtils/CachedLookups.js.map +1 -1
- package/dist/astUtils/Editor.spec.js +1 -1
- package/dist/astUtils/Editor.spec.js.map +1 -1
- package/dist/astUtils/creators.js +77 -18
- package/dist/astUtils/creators.js.map +1 -1
- package/dist/astUtils/creators.spec.js +4 -4
- package/dist/astUtils/creators.spec.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +3 -1
- package/dist/astUtils/reflection.js +12 -4
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/reflection.spec.js +59 -42
- package/dist/astUtils/reflection.spec.js.map +1 -1
- package/dist/astUtils/visitors.spec.js +30 -19
- package/dist/astUtils/visitors.spec.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.d.ts +2 -1
- package/dist/bscPlugin/BscPlugin.js +7 -3
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- package/dist/bscPlugin/CallExpressionInfo.js +7 -7
- package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
- package/dist/bscPlugin/SignatureHelpUtil.js +5 -4
- package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +2 -2
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.js +23 -23
- package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
- package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
- package/dist/bscPlugin/definition/DefinitionProvider.js +210 -0
- package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
- package/dist/bscPlugin/definition/DefinitionProvider.spec.d.ts +1 -0
- package/dist/bscPlugin/definition/DefinitionProvider.spec.js +88 -0
- package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
- package/dist/bscPlugin/hover/HoverProcessor.d.ts +1 -0
- package/dist/bscPlugin/hover/HoverProcessor.js +28 -8
- package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
- package/dist/bscPlugin/hover/HoverProcessor.spec.js +74 -2
- package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +2 -5
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +8 -6
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.js +46 -47
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +10 -0
- package/dist/bscPlugin/validation/ScopeValidator.js +120 -39
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.spec.js +165 -10
- package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
- package/dist/diagnosticUtils.d.ts +1 -1
- package/dist/files/BrsFile.Class.spec.js +7 -6
- package/dist/files/BrsFile.Class.spec.js.map +1 -1
- package/dist/files/BrsFile.d.ts +7 -15
- package/dist/files/BrsFile.js +49 -309
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +111 -157
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/files/XmlFile.d.ts +2 -3
- package/dist/files/XmlFile.js +0 -2
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/interfaces.d.ts +109 -84
- package/dist/interfaces.js +9 -9
- package/dist/interfaces.js.map +1 -1
- package/dist/parser/AstNode.spec.js +6 -6
- package/dist/parser/AstNode.spec.js.map +1 -1
- package/dist/parser/Expression.d.ts +301 -164
- package/dist/parser/Expression.js +355 -294
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.Class.spec.js +26 -27
- package/dist/parser/Parser.Class.spec.js.map +1 -1
- package/dist/parser/Parser.d.ts +6 -2
- package/dist/parser/Parser.js +361 -160
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.js +69 -213
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/SGParser.js +49 -35
- package/dist/parser/SGParser.js.map +1 -1
- package/dist/parser/SGTypes.d.ts +36 -24
- package/dist/parser/SGTypes.js +26 -55
- package/dist/parser/SGTypes.js.map +1 -1
- package/dist/parser/Statement.d.ts +381 -238
- package/dist/parser/Statement.js +510 -386
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/Statement.spec.js +2 -2
- package/dist/parser/Statement.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/For.spec.js +1 -1
- package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/ForEach.spec.js +2 -2
- package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +1 -1
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/Call.spec.js +11 -11
- package/dist/parser/tests/expression/Call.spec.js.map +1 -1
- package/dist/parser/tests/expression/Indexing.spec.js +30 -5
- package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +2 -2
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TernaryExpression.spec.js +2 -2
- package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TypeExpression.spec.js +8 -9
- package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -1
- package/dist/parser/tests/statement/ConstStatement.spec.js +1 -1
- package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Dim.spec.js +8 -8
- package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
- package/dist/parser/tests/statement/Enum.spec.js +2 -2
- package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
- package/dist/parser/tests/statement/LibraryStatement.spec.js +2 -2
- package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Misc.spec.js +2 -2
- package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
- package/dist/parser/tests/statement/PrintStatement.spec.js +1 -1
- package/dist/parser/tests/statement/TryCatch.spec.js +10 -3
- package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
- package/dist/roku-types/data.json +70 -52
- package/dist/roku-types/index.d.ts +43 -21
- package/dist/types/ArrayType.js +1 -2
- package/dist/types/ArrayType.js.map +1 -1
- package/dist/types/ArrayType.spec.js +7 -8
- package/dist/types/ArrayType.spec.js.map +1 -1
- package/dist/types/AssociativeArrayType.js +2 -3
- package/dist/types/AssociativeArrayType.js.map +1 -1
- package/dist/types/BscType.d.ts +1 -1
- package/dist/types/BscType.js +2 -3
- package/dist/types/BscType.js.map +1 -1
- package/dist/types/BuiltInInterfaceAdder.js +15 -9
- package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
- package/dist/types/BuiltInInterfaceAdder.spec.js +31 -32
- package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -1
- package/dist/types/ClassType.spec.js +10 -11
- package/dist/types/ClassType.spec.js.map +1 -1
- package/dist/types/ComponentType.d.ts +2 -1
- package/dist/types/ComponentType.js.map +1 -1
- package/dist/types/EnumType.js +2 -3
- package/dist/types/EnumType.js.map +1 -1
- package/dist/types/InheritableType.js +3 -4
- package/dist/types/InheritableType.js.map +1 -1
- package/dist/types/InterfaceType.js +2 -3
- package/dist/types/InterfaceType.js.map +1 -1
- package/dist/types/InterfaceType.spec.js +3 -4
- package/dist/types/InterfaceType.spec.js.map +1 -1
- package/dist/types/ObjectType.js +1 -2
- package/dist/types/ObjectType.js.map +1 -1
- package/dist/types/ReferenceType.d.ts +1 -1
- package/dist/types/ReferenceType.spec.js +21 -22
- package/dist/types/ReferenceType.spec.js.map +1 -1
- package/dist/types/UnionType.js +3 -3
- package/dist/types/UnionType.js.map +1 -1
- package/dist/types/UnionType.spec.js +37 -38
- package/dist/types/UnionType.spec.js.map +1 -1
- package/dist/types/helper.spec.js +4 -5
- package/dist/types/helper.spec.js.map +1 -1
- package/dist/util.d.ts +16 -7
- package/dist/util.js +89 -43
- package/dist/util.js.map +1 -1
- package/dist/validators/ClassValidator.d.ts +0 -9
- package/dist/validators/ClassValidator.js +9 -52
- package/dist/validators/ClassValidator.js.map +1 -1
- package/package.json +1 -1
package/dist/interfaces.d.ts
CHANGED
|
@@ -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
|
|
22
|
-
import type {
|
|
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
|
|
162
|
+
beforeProgramCreate?(event: BeforeProgramCreateEvent): any;
|
|
186
163
|
/**
|
|
187
164
|
* Called after a new program is created
|
|
188
165
|
*/
|
|
189
|
-
afterProgramCreate
|
|
166
|
+
afterProgramCreate?(event: AfterProgramCreateEvent): any;
|
|
190
167
|
/**
|
|
191
168
|
* Called before the program gets prepared for building
|
|
192
169
|
*/
|
|
193
|
-
beforePrepareProgram
|
|
170
|
+
beforePrepareProgram?(event: BeforePrepareProgramEvent): any;
|
|
194
171
|
/**
|
|
195
172
|
* Called when the program gets prepared for building
|
|
196
173
|
*/
|
|
197
|
-
prepareProgram
|
|
174
|
+
prepareProgram?(event: PrepareProgramEvent): any;
|
|
198
175
|
/**
|
|
199
176
|
* Called after the program gets prepared for building
|
|
200
177
|
*/
|
|
201
|
-
afterPrepareProgram
|
|
178
|
+
afterPrepareProgram?(event: AfterPrepareProgramEvent): any;
|
|
202
179
|
/**
|
|
203
180
|
* Called before the entire program is validated
|
|
204
181
|
*/
|
|
205
|
-
beforeProgramValidate
|
|
182
|
+
beforeProgramValidate?(event: BeforeProgramValidateEvent): any;
|
|
206
183
|
/**
|
|
207
184
|
* Called before the entire program is validated
|
|
208
185
|
*/
|
|
209
|
-
onProgramValidate
|
|
186
|
+
onProgramValidate?(event: OnProgramValidateEvent): any;
|
|
210
187
|
/**
|
|
211
188
|
* Called after the program has been validated
|
|
212
189
|
*/
|
|
213
|
-
afterProgramValidate
|
|
190
|
+
afterProgramValidate?(event: AfterProgramValidateEvent): any;
|
|
214
191
|
/**
|
|
215
192
|
* Called right before the program is disposed/destroyed
|
|
216
193
|
*/
|
|
217
|
-
beforeProgramDispose
|
|
194
|
+
beforeProgramDispose?(event: BeforeProgramDisposeEvent): any;
|
|
218
195
|
/**
|
|
219
196
|
* Emitted before the program starts collecting completions
|
|
220
197
|
*/
|
|
221
|
-
beforeProvideCompletions
|
|
198
|
+
beforeProvideCompletions?(event: BeforeProvideCompletionsEvent): any;
|
|
222
199
|
/**
|
|
223
200
|
* Use this event to contribute completions
|
|
224
201
|
*/
|
|
225
|
-
provideCompletions
|
|
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
|
|
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
|
|
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
|
|
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
|
|
218
|
+
afterProvideHover?(event: AfterProvideHoverEvent): any;
|
|
242
219
|
/**
|
|
243
220
|
* Called after a scope was created
|
|
244
221
|
*/
|
|
245
|
-
afterScopeCreate
|
|
246
|
-
beforeScopeDispose
|
|
247
|
-
onScopeDispose
|
|
248
|
-
afterScopeDispose
|
|
249
|
-
beforeScopeValidate
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
275
|
+
afterFileRemove?(event: AfterFileRemoveEvent): any;
|
|
285
276
|
/**
|
|
286
277
|
* Called before each file is validated
|
|
287
278
|
*/
|
|
288
|
-
beforeFileValidate
|
|
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
|
|
283
|
+
onFileValidate?(event: OnFileValidateEvent): any;
|
|
293
284
|
/**
|
|
294
285
|
* Called after each file is validated
|
|
295
286
|
*/
|
|
296
|
-
afterFileValidate
|
|
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
|
|
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
|
|
295
|
+
afterBuildProgram?(event: AfterBuildProgramEvent): any;
|
|
305
296
|
/**
|
|
306
297
|
* Before preparing the file for building
|
|
307
298
|
*/
|
|
308
|
-
beforePrepareFile
|
|
299
|
+
beforePrepareFile?(event: BeforePrepareFileEvent): any;
|
|
309
300
|
/**
|
|
310
301
|
* Prepare the file for building
|
|
311
302
|
*/
|
|
312
|
-
prepareFile
|
|
303
|
+
prepareFile?(event: PrepareFileEvent): any;
|
|
313
304
|
/**
|
|
314
305
|
* After preparing the file for building
|
|
315
306
|
*/
|
|
316
|
-
afterPrepareFile
|
|
307
|
+
afterPrepareFile?(event: AfterPrepareFileEvent): any;
|
|
317
308
|
/**
|
|
318
309
|
* Before the program turns all file objects into their final buffers
|
|
319
310
|
*/
|
|
320
|
-
beforeSerializeProgram
|
|
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
|
|
315
|
+
onSerializeProgram?(event: OnSerializeProgramEvent): any;
|
|
325
316
|
/**
|
|
326
317
|
* After the program turns all file objects into their final buffers
|
|
327
318
|
*/
|
|
328
|
-
afterSerializeProgram
|
|
319
|
+
afterSerializeProgram?(event: AfterSerializeProgramEvent): any;
|
|
329
320
|
/**
|
|
330
321
|
* Before turning the file into its final contents
|
|
331
322
|
*/
|
|
332
|
-
beforeSerializeFile
|
|
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
|
|
327
|
+
serializeFile?(event: SerializeFileEvent): any;
|
|
337
328
|
/**
|
|
338
329
|
* After turning the file into its final contents
|
|
339
330
|
*/
|
|
340
|
-
afterSerializeFile
|
|
331
|
+
afterSerializeFile?(event: AfterSerializeFileEvent): any;
|
|
341
332
|
/**
|
|
342
333
|
* Called before any files are written
|
|
343
334
|
*/
|
|
344
|
-
beforeWriteProgram
|
|
335
|
+
beforeWriteProgram?(event: BeforeWriteProgramEvent): any;
|
|
345
336
|
/**
|
|
346
337
|
* Called after all files are written
|
|
347
338
|
*/
|
|
348
|
-
afterWriteProgram
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
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
|
+
};
|
package/dist/interfaces.js
CHANGED
|
@@ -11,15 +11,15 @@ var DiagnosticOrigin;
|
|
|
11
11
|
DiagnosticOrigin["ASTSegment"] = "AstSegment";
|
|
12
12
|
})(DiagnosticOrigin = exports.DiagnosticOrigin || (exports.DiagnosticOrigin = {}));
|
|
13
13
|
class TypeChainEntry {
|
|
14
|
-
constructor(
|
|
15
|
-
|
|
16
|
-
this.
|
|
17
|
-
this
|
|
18
|
-
this.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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;
|
package/dist/interfaces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;
|
|
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":";;AAAA,kCAA+B;AAC/B,oCAAoC;AACpC,wCAAqC;AAErC,0DAA6C;AAE7C,0DAA4D;AAC5D,0DAAmE;AACnE,uDAA0H;AAE1H,2CAAkD;AAElD,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACrB,IAAI,OAAgB,CAAC;IAErB,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,YAAY,CAAC,0BAAO,CAAC,CAAC;QAC9B,OAAO,GAAG,IAAI,iBAAO,CAAC;YAClB,OAAO,EAAE,0BAAO;YAChB,UAAU,EAAE,6BAAU;SACzB,CAAC,CAAC;QACH,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,gCAAgC;IACjE,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACX,OAAO,CAAC,YAAY,CAAC,0BAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACvD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAU,iBAAiB,EAAE;;;;;iBAKpD,CAAC,CAAC;YACP,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAsB,WAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,CAAC;YAC7F,IAAA,yBAAM,EAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"AstNode.spec.js","sourceRoot":"","sources":["../../src/parser/AstNode.spec.ts"],"names":[],"mappings":"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"}
|