brighterscript 1.0.0-alpha.51 → 1.0.0-alpha.53
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/README.md +12 -5
- package/bsconfig.schema.json +151 -0
- package/dist/BsConfig.d.ts +158 -44
- package/dist/BsConfig.js +24 -0
- package/dist/BsConfig.js.map +1 -1
- package/dist/BusyStatusTracker.js +3 -0
- package/dist/BusyStatusTracker.js.map +1 -1
- package/dist/CrossScopeValidator.js +5 -0
- package/dist/CrossScopeValidator.js.map +1 -1
- package/dist/DiagnosticFilterer.d.ts +17 -1
- package/dist/DiagnosticFilterer.js +69 -6
- package/dist/DiagnosticFilterer.js.map +1 -1
- package/dist/DiagnosticManager.d.ts +11 -1
- package/dist/DiagnosticManager.js +22 -3
- package/dist/DiagnosticManager.js.map +1 -1
- package/dist/DiagnosticMessages.d.ts +93 -4
- package/dist/DiagnosticMessages.js +91 -5
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/LanguageServer.d.ts +17 -4
- package/dist/LanguageServer.js +65 -6
- package/dist/LanguageServer.js.map +1 -1
- package/dist/Logger.d.ts +7 -7
- package/dist/Logger.js +2 -2
- package/dist/Logger.js.map +1 -1
- package/dist/PluginInterface.js +2 -1
- package/dist/PluginInterface.js.map +1 -1
- package/dist/Program.d.ts +110 -9
- package/dist/Program.js +293 -23
- package/dist/Program.js.map +1 -1
- package/dist/ProgramBuilder.js +6 -0
- package/dist/ProgramBuilder.js.map +1 -1
- package/dist/RokuConstants.d.ts +123 -0
- package/dist/RokuConstants.js +87 -0
- package/dist/RokuConstants.js.map +1 -0
- package/dist/ScopeNamespaceLookup.js.map +1 -1
- package/dist/Stopwatch.js +2 -2
- package/dist/Stopwatch.js.map +1 -1
- package/dist/SymbolTable.d.ts +1 -0
- package/dist/SymbolTable.js +20 -12
- package/dist/SymbolTable.js.map +1 -1
- package/dist/Throttler.d.ts +1 -1
- package/dist/Throttler.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +6 -1
- package/dist/astUtils/reflection.js +15 -4
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +1 -1
- package/dist/astUtils/visitors.js +2 -0
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.d.ts +3 -2
- package/dist/bscPlugin/BscPlugin.js +5 -1
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
- package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -1
- package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.d.ts +3 -3
- package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.js +2 -3
- package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
- package/dist/bscPlugin/definition/DefinitionProvider.d.ts +67 -2
- package/dist/bscPlugin/definition/DefinitionProvider.js +244 -5
- package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -1
- package/dist/bscPlugin/inlayHints/InlayHintProcessor.d.ts +23 -0
- package/dist/bscPlugin/inlayHints/InlayHintProcessor.js +186 -0
- package/dist/bscPlugin/inlayHints/InlayHintProcessor.js.map +1 -0
- package/dist/bscPlugin/references/ReferencesProvider.js +7 -1
- package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.d.ts +40 -6
- package/dist/bscPlugin/validation/BrsFileValidator.js +109 -18
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ProgramValidator.d.ts +10 -0
- package/dist/bscPlugin/validation/ProgramValidator.js +54 -0
- package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.js +55 -30
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/bscPlugin/validation/XmlFileValidator.d.ts +18 -0
- package/dist/bscPlugin/validation/XmlFileValidator.js +51 -0
- package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/diagnosticUtils.d.ts +1 -1
- package/dist/diagnosticUtils.js.map +1 -1
- package/dist/files/BrsFile.d.ts +2 -2
- package/dist/files/BrsFile.js +2 -2
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/XmlFile.d.ts +51 -1
- package/dist/files/XmlFile.js +264 -0
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/formatUtils.d.ts +20 -0
- package/dist/formatUtils.js +38 -0
- package/dist/formatUtils.js.map +1 -0
- package/dist/globalCallables.d.ts +1 -1
- package/dist/globalCallables.js +4 -1
- package/dist/globalCallables.js.map +1 -1
- package/dist/interfaces.d.ts +93 -5
- package/dist/interfaces.js.map +1 -1
- package/dist/lexer/Lexer.d.ts +26 -0
- package/dist/lexer/Lexer.js +140 -15
- package/dist/lexer/Lexer.js.map +1 -1
- package/dist/lexer/TokenKind.d.ts +27 -0
- package/dist/lexer/TokenKind.js +77 -3
- package/dist/lexer/TokenKind.js.map +1 -1
- package/dist/lsp/ActionQueue.js +1 -2
- package/dist/lsp/ActionQueue.js.map +1 -1
- package/dist/lsp/DocumentManager.js +4 -0
- package/dist/lsp/DocumentManager.js.map +1 -1
- package/dist/lsp/LspProject.d.ts +9 -2
- package/dist/lsp/Project.d.ts +6 -2
- package/dist/lsp/Project.js +8 -0
- package/dist/lsp/Project.js.map +1 -1
- package/dist/lsp/ProjectManager.d.ts +11 -2
- package/dist/lsp/ProjectManager.js +15 -1
- package/dist/lsp/ProjectManager.js.map +1 -1
- package/dist/lsp/worker/MessageHandler.d.ts +1 -0
- package/dist/lsp/worker/MessageHandler.js +9 -0
- package/dist/lsp/worker/MessageHandler.js.map +1 -1
- package/dist/lsp/worker/WorkerPool.d.ts +51 -17
- package/dist/lsp/worker/WorkerPool.js +118 -40
- package/dist/lsp/worker/WorkerPool.js.map +1 -1
- package/dist/lsp/worker/WorkerThreadProject.d.ts +20 -3
- package/dist/lsp/worker/WorkerThreadProject.js +53 -10
- package/dist/lsp/worker/WorkerThreadProject.js.map +1 -1
- package/dist/lsp/worker/WorkerThreadProjectRunner.js +6 -0
- package/dist/lsp/worker/WorkerThreadProjectRunner.js.map +1 -1
- package/dist/lsp/worker/run.js +20 -3
- package/dist/lsp/worker/run.js.map +1 -1
- package/dist/parser/AstNode.d.ts +59 -2
- package/dist/parser/AstNode.js +63 -5
- package/dist/parser/AstNode.js.map +1 -1
- package/dist/parser/BrsTranspileState.d.ts +44 -0
- package/dist/parser/BrsTranspileState.js +49 -0
- package/dist/parser/BrsTranspileState.js.map +1 -1
- package/dist/parser/Expression.d.ts +56 -8
- package/dist/parser/Expression.js +91 -8
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.d.ts +0 -5
- package/dist/parser/Parser.js +5 -9
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/SGParser.d.ts +7 -1
- package/dist/parser/SGParser.js +20 -10
- package/dist/parser/SGParser.js.map +1 -1
- package/dist/parser/SGTypes.js +8 -2
- package/dist/parser/SGTypes.js.map +1 -1
- package/dist/parser/Statement.d.ts +21 -10
- package/dist/parser/Statement.js +61 -1
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/TranspileState.js +3 -0
- package/dist/parser/TranspileState.js.map +1 -1
- package/dist/preprocessor/Manifest.d.ts +16 -0
- package/dist/preprocessor/Manifest.js +21 -5
- package/dist/preprocessor/Manifest.js.map +1 -1
- package/dist/roku-types/index.d.ts +3 -0
- package/dist/types/BuiltInInterfaceAdder.js +1 -1
- package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
- package/dist/types/InheritableType.d.ts +0 -1
- package/dist/types/InheritableType.js +12 -11
- package/dist/types/InheritableType.js.map +1 -1
- package/dist/types/InterfaceType.js +6 -0
- package/dist/types/InterfaceType.js.map +1 -1
- package/dist/types/IntersectionType.d.ts +1 -1
- package/dist/types/IntersectionType.js +7 -7
- package/dist/types/IntersectionType.js.map +1 -1
- package/dist/types/ReferenceType.js +1 -1
- package/dist/types/ReferenceType.js.map +1 -1
- package/dist/types/helpers.d.ts +2 -2
- package/dist/types/helpers.js +8 -5
- package/dist/types/helpers.js.map +1 -1
- package/dist/util.d.ts +38 -4
- package/dist/util.js +296 -29
- package/dist/util.js.map +1 -1
- package/package.json +14 -19
package/dist/interfaces.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
|
-
import type { Range, CodeAction, Position, CompletionItem, Location, DocumentSymbol, WorkspaceSymbol, Disposable, FileChangeType, CodeDescription, DiagnosticRelatedInformation, DiagnosticSeverity, DiagnosticTag, SelectionRange } from 'vscode-languageserver-protocol';
|
|
3
|
+
import type { Range, CodeAction, Position, CompletionItem, Location, LocationLink, DocumentSymbol, WorkspaceSymbol, Disposable, FileChangeType, CodeDescription, DiagnosticRelatedInformation, DiagnosticSeverity, DiagnosticTag, SelectionRange, InlayHint } from 'vscode-languageserver-protocol';
|
|
4
4
|
import type { Scope } from './Scope';
|
|
5
5
|
import type { BrsFile } from './files/BrsFile';
|
|
6
6
|
import type { XmlFile } from './files/XmlFile';
|
|
@@ -22,6 +22,7 @@ import type { FileFactory } from './files/Factory';
|
|
|
22
22
|
import type { LazyFileData } from './files/LazyFileData';
|
|
23
23
|
import type { BscTypeKind } from './types/BscTypeKind';
|
|
24
24
|
import type { SourceFixAllCodeAction } from './CodeActionUtil';
|
|
25
|
+
import type { Availability } from './RokuConstants';
|
|
25
26
|
export interface BsDiagnostic {
|
|
26
27
|
/**
|
|
27
28
|
* The location at which the message applies
|
|
@@ -111,7 +112,17 @@ export interface Callable {
|
|
|
111
112
|
* The range of the name of this callable
|
|
112
113
|
*/
|
|
113
114
|
nameRange?: Range;
|
|
115
|
+
/**
|
|
116
|
+
* @deprecated Use `availability` instead, which carries firmware/rsg_version thresholds for
|
|
117
|
+
* deprecation and removal.
|
|
118
|
+
*/
|
|
114
119
|
isDeprecated?: boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Optional availability metadata relative to Roku OS firmware and/or manifest rsg_version.
|
|
122
|
+
* When set, the validator emits deprecation/removal diagnostics if the project's effective
|
|
123
|
+
* values cross the listed thresholds.
|
|
124
|
+
*/
|
|
125
|
+
availability?: Availability;
|
|
115
126
|
getName: (parseMode: ParseMode) => string;
|
|
116
127
|
/**
|
|
117
128
|
* Indicates whether or not this callable has an associated namespace
|
|
@@ -273,13 +284,21 @@ export interface Plugin {
|
|
|
273
284
|
beforeRemoveProgram?(event: BeforeRemoveProgramEvent): any;
|
|
274
285
|
removeProgram?(event: RemoveProgramEvent): any;
|
|
275
286
|
afterRemoveProgram?(event: AfterRemoveProgramEvent): any;
|
|
287
|
+
/**
|
|
288
|
+
* Called before the `provideSourceFixAllCodeActions` hook.
|
|
289
|
+
*/
|
|
290
|
+
beforeProvideSourceFixAllCodeActions?(event: BeforeProvideSourceFixAllCodeActionsEvent): any;
|
|
276
291
|
/**
|
|
277
292
|
* Emitted when VS Code requests "source fix all" source actions for a file.
|
|
278
293
|
* Plugins push one or more `SourceFixAllCodeAction` objects onto `event.actions`,
|
|
279
294
|
* each representing a distinct named group that will appear in the Source Actions menu.
|
|
280
295
|
* Plugins are responsible for assembling and merging all changes within each action.
|
|
281
296
|
*/
|
|
282
|
-
|
|
297
|
+
provideSourceFixAllCodeActions?(event: ProvideSourceFixAllCodeActionsEvent): any;
|
|
298
|
+
/**
|
|
299
|
+
* Called after `provideSourceFixAllCodeActions`. Use this to intercept or sanitize the actions before they are converted to LSP CodeActions.
|
|
300
|
+
*/
|
|
301
|
+
afterProvideSourceFixAllCodeActions?(event: AfterProvideSourceFixAllCodeActionsEvent): any;
|
|
283
302
|
/**
|
|
284
303
|
* Emitted before the program starts collecting completions
|
|
285
304
|
*/
|
|
@@ -381,6 +400,18 @@ export interface Plugin {
|
|
|
381
400
|
* Called after `provideSelectionRanges`. Use this if you want to intercept or sanitize the selection range data provided by bsc or other plugins.
|
|
382
401
|
*/
|
|
383
402
|
afterProvideSelectionRanges?(event: AfterProvideSelectionRangesEvent): any;
|
|
403
|
+
/**
|
|
404
|
+
* Called before the `provideInlayHints` hook
|
|
405
|
+
*/
|
|
406
|
+
beforeProvideInlayHints?(event: BeforeProvideInlayHintsEvent): any;
|
|
407
|
+
/**
|
|
408
|
+
* Provide inlay hints (e.g. parameter names at call sites, inferred type annotations) for the given range.
|
|
409
|
+
*/
|
|
410
|
+
provideInlayHints?(event: ProvideInlayHintsEvent): any;
|
|
411
|
+
/**
|
|
412
|
+
* Called after `provideInlayHints`. Use this if you want to intercept or sanitize the inlay hints provided by bsc or other plugins.
|
|
413
|
+
*/
|
|
414
|
+
afterProvideInlayHints?(event: AfterProvideInlayHintsEvent): any;
|
|
384
415
|
beforeValidateScope?(event: BeforeValidateScopeEvent): any;
|
|
385
416
|
validateScope?(event: ValidateScopeEvent): any;
|
|
386
417
|
afterValidateScope?(event: AfterValidateScopeEvent): any;
|
|
@@ -408,6 +439,11 @@ export interface Plugin {
|
|
|
408
439
|
* Includes physical files as well as any virtual files produced by `provideFile` events
|
|
409
440
|
*/
|
|
410
441
|
beforeAddFile?(event: BeforeAddFileEvent): any;
|
|
442
|
+
/**
|
|
443
|
+
* Called while a file is being added to the program. This is the central event fired between `beforeAddFile` and `afterAddFile`.
|
|
444
|
+
* Includes physical files as well as any virtual files produced by `provideFile` events
|
|
445
|
+
*/
|
|
446
|
+
addFile?(event: AddFileEvent): any;
|
|
411
447
|
/**
|
|
412
448
|
* Called after a file has been added to the program.
|
|
413
449
|
* Includes physical files as well as any virtual files produced by `provideFile` events
|
|
@@ -417,6 +453,11 @@ export interface Plugin {
|
|
|
417
453
|
* Called before a file is removed from the program. This includes physical and virtual files
|
|
418
454
|
*/
|
|
419
455
|
beforeRemoveFile?(event: BeforeRemoveFileEvent): any;
|
|
456
|
+
/**
|
|
457
|
+
* Called while a file is being removed from the program. This is the central event fired between `beforeRemoveFile` and `afterRemoveFile`.
|
|
458
|
+
* This includes physical and virtual files
|
|
459
|
+
*/
|
|
460
|
+
removeFile?(event: RemoveFileEvent): any;
|
|
420
461
|
/**
|
|
421
462
|
* Called after a file has been removed from the program. This includes physical and virtual files
|
|
422
463
|
*/
|
|
@@ -437,6 +478,10 @@ export interface Plugin {
|
|
|
437
478
|
* Called right before the program builds (i.e. generates the code and puts it in the outDir
|
|
438
479
|
*/
|
|
439
480
|
beforeBuildProgram?(event: BeforeBuildProgramEvent): any;
|
|
481
|
+
/**
|
|
482
|
+
* Called while the program builds. This is the central event fired between `beforeBuildProgram` and `afterBuildProgram`.
|
|
483
|
+
*/
|
|
484
|
+
buildProgram?(event: BuildProgramEvent): any;
|
|
440
485
|
/**
|
|
441
486
|
* Called right after the program builds (i.e. generates the code and puts it in the outDir
|
|
442
487
|
*/
|
|
@@ -481,6 +526,10 @@ export interface Plugin {
|
|
|
481
526
|
* Called before any files are written
|
|
482
527
|
*/
|
|
483
528
|
beforeWriteProgram?(event: BeforeWriteProgramEvent): any;
|
|
529
|
+
/**
|
|
530
|
+
* Called while files are being written. This is the central event fired between `beforeWriteProgram` and `afterWriteProgram`.
|
|
531
|
+
*/
|
|
532
|
+
writeProgram?(event: WriteProgramEvent): any;
|
|
484
533
|
/**
|
|
485
534
|
* Called after all files are written
|
|
486
535
|
*/
|
|
@@ -545,7 +594,7 @@ export interface AfterValidateProgramEvent extends BeforeValidateProgramEvent {
|
|
|
545
594
|
*/
|
|
546
595
|
wasCancelled: boolean;
|
|
547
596
|
}
|
|
548
|
-
export interface
|
|
597
|
+
export interface ProvideSourceFixAllCodeActionsEvent {
|
|
549
598
|
program: Program;
|
|
550
599
|
file: BscFile;
|
|
551
600
|
/** All diagnostics for this file (not range-filtered) */
|
|
@@ -557,6 +606,12 @@ export interface OnGetSourceFixAllCodeActionsEvent {
|
|
|
557
606
|
*/
|
|
558
607
|
actions: SourceFixAllCodeAction[];
|
|
559
608
|
}
|
|
609
|
+
export declare type BeforeProvideSourceFixAllCodeActionsEvent = ProvideSourceFixAllCodeActionsEvent;
|
|
610
|
+
export declare type AfterProvideSourceFixAllCodeActionsEvent = ProvideSourceFixAllCodeActionsEvent;
|
|
611
|
+
/**
|
|
612
|
+
* @deprecated use `ProvideSourceFixAllCodeActionsEvent` instead
|
|
613
|
+
*/
|
|
614
|
+
export declare type OnGetSourceFixAllCodeActionsEvent = ProvideSourceFixAllCodeActionsEvent;
|
|
560
615
|
export interface ProvideCompletionsEvent<TFile extends BscFile = BscFile> {
|
|
561
616
|
program: Program;
|
|
562
617
|
file: TFile;
|
|
@@ -575,6 +630,7 @@ export interface BeforeBuildProgramEvent {
|
|
|
575
630
|
files: BscFile[];
|
|
576
631
|
editor: Editor;
|
|
577
632
|
}
|
|
633
|
+
export declare type BuildProgramEvent = BeforeBuildProgramEvent;
|
|
578
634
|
export declare type AfterBuildProgramEvent = BeforeBuildProgramEvent;
|
|
579
635
|
export interface ProvideHoverEvent {
|
|
580
636
|
program: Program;
|
|
@@ -653,9 +709,12 @@ export interface ProvideDefinitionEvent<TFile = BscFile> {
|
|
|
653
709
|
*/
|
|
654
710
|
position: Position;
|
|
655
711
|
/**
|
|
656
|
-
* The list of locations for where the item at the file and position was defined
|
|
712
|
+
* The list of locations for where the item at the file and position was defined.
|
|
713
|
+
* Plugins may push either `Location` or `LocationLink` objects.
|
|
714
|
+
* When a `LocationLink` is pushed, VS Code will use `originSelectionRange` to highlight
|
|
715
|
+
* the source range of the link (e.g. the full URI of a script tag attribute).
|
|
657
716
|
*/
|
|
658
|
-
definitions: Location
|
|
717
|
+
definitions: Array<Location | LocationLink>;
|
|
659
718
|
}
|
|
660
719
|
export declare type BeforeProvideDefinitionEvent<TFile = BscFile> = ProvideDefinitionEvent<TFile>;
|
|
661
720
|
export declare type AfterProvideDefinitionEvent<TFile = BscFile> = ProvideDefinitionEvent<TFile>;
|
|
@@ -770,6 +829,27 @@ export interface ProvideSelectionRangesEvent<TFile = BscFile> {
|
|
|
770
829
|
}
|
|
771
830
|
export declare type BeforeProvideSelectionRangesEvent<TFile = BscFile> = ProvideSelectionRangesEvent<TFile>;
|
|
772
831
|
export declare type AfterProvideSelectionRangesEvent<TFile = BscFile> = ProvideSelectionRangesEvent<TFile>;
|
|
832
|
+
export interface ProvideInlayHintsEvent<TFile = BscFile> {
|
|
833
|
+
program: Program;
|
|
834
|
+
/**
|
|
835
|
+
* The file that the `inlayHint` request was invoked in
|
|
836
|
+
*/
|
|
837
|
+
file: TFile;
|
|
838
|
+
/**
|
|
839
|
+
* The range of the document for which inlay hints should be computed
|
|
840
|
+
*/
|
|
841
|
+
range: Range;
|
|
842
|
+
/**
|
|
843
|
+
* The list of scopes that this file is a member of
|
|
844
|
+
*/
|
|
845
|
+
scopes: Scope[];
|
|
846
|
+
/**
|
|
847
|
+
* The result list of inlay hints. Plugins push hints into this array.
|
|
848
|
+
*/
|
|
849
|
+
inlayHints: InlayHint[];
|
|
850
|
+
}
|
|
851
|
+
export declare type BeforeProvideInlayHintsEvent<TFile = BscFile> = ProvideInlayHintsEvent<TFile>;
|
|
852
|
+
export declare type AfterProvideInlayHintsEvent<TFile = BscFile> = ProvideInlayHintsEvent<TFile>;
|
|
773
853
|
export declare type BeforeValidateFileEvent = ValidateFileEvent;
|
|
774
854
|
export interface ValidateFileEvent<T extends BscFile = BscFile> {
|
|
775
855
|
program: Program;
|
|
@@ -855,11 +935,13 @@ export interface BeforeAddFileEvent<TFile extends BscFile = BscFile> {
|
|
|
855
935
|
file: TFile;
|
|
856
936
|
program: Program;
|
|
857
937
|
}
|
|
938
|
+
export declare type AddFileEvent<TFile extends BscFile = BscFile> = BeforeAddFileEvent<TFile>;
|
|
858
939
|
export declare type AfterAddFileEvent<TFile extends BscFile = BscFile> = BeforeAddFileEvent<TFile>;
|
|
859
940
|
export interface BeforeRemoveFileEvent<TFile extends BscFile = BscFile> {
|
|
860
941
|
file: TFile;
|
|
861
942
|
program: Program;
|
|
862
943
|
}
|
|
944
|
+
export declare type RemoveFileEvent<TFile extends BscFile = BscFile> = BeforeRemoveFileEvent<TFile>;
|
|
863
945
|
export declare type AfterRemoveFileEvent<TFile extends BscFile = BscFile> = BeforeRemoveFileEvent<TFile>;
|
|
864
946
|
export declare type BeforePrepareProgramEvent = PrepareProgramEvent;
|
|
865
947
|
/**
|
|
@@ -938,6 +1020,7 @@ export interface BeforeWriteProgramEvent {
|
|
|
938
1020
|
outDir: string;
|
|
939
1021
|
files: Map<BscFile, SerializedFile[]>;
|
|
940
1022
|
}
|
|
1023
|
+
export declare type WriteProgramEvent = BeforeWriteProgramEvent;
|
|
941
1024
|
export declare type AfterWriteProgramEvent = BeforeWriteProgramEvent;
|
|
942
1025
|
export declare type BeforeWriteFileEvent = WriteFileEvent;
|
|
943
1026
|
export interface WriteFileEvent {
|
|
@@ -1078,6 +1161,11 @@ export interface GetTypeOptions {
|
|
|
1078
1161
|
* If this is true, AA's, objects, nodes, etc, do not return dynamic if no member is found
|
|
1079
1162
|
*/
|
|
1080
1163
|
ignoreDefaultDynamicMembers?: boolean;
|
|
1164
|
+
/**
|
|
1165
|
+
* If this is true, AA's, objects, nodes, etc will return dynamic for unknown members, instead of ReferenceType.
|
|
1166
|
+
* This is useful for validating in contexts when members could be anything
|
|
1167
|
+
*/
|
|
1168
|
+
changeUnknownNodeMemberToDynamic?: boolean;
|
|
1081
1169
|
}
|
|
1082
1170
|
export declare class TypeChainEntry {
|
|
1083
1171
|
constructor(options: {
|
package/dist/interfaces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AAoBA,iDAA8C;AAE9C,kDAAkD;
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AAoBA,iDAA8C;AAE9C,kDAAkD;AA6uClD,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,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,IAAA,sBAAW,EAAC,qBAAS,CAAC,GAAG,CAAC,CAAC;QAC3E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,MAAA,IAAI,CAAC,IAAI,0CAAE,YAAY,EAAE,CAAC;IAChD,CAAC;IAED,IAAI,QAAQ;;QACR,OAAO,MAAA,IAAI,CAAC,SAAS,mCAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,QAAQ,CAAC;IACpD,CAAC;CASJ;AA9BD,wCA8BC"}
|
package/dist/lexer/Lexer.d.ts
CHANGED
|
@@ -145,6 +145,20 @@ export declare class Lexer {
|
|
|
145
145
|
* string is terminated by a newline or the end of input.
|
|
146
146
|
*/
|
|
147
147
|
private templateString;
|
|
148
|
+
/**
|
|
149
|
+
* Scans the contents of a `${...}` template string expression, stopping just after the `}` that closes it.
|
|
150
|
+
* Assumes the `${` has already been consumed and its token emitted.
|
|
151
|
+
*
|
|
152
|
+
* All actual token scanning is delegated to `scanToken`, so this method's only job is deciding
|
|
153
|
+
* which `}` terminates the expression. A `}` that closes a brace opened _inside_ the expression
|
|
154
|
+
* (an associative array literal, for example) is not the terminator, so we track how many
|
|
155
|
+
* unclosed `{` we've scanned past and only stop at a `}` seen at depth zero.
|
|
156
|
+
*
|
|
157
|
+
* Nested template strings need no special handling here: `scanToken` routes a backtick back into
|
|
158
|
+
* `templateString`, which recurses into this method for its own expressions. Each level therefore
|
|
159
|
+
* gets its own `depth` local, so arbitrarily deep nesting works without any shared state.
|
|
160
|
+
*/
|
|
161
|
+
private templateStringExpression;
|
|
148
162
|
private templateQuasiString;
|
|
149
163
|
/**
|
|
150
164
|
* Reads characters within a base-10 number literal, advancing through fractional and
|
|
@@ -199,6 +213,18 @@ export declare class Lexer {
|
|
|
199
213
|
* Determine if this token is a trivia token
|
|
200
214
|
*/
|
|
201
215
|
private isTrivia;
|
|
216
|
+
/**
|
|
217
|
+
* Returns a single shared string instance for `text`, so that repeated occurrences of
|
|
218
|
+
* the same text all reference one string rather than each holding its own copy from
|
|
219
|
+
* `source.slice()`. Only worth calling for token kinds with a small, bounded set of
|
|
220
|
+
* possible values (`Newline`, `Whitespace`) -- for something like `Identifier` the set
|
|
221
|
+
* is unbounded and the table would just grow without ever paying off.
|
|
222
|
+
*
|
|
223
|
+
* The table is capped: interning is a pure optimization, so once it is full we hand
|
|
224
|
+
* back the original slice rather than growing a process-lifetime cache without bound.
|
|
225
|
+
* See `LEXER_TEXT_CACHE_MAX_ENTRIES`.
|
|
226
|
+
*/
|
|
227
|
+
private internText;
|
|
202
228
|
/**
|
|
203
229
|
* Creates a `Token` and adds it to the `tokens` array.
|
|
204
230
|
* @param kind the type of token to produce.
|
package/dist/lexer/Lexer.js
CHANGED
|
@@ -59,8 +59,8 @@ class Lexer {
|
|
|
59
59
|
}
|
|
60
60
|
this.tokens.push({
|
|
61
61
|
kind: TokenKind_1.TokenKind.Eof,
|
|
62
|
-
isReserved: false,
|
|
63
62
|
text: '',
|
|
63
|
+
isReserved: false,
|
|
64
64
|
location: this.options.trackLocations
|
|
65
65
|
? util_1.default.createLocation(this.lineBegin, this.columnBegin, this.lineEnd, this.columnEnd + 1, this.uri)
|
|
66
66
|
: undefined,
|
|
@@ -158,9 +158,16 @@ class Lexer {
|
|
|
158
158
|
while (this.peek() === ' ' || this.peek() === '\t') {
|
|
159
159
|
this.advance();
|
|
160
160
|
}
|
|
161
|
+
//NOTE: master's version of this method skipped `addToken` entirely on the
|
|
162
|
+
//`includeWhitespace === false` path to avoid allocating a Token it would immediately
|
|
163
|
+
//discard. That optimization isn't safe here: `addToken` is also what routes the token into
|
|
164
|
+
//`leadingTrivia` (see `isTrivia`), and this branch reconstructs spacing and comments from
|
|
165
|
+
//trivia. Skipping it silently drops all whitespace trivia. `addToken` interns the text for
|
|
166
|
+
//us, so the memory half of that optimization still applies.
|
|
161
167
|
const whitespaceToken = this.addToken(TokenKind_1.TokenKind.Whitespace);
|
|
162
168
|
this.leadingWhitespace = whitespaceToken.text;
|
|
163
|
-
//if we aren't keeping the whitespace tokens, then remove this one
|
|
169
|
+
//if we aren't keeping the whitespace tokens, then remove this one from the token output.
|
|
170
|
+
//it stays referenced by `leadingTrivia`, which is why it must be created above.
|
|
164
171
|
if (this.options.includeWhitespace === false) {
|
|
165
172
|
this.tokens.pop();
|
|
166
173
|
}
|
|
@@ -349,18 +356,7 @@ class Lexer {
|
|
|
349
356
|
this.advance();
|
|
350
357
|
this.advance();
|
|
351
358
|
this.addToken(TokenKind_1.TokenKind.TemplateStringExpressionBegin);
|
|
352
|
-
|
|
353
|
-
this.start = this.current;
|
|
354
|
-
this.scanToken();
|
|
355
|
-
}
|
|
356
|
-
if (this.check('}')) {
|
|
357
|
-
this.advance();
|
|
358
|
-
this.addToken(TokenKind_1.TokenKind.TemplateStringExpressionEnd);
|
|
359
|
-
}
|
|
360
|
-
else {
|
|
361
|
-
this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.unexpectedConditionalCompilationString()), { location: this.locationOf() }));
|
|
362
|
-
}
|
|
363
|
-
this.start = this.current;
|
|
359
|
+
this.templateStringExpression();
|
|
364
360
|
}
|
|
365
361
|
else {
|
|
366
362
|
this.advance();
|
|
@@ -374,6 +370,42 @@ class Lexer {
|
|
|
374
370
|
this.addToken(TokenKind_1.TokenKind.BackTick);
|
|
375
371
|
}
|
|
376
372
|
}
|
|
373
|
+
/**
|
|
374
|
+
* Scans the contents of a `${...}` template string expression, stopping just after the `}` that closes it.
|
|
375
|
+
* Assumes the `${` has already been consumed and its token emitted.
|
|
376
|
+
*
|
|
377
|
+
* All actual token scanning is delegated to `scanToken`, so this method's only job is deciding
|
|
378
|
+
* which `}` terminates the expression. A `}` that closes a brace opened _inside_ the expression
|
|
379
|
+
* (an associative array literal, for example) is not the terminator, so we track how many
|
|
380
|
+
* unclosed `{` we've scanned past and only stop at a `}` seen at depth zero.
|
|
381
|
+
*
|
|
382
|
+
* Nested template strings need no special handling here: `scanToken` routes a backtick back into
|
|
383
|
+
* `templateString`, which recurses into this method for its own expressions. Each level therefore
|
|
384
|
+
* gets its own `depth` local, so arbitrarily deep nesting works without any shared state.
|
|
385
|
+
*/
|
|
386
|
+
templateStringExpression() {
|
|
387
|
+
let depth = 0;
|
|
388
|
+
while (!this.isAtEnd()) {
|
|
389
|
+
if (this.check('}')) {
|
|
390
|
+
if (depth === 0) {
|
|
391
|
+
//this is the `}` that closes the expression
|
|
392
|
+
this.advance();
|
|
393
|
+
this.addToken(TokenKind_1.TokenKind.TemplateStringExpressionEnd);
|
|
394
|
+
this.start = this.current;
|
|
395
|
+
return;
|
|
396
|
+
}
|
|
397
|
+
depth--;
|
|
398
|
+
}
|
|
399
|
+
else if (this.check('{')) {
|
|
400
|
+
depth++;
|
|
401
|
+
}
|
|
402
|
+
this.start = this.current;
|
|
403
|
+
this.scanToken();
|
|
404
|
+
}
|
|
405
|
+
//we hit the end of the file before finding the closing `}`
|
|
406
|
+
this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.unexpectedConditionalCompilationString()), { location: this.locationOf() }));
|
|
407
|
+
this.start = this.current;
|
|
408
|
+
}
|
|
377
409
|
templateQuasiString() {
|
|
378
410
|
let value = this.source.slice(this.start, this.current);
|
|
379
411
|
if (value !== '`') { // if this is an empty string straight after an expression, then we'll accidentally consume the backtick
|
|
@@ -736,12 +768,105 @@ class Lexer {
|
|
|
736
768
|
isTrivia(token) {
|
|
737
769
|
return TokenKind_1.AllowedTriviaTokens.includes(token.kind);
|
|
738
770
|
}
|
|
771
|
+
/**
|
|
772
|
+
* Returns a single shared string instance for `text`, so that repeated occurrences of
|
|
773
|
+
* the same text all reference one string rather than each holding its own copy from
|
|
774
|
+
* `source.slice()`. Only worth calling for token kinds with a small, bounded set of
|
|
775
|
+
* possible values (`Newline`, `Whitespace`) -- for something like `Identifier` the set
|
|
776
|
+
* is unbounded and the table would just grow without ever paying off.
|
|
777
|
+
*
|
|
778
|
+
* The table is capped: interning is a pure optimization, so once it is full we hand
|
|
779
|
+
* back the original slice rather than growing a process-lifetime cache without bound.
|
|
780
|
+
* See `LEXER_TEXT_CACHE_MAX_ENTRIES`.
|
|
781
|
+
*/
|
|
782
|
+
internText(text) {
|
|
783
|
+
const cached = TokenKind_1.LexerTextCache.get(text);
|
|
784
|
+
if (cached !== undefined) {
|
|
785
|
+
return cached;
|
|
786
|
+
}
|
|
787
|
+
if (TokenKind_1.LexerTextCache.size < TokenKind_1.LEXER_TEXT_CACHE_MAX_ENTRIES) {
|
|
788
|
+
TokenKind_1.LexerTextCache.set(text, text);
|
|
789
|
+
}
|
|
790
|
+
return text;
|
|
791
|
+
}
|
|
739
792
|
/**
|
|
740
793
|
* Creates a `Token` and adds it to the `tokens` array.
|
|
741
794
|
* @param kind the type of token to produce.
|
|
742
795
|
*/
|
|
743
796
|
addToken(kind) {
|
|
744
|
-
|
|
797
|
+
//Ordered by real-world token frequency, measured over ~2.9M tokens of production
|
|
798
|
+
//and open-source BrightScript. V8 compiles a string switch to a chain of
|
|
799
|
+
//pointer-equality compares (not a jump table -- those need dense integers), so
|
|
800
|
+
//the order of these cases is load-bearing: the hottest kinds must come first.
|
|
801
|
+
//Distribution: Identifier 27.5%, Newline 16.7%, Dot 10.2%, R/LParen 10.5%,
|
|
802
|
+
//Equal 4.5%, Comma 3.1%, Colon 1.9%. Those cases cover ~75% of all tokens.
|
|
803
|
+
let text;
|
|
804
|
+
switch (kind) {
|
|
805
|
+
//most common kind, and its text is always content-dependent: slice directly
|
|
806
|
+
//and skip the FixedTokenText probe entirely (it could never hit).
|
|
807
|
+
case TokenKind_1.TokenKind.Identifier:
|
|
808
|
+
text = this.source.slice(this.start, this.current);
|
|
809
|
+
break;
|
|
810
|
+
//Second most common kind. Only three forms are possible ('\n', '\r\n', '\r'),
|
|
811
|
+
//so compare against them directly instead of paying a Map lookup to intern --
|
|
812
|
+
//measured 6-8x cheaper per newline. Which form is tested first barely matters
|
|
813
|
+
//(~0.02ms per 90k newlines either way), so this stays in the order that reads
|
|
814
|
+
//best rather than favoring LF or CRLF: the mix varies by platform and by git's
|
|
815
|
+
//autocrlf setting, and it is not worth optimizing for a guess.
|
|
816
|
+
case TokenKind_1.TokenKind.Newline: {
|
|
817
|
+
const raw = this.source.slice(this.start, this.current);
|
|
818
|
+
if (raw === '\n') {
|
|
819
|
+
text = '\n';
|
|
820
|
+
}
|
|
821
|
+
else if (raw === '\r\n') {
|
|
822
|
+
text = '\r\n';
|
|
823
|
+
}
|
|
824
|
+
else if (raw === '\r') {
|
|
825
|
+
text = '\r';
|
|
826
|
+
}
|
|
827
|
+
else {
|
|
828
|
+
text = raw;
|
|
829
|
+
}
|
|
830
|
+
break;
|
|
831
|
+
}
|
|
832
|
+
//hottest fixed-text kinds, inlined so they resolve without a table probe
|
|
833
|
+
case TokenKind_1.TokenKind.Dot:
|
|
834
|
+
text = '.';
|
|
835
|
+
break;
|
|
836
|
+
case TokenKind_1.TokenKind.LeftParen:
|
|
837
|
+
text = '(';
|
|
838
|
+
break;
|
|
839
|
+
case TokenKind_1.TokenKind.RightParen:
|
|
840
|
+
text = ')';
|
|
841
|
+
break;
|
|
842
|
+
case TokenKind_1.TokenKind.Equal:
|
|
843
|
+
text = '=';
|
|
844
|
+
break;
|
|
845
|
+
case TokenKind_1.TokenKind.Comma:
|
|
846
|
+
text = ',';
|
|
847
|
+
break;
|
|
848
|
+
case TokenKind_1.TokenKind.Colon:
|
|
849
|
+
text = ':';
|
|
850
|
+
break;
|
|
851
|
+
//`Whitespace` always reaches here, because the Token has to exist to be recorded as
|
|
852
|
+
//leading trivia even when `includeWhitespace` is false (`whitespace()` pops it from
|
|
853
|
+
//the token list afterward). Indent strings are unbounded in principle, so this one
|
|
854
|
+
//uses the capped intern table to collapse repeat indents onto one shared string.
|
|
855
|
+
case TokenKind_1.TokenKind.Whitespace:
|
|
856
|
+
text = this.internText(this.source.slice(this.start, this.current));
|
|
857
|
+
break;
|
|
858
|
+
//everything else: the remaining fixed-text kinds resolve from the table, and
|
|
859
|
+
//literals/comments/keywords fall through to a plain slice.
|
|
860
|
+
default: {
|
|
861
|
+
const fixedText = TokenKind_1.FixedTokenText[kind];
|
|
862
|
+
text = fixedText !== undefined
|
|
863
|
+
? fixedText
|
|
864
|
+
: this.source.slice(this.start, this.current);
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
//this is the canonical Token field order. Every other place that synthesizes a
|
|
868
|
+
//Token should use this same order (and set every field) so all tokens share a
|
|
869
|
+
//single V8 hidden class instead of forcing megamorphic property access downstream
|
|
745
870
|
let token = {
|
|
746
871
|
kind: kind,
|
|
747
872
|
text: text,
|
package/dist/lexer/Lexer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Lexer.js","sourceRoot":"","sources":["../../src/lexer/Lexer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Lexer.js","sourceRoot":"","sources":["../../src/lexer/Lexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -222,3 +222,30 @@ export declare type PrintSeparatorToken = Token & {
|
|
|
222
222
|
* The tokens that may be in a binary expression
|
|
223
223
|
*/
|
|
224
224
|
export declare const BinaryExpressionOperatorTokens: ReadonlyArray<TokenKind>;
|
|
225
|
+
/**
|
|
226
|
+
* Token kinds whose source text is invariant (always the same character sequence).
|
|
227
|
+
* For these kinds the lexer can use the canonical string here instead of allocating
|
|
228
|
+
* a fresh substring/slice per token, which dramatically reduces per-token wrapper
|
|
229
|
+
* allocations across an entire build. Excludes any kind whose text could legitimately
|
|
230
|
+
* vary by case (keywords like `Function`/`function`) or content (identifiers, literals,
|
|
231
|
+
* comments, whitespace, multi-form sequences like Newline).
|
|
232
|
+
*/
|
|
233
|
+
export declare const FixedTokenText: Partial<Record<TokenKind, string>>;
|
|
234
|
+
/**
|
|
235
|
+
* Lazy intern table for `Newline` and `Whitespace` token text. Real source uses
|
|
236
|
+
* a small number of unique values for each (3 valid newline forms, ~50 typical
|
|
237
|
+
* indent patterns), so canonicalizing on first sight collapses per-token sliced
|
|
238
|
+
* string wrappers without the per-call overhead that a full token-text interner
|
|
239
|
+
* would incur on the unbounded `Identifier` and literal token kinds.
|
|
240
|
+
*
|
|
241
|
+
* Measured across 1078 real files this settles at ~32 entries / ~2.3 KB. But the
|
|
242
|
+
* table is module-scope and lives for the whole process, which matters for the
|
|
243
|
+
* language server: a single generated or minified file whose every line has a
|
|
244
|
+
* distinct indent width can add thousands of entries (a synthetic 5000-line file
|
|
245
|
+
* with unique indents grows it to ~8.9 MB), and nothing would ever release them.
|
|
246
|
+
* `LEXER_TEXT_CACHE_MAX_ENTRIES` caps that worst case. Interning is a pure
|
|
247
|
+
* optimization, so once the cap is hit the lexer simply stops interning new text
|
|
248
|
+
* and keeps using the sliced string; behavior is identical either way.
|
|
249
|
+
*/
|
|
250
|
+
export declare const LEXER_TEXT_CACHE_MAX_ENTRIES = 512;
|
|
251
|
+
export declare const LexerTextCache: Map<string, string>;
|