brighterscript 1.0.0-alpha.24 → 1.0.0-alpha.26
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 +521 -233
- package/README.md +45 -139
- package/bsconfig.schema.json +46 -0
- package/dist/ActionPipeline.d.ts +10 -0
- package/dist/ActionPipeline.js +40 -0
- package/dist/ActionPipeline.js.map +1 -0
- package/dist/AstValidationSegmenter.d.ts +25 -0
- package/dist/AstValidationSegmenter.js +152 -0
- package/dist/AstValidationSegmenter.js.map +1 -0
- package/dist/BsConfig.d.ts +40 -4
- package/dist/BusyStatusTracker.d.ts +31 -0
- package/dist/BusyStatusTracker.js +83 -0
- package/dist/BusyStatusTracker.js.map +1 -0
- package/dist/Cache.js +3 -3
- package/dist/Cache.js.map +1 -1
- package/dist/CacheVerifier.d.ts +7 -0
- package/dist/CacheVerifier.js +20 -0
- package/dist/CacheVerifier.js.map +1 -0
- package/dist/CodeActionUtil.d.ts +3 -3
- package/dist/CodeActionUtil.js.map +1 -1
- package/dist/CommentFlagProcessor.d.ts +3 -2
- package/dist/CommentFlagProcessor.js +5 -4
- package/dist/CommentFlagProcessor.js.map +1 -1
- package/dist/DependencyGraph.d.ts +3 -2
- package/dist/DependencyGraph.js +11 -10
- package/dist/DependencyGraph.js.map +1 -1
- package/dist/DiagnosticCollection.js +9 -5
- package/dist/DiagnosticCollection.js.map +1 -1
- package/dist/DiagnosticFilterer.d.ts +1 -0
- package/dist/DiagnosticFilterer.js +5 -3
- package/dist/DiagnosticFilterer.js.map +1 -1
- package/dist/DiagnosticMessages.d.ts +61 -13
- package/dist/DiagnosticMessages.js +116 -19
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/DiagnosticSeverityAdjuster.d.ts +7 -0
- package/dist/DiagnosticSeverityAdjuster.js +41 -0
- package/dist/DiagnosticSeverityAdjuster.js.map +1 -0
- package/dist/FunctionScope.d.ts +28 -0
- package/dist/FunctionScope.js +52 -0
- package/dist/FunctionScope.js.map +1 -0
- package/dist/KeyedThrottler.d.ts +3 -3
- package/dist/KeyedThrottler.js +3 -3
- package/dist/KeyedThrottler.js.map +1 -1
- package/dist/LanguageServer.d.ts +23 -11
- package/dist/LanguageServer.js +150 -69
- package/dist/LanguageServer.js.map +1 -1
- package/dist/Logger.d.ts +3 -2
- package/dist/Logger.js +11 -3
- package/dist/Logger.js.map +1 -1
- package/dist/PluginInterface.d.ts +21 -3
- package/dist/PluginInterface.js +74 -6
- package/dist/PluginInterface.js.map +1 -1
- package/dist/Program.d.ts +158 -79
- package/dist/Program.js +841 -706
- package/dist/Program.js.map +1 -1
- package/dist/ProgramBuilder.d.ts +22 -12
- package/dist/ProgramBuilder.js +130 -103
- package/dist/ProgramBuilder.js.map +1 -1
- package/dist/Scope.d.ts +86 -137
- package/dist/Scope.js +453 -519
- package/dist/Scope.js.map +1 -1
- package/dist/Stopwatch.js +1 -1
- package/dist/Stopwatch.js.map +1 -1
- package/dist/SymbolTable.d.ts +89 -34
- package/dist/SymbolTable.js +239 -114
- package/dist/SymbolTable.js.map +1 -1
- package/dist/Throttler.d.ts +12 -0
- package/dist/Throttler.js +39 -0
- package/dist/Throttler.js.map +1 -1
- package/dist/Watcher.d.ts +0 -3
- package/dist/Watcher.js +0 -3
- package/dist/Watcher.js.map +1 -1
- package/dist/XmlScope.d.ts +4 -11
- package/dist/XmlScope.js +75 -88
- package/dist/XmlScope.js.map +1 -1
- package/dist/astUtils/CachedLookups.d.ts +48 -0
- package/dist/astUtils/CachedLookups.js +323 -0
- package/dist/astUtils/CachedLookups.js.map +1 -0
- package/dist/astUtils/{AstEditor.d.ts → Editor.d.ts} +9 -5
- package/dist/astUtils/{AstEditor.js → Editor.js} +10 -4
- package/dist/astUtils/Editor.js.map +1 -0
- package/dist/astUtils/{AstEditor.spec.js → Editor.spec.js} +69 -65
- package/dist/astUtils/Editor.spec.js.map +1 -0
- package/dist/astUtils/creators.d.ts +10 -10
- package/dist/astUtils/creators.js +54 -24
- package/dist/astUtils/creators.js.map +1 -1
- package/dist/astUtils/creators.spec.js +5 -5
- package/dist/astUtils/creators.spec.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +132 -104
- package/dist/astUtils/reflection.js +220 -174
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/reflection.spec.js +256 -157
- package/dist/astUtils/reflection.spec.js.map +1 -1
- package/dist/astUtils/stackedVisitor.spec.js +12 -12
- package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +53 -35
- package/dist/astUtils/visitors.js +29 -3
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/astUtils/visitors.spec.js +208 -52
- package/dist/astUtils/visitors.spec.js.map +1 -1
- package/dist/astUtils/xml.d.ts +9 -9
- package/dist/astUtils/xml.js +9 -9
- package/dist/astUtils/xml.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.d.ts +11 -2
- package/dist/bscPlugin/BscPlugin.js +37 -3
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- package/dist/bscPlugin/CallExpressionInfo.d.ts +36 -0
- package/dist/bscPlugin/CallExpressionInfo.js +131 -0
- package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
- package/dist/bscPlugin/FileWriter.d.ts +6 -0
- package/dist/bscPlugin/FileWriter.js +24 -0
- package/dist/bscPlugin/FileWriter.js.map +1 -0
- package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
- package/dist/bscPlugin/SignatureHelpUtil.js +136 -0
- package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +16 -13
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +16 -16
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +52 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.js +517 -26
- package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +1909 -0
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -0
- 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.js +88 -0
- package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
- package/dist/bscPlugin/fileProviders/FileProvider.d.ts +9 -0
- package/dist/bscPlugin/fileProviders/FileProvider.js +51 -0
- package/dist/bscPlugin/fileProviders/FileProvider.js.map +1 -0
- package/dist/bscPlugin/hover/HoverProcessor.d.ts +7 -7
- package/dist/bscPlugin/hover/HoverProcessor.js +123 -125
- package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
- package/dist/bscPlugin/hover/HoverProcessor.spec.js +371 -53
- package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +2 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +83 -23
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +83 -6
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/serialize/BslibInjector.spec.d.ts +1 -0
- package/dist/bscPlugin/serialize/BslibInjector.spec.js +19 -0
- package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +1 -0
- package/dist/bscPlugin/serialize/BslibManager.d.ts +9 -0
- package/dist/bscPlugin/serialize/BslibManager.js +40 -0
- package/dist/bscPlugin/serialize/BslibManager.js.map +1 -0
- package/dist/bscPlugin/serialize/FileSerializer.d.ts +9 -0
- package/dist/bscPlugin/serialize/FileSerializer.js +72 -0
- package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
- package/dist/bscPlugin/transpile/{BrsFilePreTranspileProcessor.d.ts → BrsFileTranspileProcessor.d.ts} +4 -2
- package/dist/bscPlugin/transpile/{BrsFilePreTranspileProcessor.js → BrsFileTranspileProcessor.js} +38 -12
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -0
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.d.ts +1 -0
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +41 -0
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +1 -0
- package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +12 -0
- package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +99 -0
- package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
- package/dist/bscPlugin/validation/BrsFileValidator.d.ts +13 -5
- package/dist/bscPlugin/validation/BrsFileValidator.js +262 -52
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js +230 -14
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
- package/dist/bscPlugin/validation/ProgramValidator.d.ts +10 -0
- package/dist/bscPlugin/validation/ProgramValidator.js +32 -0
- package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -0
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +58 -27
- package/dist/bscPlugin/validation/ScopeValidator.js +514 -286
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.spec.d.ts +1 -0
- package/dist/bscPlugin/validation/ScopeValidator.spec.js +2527 -0
- package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -0
- package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
- package/dist/bscPlugin/validation/XmlFileValidator.js +44 -0
- package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
- package/dist/cli.js +104 -13
- package/dist/cli.js.map +1 -1
- package/dist/deferred.d.ts +3 -3
- package/dist/deferred.js.map +1 -1
- package/dist/diagnosticUtils.d.ts +8 -2
- package/dist/diagnosticUtils.js +47 -17
- package/dist/diagnosticUtils.js.map +1 -1
- package/dist/examples/plugins/removePrint.js +8 -10
- package/dist/examples/plugins/removePrint.js.map +1 -1
- package/dist/files/AssetFile.d.ts +26 -0
- package/dist/files/AssetFile.js +26 -0
- package/dist/files/AssetFile.js.map +1 -0
- package/dist/files/BrsFile.Class.spec.js +523 -493
- package/dist/files/BrsFile.Class.spec.js.map +1 -1
- package/dist/files/BrsFile.d.ts +111 -117
- package/dist/files/BrsFile.js +684 -1142
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +1783 -1233
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/files/BscFile.d.ts +104 -0
- package/dist/files/BscFile.js +16 -0
- package/dist/files/BscFile.js.map +1 -0
- package/dist/files/Factory.d.ts +25 -0
- package/dist/files/Factory.js +22 -0
- package/dist/files/Factory.js.map +1 -0
- package/dist/files/LazyFileData.d.ts +20 -0
- package/dist/files/LazyFileData.js +54 -0
- package/dist/files/LazyFileData.js.map +1 -0
- package/dist/files/LazyFileData.spec.d.ts +1 -0
- package/dist/files/LazyFileData.spec.js +27 -0
- package/dist/files/LazyFileData.spec.js.map +1 -0
- package/dist/files/XmlFile.d.ts +70 -32
- package/dist/files/XmlFile.js +106 -118
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/files/XmlFile.spec.js +325 -262
- package/dist/files/XmlFile.spec.js.map +1 -1
- package/dist/files/tests/imports.spec.js +48 -40
- package/dist/files/tests/imports.spec.js.map +1 -1
- package/dist/files/tests/optionalChaning.spec.js +84 -24
- package/dist/files/tests/optionalChaning.spec.js.map +1 -1
- package/dist/globalCallables.js +16 -21
- package/dist/globalCallables.js.map +1 -1
- package/dist/index.d.ts +12 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +421 -162
- package/dist/interfaces.js +27 -0
- package/dist/interfaces.js.map +1 -1
- package/dist/lexer/Character.spec.js +5 -5
- package/dist/lexer/Character.spec.js.map +1 -1
- package/dist/lexer/Lexer.d.ts +12 -5
- package/dist/lexer/Lexer.js +28 -13
- package/dist/lexer/Lexer.js.map +1 -1
- package/dist/lexer/Lexer.spec.js +181 -135
- package/dist/lexer/Lexer.spec.js.map +1 -1
- package/dist/lexer/Token.d.ts +9 -1
- package/dist/lexer/Token.js +9 -1
- package/dist/lexer/Token.js.map +1 -1
- package/dist/lexer/TokenKind.d.ts +8 -0
- package/dist/lexer/TokenKind.js +24 -4
- package/dist/lexer/TokenKind.js.map +1 -1
- package/dist/parser/AstNode.d.ts +162 -0
- package/dist/parser/AstNode.js +225 -0
- package/dist/parser/AstNode.js.map +1 -0
- package/dist/parser/AstNode.spec.d.ts +1 -0
- package/dist/parser/AstNode.spec.js +165 -0
- package/dist/parser/AstNode.spec.js.map +1 -0
- package/dist/parser/BrsTranspileState.d.ts +4 -7
- package/dist/parser/BrsTranspileState.js +4 -12
- package/dist/parser/BrsTranspileState.js.map +1 -1
- package/dist/parser/Expression.d.ts +376 -283
- package/dist/parser/Expression.js +742 -585
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.Class.spec.js +151 -145
- package/dist/parser/Parser.Class.spec.js.map +1 -1
- package/dist/parser/Parser.d.ts +48 -201
- package/dist/parser/Parser.js +705 -1026
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.d.ts +3 -1
- package/dist/parser/Parser.spec.js +861 -848
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/SGParser.d.ts +9 -8
- package/dist/parser/SGParser.js +10 -8
- package/dist/parser/SGParser.js.map +1 -1
- package/dist/parser/SGParser.spec.js +27 -38
- package/dist/parser/SGParser.spec.js.map +1 -1
- package/dist/parser/SGTypes.d.ts +98 -35
- package/dist/parser/SGTypes.js +169 -99
- package/dist/parser/SGTypes.js.map +1 -1
- package/dist/parser/Statement.d.ts +468 -272
- package/dist/parser/Statement.js +904 -631
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/Statement.spec.js +47 -23
- package/dist/parser/Statement.spec.js.map +1 -1
- package/dist/parser/TranspileState.d.ts +1 -1
- package/dist/parser/TranspileState.js +7 -12
- package/dist/parser/TranspileState.js.map +1 -1
- package/dist/parser/tests/Parser.spec.js +3 -2
- package/dist/parser/tests/Parser.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/For.spec.js +33 -23
- package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/ForEach.spec.js +25 -20
- package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/If.spec.js +96 -94
- package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/While.spec.js +22 -16
- package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
- package/dist/parser/tests/expression/Additive.spec.js +8 -8
- package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
- package/dist/parser/tests/expression/ArrayLiterals.spec.js +58 -21
- package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +62 -21
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/Boolean.spec.js +8 -8
- package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
- package/dist/parser/tests/expression/Call.spec.js +129 -21
- package/dist/parser/tests/expression/Call.spec.js.map +1 -1
- package/dist/parser/tests/expression/Exponential.spec.js +5 -5
- package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
- package/dist/parser/tests/expression/Function.spec.js +36 -36
- package/dist/parser/tests/expression/Function.spec.js.map +1 -1
- package/dist/parser/tests/expression/Indexing.spec.js +92 -22
- package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
- package/dist/parser/tests/expression/Multiplicative.spec.js +9 -9
- package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +59 -59
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/PrefixUnary.spec.js +12 -12
- package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
- package/dist/parser/tests/expression/Primary.spec.js +12 -12
- package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
- package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +10 -10
- package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/Relational.spec.js +13 -13
- package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +24 -24
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js +96 -57
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TernaryExpression.spec.js +89 -89
- package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TypeExpression.spec.d.ts +1 -0
- package/dist/parser/tests/expression/TypeExpression.spec.js +127 -0
- package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -0
- package/dist/parser/tests/expression/UnaryExpression.spec.d.ts +1 -0
- package/dist/parser/tests/expression/UnaryExpression.spec.js +52 -0
- package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -0
- package/dist/parser/tests/statement/AssignmentOperators.spec.js +15 -15
- package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
- package/dist/parser/tests/statement/ConstStatement.spec.js +82 -33
- package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Continue.spec.d.ts +1 -0
- package/dist/parser/tests/statement/Continue.spec.js +119 -0
- package/dist/parser/tests/statement/Continue.spec.js.map +1 -0
- package/dist/parser/tests/statement/Declaration.spec.js +19 -19
- package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
- package/dist/parser/tests/statement/Dim.spec.js +22 -22
- package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
- package/dist/parser/tests/statement/Enum.spec.js +98 -302
- package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
- package/dist/parser/tests/statement/For.spec.js +9 -10
- package/dist/parser/tests/statement/For.spec.js.map +1 -1
- package/dist/parser/tests/statement/ForEach.spec.js +8 -9
- package/dist/parser/tests/statement/ForEach.spec.js.map +1 -1
- package/dist/parser/tests/statement/Function.spec.js +44 -35
- package/dist/parser/tests/statement/Function.spec.js.map +1 -1
- package/dist/parser/tests/statement/Goto.spec.js +5 -5
- package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
- package/dist/parser/tests/statement/Increment.spec.js +20 -20
- package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
- package/dist/parser/tests/statement/InterfaceStatement.spec.js +30 -196
- package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/LibraryStatement.spec.js +11 -11
- package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Misc.spec.js +16 -78
- package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
- package/dist/parser/tests/statement/PrintStatement.spec.js +36 -34
- package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/ReturnStatement.spec.js +14 -12
- package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Set.spec.js +48 -35
- package/dist/parser/tests/statement/Set.spec.js.map +1 -1
- package/dist/parser/tests/statement/Stop.spec.js +6 -6
- package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
- package/dist/parser/tests/statement/Throw.spec.js +6 -6
- package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
- package/dist/parser/tests/statement/TryCatch.spec.js +18 -16
- package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
- package/dist/preprocessor/Manifest.d.ts +1 -1
- package/dist/preprocessor/Manifest.js +2 -2
- package/dist/preprocessor/Manifest.js.map +1 -1
- package/dist/preprocessor/Manifest.spec.js +8 -8
- package/dist/preprocessor/Manifest.spec.js.map +1 -1
- package/dist/preprocessor/Preprocessor.d.ts +5 -6
- package/dist/preprocessor/Preprocessor.js +5 -5
- package/dist/preprocessor/Preprocessor.js.map +1 -1
- package/dist/preprocessor/Preprocessor.spec.js +25 -25
- package/dist/preprocessor/Preprocessor.spec.js.map +1 -1
- package/dist/preprocessor/PreprocessorParser.d.ts +1 -1
- package/dist/preprocessor/PreprocessorParser.js +7 -1
- package/dist/preprocessor/PreprocessorParser.js.map +1 -1
- package/dist/preprocessor/PreprocessorParser.spec.js +13 -13
- package/dist/preprocessor/PreprocessorParser.spec.js.map +1 -1
- package/dist/roku-types/data.json +5892 -10081
- package/dist/roku-types/index.d.ts +622 -1719
- package/dist/types/ArrayType.d.ts +10 -9
- package/dist/types/ArrayType.js +65 -60
- package/dist/types/ArrayType.js.map +1 -1
- package/dist/types/ArrayType.spec.js +36 -68
- package/dist/types/ArrayType.spec.js.map +1 -1
- package/dist/types/AssociativeArrayType.d.ts +11 -0
- package/dist/types/AssociativeArrayType.js +52 -0
- package/dist/types/AssociativeArrayType.js.map +1 -0
- package/dist/types/BaseFunctionType.d.ts +9 -0
- package/dist/types/BaseFunctionType.js +25 -0
- package/dist/types/BaseFunctionType.js.map +1 -0
- package/dist/types/BooleanType.d.ts +8 -5
- package/dist/types/BooleanType.js +14 -7
- package/dist/types/BooleanType.js.map +1 -1
- package/dist/types/BooleanType.spec.js +10 -6
- package/dist/types/BooleanType.spec.js.map +1 -1
- package/dist/types/BscType.d.ts +32 -21
- package/dist/types/BscType.js +118 -21
- package/dist/types/BscType.js.map +1 -1
- package/dist/types/BscTypeKind.d.ts +25 -0
- package/dist/types/BscTypeKind.js +30 -0
- package/dist/types/BscTypeKind.js.map +1 -0
- package/dist/types/BuiltInInterfaceAdder.d.ts +23 -0
- package/dist/types/BuiltInInterfaceAdder.js +171 -0
- package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
- package/dist/types/BuiltInInterfaceAdder.spec.d.ts +1 -0
- package/dist/types/BuiltInInterfaceAdder.spec.js +116 -0
- package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -0
- package/dist/types/ClassType.d.ts +17 -0
- package/dist/types/ClassType.js +58 -0
- package/dist/types/ClassType.js.map +1 -0
- package/dist/types/ClassType.spec.d.ts +1 -0
- package/dist/types/ClassType.spec.js +77 -0
- package/dist/types/ClassType.spec.js.map +1 -0
- package/dist/types/ComponentType.d.ts +26 -0
- package/dist/types/ComponentType.js +83 -0
- package/dist/types/ComponentType.js.map +1 -0
- package/dist/types/DoubleType.d.ts +8 -5
- package/dist/types/DoubleType.js +18 -16
- package/dist/types/DoubleType.js.map +1 -1
- package/dist/types/DoubleType.spec.js +12 -6
- package/dist/types/DoubleType.spec.js.map +1 -1
- package/dist/types/DynamicType.d.ts +9 -5
- package/dist/types/DynamicType.js +15 -4
- package/dist/types/DynamicType.js.map +1 -1
- package/dist/types/DynamicType.spec.js +16 -5
- package/dist/types/DynamicType.spec.js.map +1 -1
- package/dist/types/EnumType.d.ts +30 -12
- package/dist/types/EnumType.js +43 -17
- package/dist/types/EnumType.js.map +1 -1
- package/dist/types/EnumType.spec.d.ts +1 -0
- package/dist/types/EnumType.spec.js +33 -0
- package/dist/types/EnumType.spec.js.map +1 -0
- package/dist/types/FloatType.d.ts +8 -5
- package/dist/types/FloatType.js +18 -16
- package/dist/types/FloatType.js.map +1 -1
- package/dist/types/FloatType.spec.js +4 -6
- package/dist/types/FloatType.spec.js.map +1 -1
- package/dist/types/FunctionType.d.ts +13 -8
- package/dist/types/FunctionType.js +30 -14
- package/dist/types/FunctionType.js.map +1 -1
- package/dist/types/InheritableType.d.ts +28 -0
- package/dist/types/InheritableType.js +152 -0
- package/dist/types/InheritableType.js.map +1 -0
- package/dist/types/IntegerType.d.ts +8 -5
- package/dist/types/IntegerType.js +18 -16
- package/dist/types/IntegerType.js.map +1 -1
- package/dist/types/IntegerType.spec.js +8 -6
- package/dist/types/IntegerType.spec.js.map +1 -1
- package/dist/types/InterfaceType.d.ts +12 -13
- package/dist/types/InterfaceType.js +20 -48
- package/dist/types/InterfaceType.js.map +1 -1
- package/dist/types/InterfaceType.spec.js +90 -56
- package/dist/types/InterfaceType.spec.js.map +1 -1
- package/dist/types/InvalidType.d.ts +7 -5
- package/dist/types/InvalidType.js +13 -7
- package/dist/types/InvalidType.js.map +1 -1
- package/dist/types/InvalidType.spec.js +8 -6
- package/dist/types/InvalidType.spec.js.map +1 -1
- package/dist/types/LongIntegerType.d.ts +8 -5
- package/dist/types/LongIntegerType.js +17 -15
- package/dist/types/LongIntegerType.js.map +1 -1
- package/dist/types/LongIntegerType.spec.js +10 -6
- package/dist/types/LongIntegerType.spec.js.map +1 -1
- package/dist/types/NamespaceType.d.ts +12 -0
- package/dist/types/NamespaceType.js +28 -0
- package/dist/types/NamespaceType.js.map +1 -0
- package/dist/types/ObjectType.d.ts +9 -8
- package/dist/types/ObjectType.js +21 -11
- package/dist/types/ObjectType.js.map +1 -1
- package/dist/types/ObjectType.spec.js +3 -3
- package/dist/types/ObjectType.spec.js.map +1 -1
- package/dist/types/ReferenceType.d.ts +63 -0
- package/dist/types/ReferenceType.js +423 -0
- package/dist/types/ReferenceType.js.map +1 -0
- package/dist/types/ReferenceType.spec.d.ts +1 -0
- package/dist/types/ReferenceType.spec.js +137 -0
- package/dist/types/ReferenceType.spec.js.map +1 -0
- package/dist/types/StringType.d.ts +11 -5
- package/dist/types/StringType.js +18 -7
- package/dist/types/StringType.js.map +1 -1
- package/dist/types/StringType.spec.js +3 -5
- package/dist/types/StringType.spec.js.map +1 -1
- package/dist/types/TypedFunctionType.d.ts +22 -17
- package/dist/types/TypedFunctionType.js +78 -60
- package/dist/types/TypedFunctionType.js.map +1 -1
- package/dist/types/TypedFunctionType.spec.js +105 -20
- package/dist/types/TypedFunctionType.spec.js.map +1 -1
- package/dist/types/UninitializedType.d.ts +8 -6
- package/dist/types/UninitializedType.js +13 -7
- package/dist/types/UninitializedType.js.map +1 -1
- package/dist/types/UnionType.d.ts +20 -0
- package/dist/types/UnionType.js +123 -0
- package/dist/types/UnionType.js.map +1 -0
- package/dist/types/UnionType.spec.d.ts +1 -0
- package/dist/types/UnionType.spec.js +130 -0
- package/dist/types/UnionType.spec.js.map +1 -0
- package/dist/types/VoidType.d.ts +8 -5
- package/dist/types/VoidType.js +14 -7
- package/dist/types/VoidType.js.map +1 -1
- package/dist/types/VoidType.spec.js +3 -3
- package/dist/types/VoidType.spec.js.map +1 -1
- package/dist/types/helper.spec.d.ts +1 -0
- package/dist/types/helper.spec.js +145 -0
- package/dist/types/helper.spec.js.map +1 -0
- package/dist/types/helpers.d.ts +19 -37
- package/dist/types/helpers.js +159 -99
- package/dist/types/helpers.js.map +1 -1
- package/dist/types/index.d.ts +22 -0
- package/dist/types/index.js +39 -0
- package/dist/types/index.js.map +1 -0
- package/dist/util.d.ts +143 -139
- package/dist/util.js +864 -385
- package/dist/util.js.map +1 -1
- package/dist/validators/ClassValidator.d.ts +8 -25
- package/dist/validators/ClassValidator.js +99 -179
- package/dist/validators/ClassValidator.js.map +1 -1
- package/package.json +165 -152
- package/dist/astUtils/AstEditor.js.map +0 -1
- package/dist/astUtils/AstEditor.spec.js.map +0 -1
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +0 -1
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +0 -32
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +0 -1
- package/dist/parser/SGTypes.spec.js +0 -351
- package/dist/parser/SGTypes.spec.js.map +0 -1
- package/dist/types/CustomType.d.ts +0 -12
- package/dist/types/CustomType.js +0 -44
- package/dist/types/CustomType.js.map +0 -1
- package/dist/types/LazyType.d.ts +0 -16
- package/dist/types/LazyType.js +0 -44
- package/dist/types/LazyType.js.map +0 -1
- /package/dist/astUtils/{AstEditor.spec.d.ts → Editor.spec.d.ts} +0 -0
- /package/dist/bscPlugin/{transpile/BrsFilePreTranspileProcessor.spec.d.ts → completions/CompletionsProcessor.spec.d.ts} +0 -0
- /package/dist/{parser/SGTypes.spec.d.ts → bscPlugin/definition/DefinitionProvider.spec.d.ts} +0 -0
package/dist/Scope.d.ts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { CallableContainer, BsDiagnostic, BscFile, CallableContainerMap, FileLink, InheritableStatement, InheritableType, NamedTypeStatement } from './interfaces';
|
|
1
|
+
import { type CallableContainer, type BsDiagnosticWithOrigin, type CallableContainerMap, type FileLink, type Callable, type NamespaceContainer, type ScopeValidationOptions, type BsDiagnostic } from './interfaces';
|
|
3
2
|
import type { Program } from './Program';
|
|
4
|
-
import type { NamespaceStatement,
|
|
5
|
-
import
|
|
6
|
-
import { ParseMode } from './parser/Parser';
|
|
3
|
+
import type { NamespaceStatement, ClassStatement, EnumStatement, InterfaceStatement, EnumMemberStatement, ConstStatement } from './parser/Statement';
|
|
4
|
+
import { type NewExpression } from './parser/Expression';
|
|
7
5
|
import { Cache } from './Cache';
|
|
8
|
-
import type { BrsFile
|
|
6
|
+
import type { BrsFile } from './files/BrsFile';
|
|
9
7
|
import type { DependencyGraph, DependencyChangedEvent } from './DependencyGraph';
|
|
10
8
|
import { SymbolTable } from './SymbolTable';
|
|
9
|
+
import type { BscFile } from './files/BscFile';
|
|
10
|
+
import { type AstNode, type Statement } from './parser/AstNode';
|
|
11
11
|
import type { Token } from './lexer/Token';
|
|
12
|
-
import type { BscType, TypeContext } from './types/BscType';
|
|
13
12
|
/**
|
|
14
13
|
* A class to keep track of all declarations within a given scope (like source scope, component scope)
|
|
15
14
|
*/
|
|
@@ -22,7 +21,7 @@ export declare class Scope {
|
|
|
22
21
|
* Indicates whether this scope needs to be validated.
|
|
23
22
|
* Will be true when first constructed, or anytime one of its dependencies changes
|
|
24
23
|
*/
|
|
25
|
-
isValidated: boolean;
|
|
24
|
+
readonly isValidated: boolean;
|
|
26
25
|
protected cache: Cache<any, any>;
|
|
27
26
|
get dependencyGraphKey(): string;
|
|
28
27
|
/**
|
|
@@ -31,6 +30,14 @@ export declare class Scope {
|
|
|
31
30
|
* "namea", "namea.nameb", "namea.nameb.namec"
|
|
32
31
|
*/
|
|
33
32
|
get namespaceLookup(): Map<string, NamespaceContainer>;
|
|
33
|
+
/**
|
|
34
|
+
* Get a NamespaceContainer by its name, looking for a fully qualified version first, then global version next if not found
|
|
35
|
+
*/
|
|
36
|
+
getNamespace(name: string, containingNamespace?: string): NamespaceContainer;
|
|
37
|
+
/**
|
|
38
|
+
* Get a NamespaceContainer by its name, looking for a fully qualified version first, then global version next if not found
|
|
39
|
+
*/
|
|
40
|
+
getNamespacesWithRoot(rootName: string, containingNamespace?: string): NamespaceContainer[];
|
|
34
41
|
/**
|
|
35
42
|
* Get the class with the specified name.
|
|
36
43
|
* @param className - The class name, including the namespace of the class if possible
|
|
@@ -43,18 +50,6 @@ export declare class Scope {
|
|
|
43
50
|
* @param containingNamespace - The namespace used to resolve relative interface names. (i.e. the namespace around the current statement trying to find a interface)
|
|
44
51
|
*/
|
|
45
52
|
getInterface(ifaceName: string, containingNamespace?: string): InterfaceStatement;
|
|
46
|
-
/**
|
|
47
|
-
* Get either the class or interface, etc. with a given name
|
|
48
|
-
* @param name - The name, including the namespace of the interface if possible
|
|
49
|
-
* @param containingNamespace - The namespace used to resolve relative names. (i.e. the namespace around the current statement trying to find the interface or class)
|
|
50
|
-
*/
|
|
51
|
-
getNamedTypeStatement(name: string, containingNamespace?: string): NamedTypeStatement;
|
|
52
|
-
/**
|
|
53
|
-
* A cache of a map of tokens -> TokenSymbolLookups, which are the result of getSymbolTypeFromToken()
|
|
54
|
-
* Sometimes the lookup of symbols may take a while if there are lazyTypes or multiple tokens in a chain
|
|
55
|
-
* By caching the result of this lookup, subsequent lookups of the same tokens are quicker
|
|
56
|
-
*/
|
|
57
|
-
get symbolCache(): Map<Token, TokenSymbolLookup>;
|
|
58
53
|
/**
|
|
59
54
|
* Get the enum with the specified name.
|
|
60
55
|
* @param enumName - The enum name, including the namespace if possible
|
|
@@ -68,10 +63,10 @@ export declare class Scope {
|
|
|
68
63
|
*/
|
|
69
64
|
getClassFileLink(className: string, containingNamespace?: string): FileLink<ClassStatement>;
|
|
70
65
|
/**
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
66
|
+
* Get an interface and its containing file by the interface name
|
|
67
|
+
* @param ifaceName - The interface name, including the namespace of the interface if possible
|
|
68
|
+
* @param containingNamespace - The namespace used to resolve relative interface names. (i.e. the namespace around the current statement trying to find a interface)
|
|
69
|
+
*/
|
|
75
70
|
getInterfaceFileLink(ifaceName: string, containingNamespace?: string): FileLink<InterfaceStatement>;
|
|
76
71
|
/**
|
|
77
72
|
* Get an Enum and its containing file by the Enum name
|
|
@@ -80,75 +75,52 @@ export declare class Scope {
|
|
|
80
75
|
*/
|
|
81
76
|
getEnumFileLink(enumName: string, containingNamespace?: string): FileLink<EnumStatement>;
|
|
82
77
|
/**
|
|
83
|
-
* Get
|
|
84
|
-
* @param
|
|
85
|
-
* @param containingNamespace - The namespace used to resolve relative names. (i.e. the namespace around the current statement trying to find a
|
|
86
|
-
*/
|
|
87
|
-
getNamedTypeFileLink(name: string, containingNamespace?: string): FileLink<NamedTypeStatement>;
|
|
88
|
-
/**
|
|
89
|
-
* Get a InheritableStatement and its containing file by the name of the interface or class
|
|
90
|
-
* @param name - The name of the interface or class, including the namespace of the class if possible
|
|
91
|
-
* @param containingNamespace - The namespace used to resolve relative names. (i.e. the namespace around the current statement trying to find a class)
|
|
92
|
-
*/
|
|
93
|
-
getInheritableFileLink(name: string, containingNamespace?: string): FileLink<InheritableStatement>;
|
|
94
|
-
/**
|
|
95
|
-
* Gets the parent class of the given class
|
|
96
|
-
* @param klass - The class to get the parent of, if possible
|
|
78
|
+
* Get an Enum and its containing file by the Enum name
|
|
79
|
+
* @param enumMemberName - The Enum name, including the namespace of the enum if possible
|
|
80
|
+
* @param containingNamespace - The namespace used to resolve relative enum names. (i.e. the namespace around the current statement trying to find a enum)
|
|
97
81
|
*/
|
|
98
|
-
|
|
82
|
+
getEnumMemberFileLink(enumMemberName: string, containingNamespace?: string): FileLink<EnumMemberStatement>;
|
|
99
83
|
/**
|
|
100
84
|
* Get a constant and its containing file by the constant name
|
|
101
85
|
* @param constName - The constant name, including the namespace of the constant if possible
|
|
102
86
|
* @param containingNamespace - The namespace used to resolve relative constant names. (i.e. the namespace around the current statement trying to find a constant)
|
|
103
87
|
*/
|
|
104
88
|
getConstFileLink(constName: string, containingNamespace?: string): FileLink<ConstStatement>;
|
|
89
|
+
getAllFileLinks(name: string, containingNamespace?: string): FileLink<Statement>[];
|
|
105
90
|
/**
|
|
106
|
-
*
|
|
107
|
-
*
|
|
91
|
+
* Get a map of all enums by their member name.
|
|
92
|
+
* The keys are lower-case fully-qualified paths to the enum and its member. For example:
|
|
93
|
+
* namespace.enum.value
|
|
108
94
|
*/
|
|
109
|
-
getParentInterface(iface: InterfaceStatement): InterfaceStatement;
|
|
110
|
-
/**
|
|
111
|
-
* Gets the parent of an Interface or Class
|
|
112
|
-
* @param stmt - The class or interface to get the parent of, if possible
|
|
113
|
-
*/
|
|
114
|
-
getParentStatement(stmt: InheritableStatement): InheritableStatement;
|
|
115
95
|
getEnumMemberMap(): Map<string, EnumMemberStatement>;
|
|
116
96
|
/**
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
97
|
+
* Tests if a class exists with the specified name
|
|
98
|
+
* @param className - the all-lower-case namespace-included class name
|
|
99
|
+
* @param namespaceName - The namespace used to resolve relative class names. (i.e. the namespace around the current statement trying to find a class)
|
|
100
|
+
*/
|
|
121
101
|
hasClass(className: string, namespaceName?: string): boolean;
|
|
122
102
|
/**
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
103
|
+
* Tests if an interface exists with the specified name
|
|
104
|
+
* @param ifaceName - the all-lower-case namespace-included interface name
|
|
105
|
+
* @param namespaceName - the current namespace name
|
|
106
|
+
*/
|
|
127
107
|
hasInterface(ifaceName: string, namespaceName?: string): boolean;
|
|
128
108
|
/**
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
* @param namespaceName - the current namespace name
|
|
132
|
-
*/
|
|
133
|
-
hasEnum(enumName: string, namespaceName?: string): boolean;
|
|
134
|
-
/**
|
|
135
|
-
* Tests if a class OR an interface, etc. exists with the specified name
|
|
136
|
-
* @param name - the all-lower-case namespace-included class or interface name
|
|
109
|
+
* Tests if an enum exists with the specified name
|
|
110
|
+
* @param enumName - the all-lower-case namespace-included enum name
|
|
137
111
|
* @param namespaceName - the current namespace name
|
|
138
112
|
*/
|
|
139
|
-
|
|
113
|
+
hasEnum(enumName: string, namespaceName?: string): boolean;
|
|
140
114
|
/**
|
|
141
115
|
* A dictionary of all classes in this scope. This includes namespaced classes always with their full name.
|
|
142
116
|
* The key is stored in lower case
|
|
143
117
|
*/
|
|
144
118
|
getClassMap(): Map<string, FileLink<ClassStatement>>;
|
|
145
|
-
getAncestorTypeListByContext(thisType: BscType, context?: TypeContext): InheritableType[];
|
|
146
119
|
/**
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
120
|
+
* A dictionary of all Interfaces in this scope. This includes namespaced Interfaces always with their full name.
|
|
121
|
+
* The key is stored in lower case
|
|
122
|
+
*/
|
|
150
123
|
getInterfaceMap(): Map<string, FileLink<InterfaceStatement>>;
|
|
151
|
-
getAncestorTypeList(className: string, functionExpression?: FunctionExpression): InheritableType[];
|
|
152
124
|
/**
|
|
153
125
|
* A dictionary of all enums in this scope. This includes namespaced enums always with their full name.
|
|
154
126
|
* The key is stored in lower case
|
|
@@ -162,7 +134,7 @@ export declare class Scope {
|
|
|
162
134
|
/**
|
|
163
135
|
* The list of diagnostics found specifically for this scope. Individual file diagnostics are stored on the files themselves.
|
|
164
136
|
*/
|
|
165
|
-
protected diagnostics:
|
|
137
|
+
protected diagnostics: BsDiagnosticWithOrigin[];
|
|
166
138
|
protected onDependenciesChanged(event: DependencyChangedEvent): void;
|
|
167
139
|
/**
|
|
168
140
|
* Clean up all event handles
|
|
@@ -178,7 +150,7 @@ export declare class Scope {
|
|
|
178
150
|
* XmlScope overrides this to return the parent xml scope if available.
|
|
179
151
|
* For globalScope this will return null.
|
|
180
152
|
*/
|
|
181
|
-
getParentScope(): Scope;
|
|
153
|
+
getParentScope(): Scope | null;
|
|
182
154
|
private dependencyGraph;
|
|
183
155
|
/**
|
|
184
156
|
* An unsubscribe function for the dependencyGraph subscription
|
|
@@ -186,11 +158,11 @@ export declare class Scope {
|
|
|
186
158
|
private unsubscribeFromDependencyGraph;
|
|
187
159
|
attachDependencyGraph(dependencyGraph: DependencyGraph): void;
|
|
188
160
|
/**
|
|
189
|
-
* Get the file with the
|
|
190
|
-
* @param filePath can be a srcPath
|
|
161
|
+
* Get the file from this scope with the given path.
|
|
162
|
+
* @param filePath can be a srcPath or destPath
|
|
191
163
|
* @param normalizePath should this function repair and standardize the path? Passing false should have a performance boost if you can guarantee your path is already sanitized
|
|
192
164
|
*/
|
|
193
|
-
getFile(
|
|
165
|
+
getFile<TFile extends BscFile>(filePath: string, normalizePath?: boolean): TFile;
|
|
194
166
|
/**
|
|
195
167
|
* Get the list of files referenced by this scope that are actually loaded in the program.
|
|
196
168
|
* Excludes files from ancestor scopes
|
|
@@ -202,11 +174,10 @@ export declare class Scope {
|
|
|
202
174
|
*/
|
|
203
175
|
getAllFiles(): BscFile[];
|
|
204
176
|
/**
|
|
205
|
-
* Get the list of errors for this scope. It's calculated on the fly, so
|
|
206
|
-
* call this sparingly.
|
|
177
|
+
* Get the list of errors for this scope. It's calculated on the fly, so call this sparingly.
|
|
207
178
|
*/
|
|
208
179
|
getDiagnostics(): BsDiagnostic[];
|
|
209
|
-
addDiagnostics(diagnostics:
|
|
180
|
+
addDiagnostics(diagnostics: BsDiagnosticWithOrigin[]): void;
|
|
210
181
|
/**
|
|
211
182
|
* Get the list of callables available in this scope (either declared in this scope or in a parent scope)
|
|
212
183
|
*/
|
|
@@ -214,15 +185,9 @@ export declare class Scope {
|
|
|
214
185
|
/**
|
|
215
186
|
* Get the callable with the specified name.
|
|
216
187
|
* If there are overridden callables with the same name, the closest callable to this scope is returned
|
|
217
|
-
* @param name
|
|
218
188
|
*/
|
|
219
|
-
getCallableByName(name: string):
|
|
220
|
-
|
|
221
|
-
* Get the global callable with the specified name.
|
|
222
|
-
* If there are overridden callables with the same name, the closest callable to this scope is returned
|
|
223
|
-
* @param name
|
|
224
|
-
*/
|
|
225
|
-
getGlobalCallableByName(name: string): import("./interfaces").Callable;
|
|
189
|
+
getCallableByName(name: string): Callable;
|
|
190
|
+
getCallableMap(): Map<string, Callable>;
|
|
226
191
|
/**
|
|
227
192
|
* Iterate over Brs files not shadowed by typedefs
|
|
228
193
|
*/
|
|
@@ -239,26 +204,46 @@ export declare class Scope {
|
|
|
239
204
|
/**
|
|
240
205
|
* Builds a tree of namespace objects
|
|
241
206
|
*/
|
|
242
|
-
buildNamespaceLookup(
|
|
207
|
+
buildNamespaceLookup(options?: {
|
|
208
|
+
okToCache?: boolean;
|
|
209
|
+
}): Map<string, NamespaceContainer>;
|
|
243
210
|
getAllNamespaceStatements(): NamespaceStatement[];
|
|
244
211
|
protected logDebug(...args: any[]): void;
|
|
245
212
|
private _debugLogComponentName;
|
|
246
|
-
validate(): void;
|
|
247
|
-
getCallableContainerMap(): CallableContainerMap;
|
|
213
|
+
validate(validationOptions?: ScopeValidationOptions): void;
|
|
248
214
|
protected _validate(callableContainerMap: CallableContainerMap): void;
|
|
215
|
+
clearAstSegmentDiagnostics(astSegment: AstNode): void;
|
|
216
|
+
clearAstSegmentDiagnosticsByFile(file: BscFile): void;
|
|
217
|
+
clearScopeLevelDiagnostics(): void;
|
|
249
218
|
/**
|
|
250
219
|
* Mark this scope as invalid, which means its `validate()` function needs to be called again before use.
|
|
251
220
|
*/
|
|
252
221
|
invalidate(): void;
|
|
253
|
-
get symbolTable():
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
222
|
+
get symbolTable(): SymbolTable;
|
|
223
|
+
/**
|
|
224
|
+
* A list of functions that will be called whenever `unlinkSymbolTable` is called
|
|
225
|
+
*/
|
|
226
|
+
private linkSymbolTableDisposables;
|
|
227
|
+
private symbolsAddedDuringLinking;
|
|
228
|
+
/**
|
|
229
|
+
* Builds the current symbol table for the scope, by merging the tables for all the files in this scope.
|
|
230
|
+
* Also links all file symbols tables to this new table
|
|
231
|
+
* This will only rebuilt if the symbol table has not been built before
|
|
232
|
+
*
|
|
233
|
+
* Tree of symbol tables:
|
|
234
|
+
* ```
|
|
235
|
+
* Global Scope Symbol Table
|
|
236
|
+
* - Source Scope Symbol Table :: Aggregate Namespaces Symbol Table (Siblings)
|
|
237
|
+
* - File 1 Symbol Table
|
|
238
|
+
* - File 2 Symbol Table
|
|
239
|
+
* - Component A Scope Symbol Table :: Aggregate Namespaces Symbol Table (Siblings)
|
|
240
|
+
* - File 1 Symbol Table
|
|
241
|
+
* - File 2 Symbol Table
|
|
242
|
+
* - Component B Scope Symbol Table :: Aggregate Namespaces Symbol Table (Siblings)
|
|
243
|
+
* - File 1 Symbol Table
|
|
244
|
+
* - File 2 Symbol Table
|
|
245
|
+
* ```
|
|
246
|
+
*/
|
|
262
247
|
linkSymbolTable(): void;
|
|
263
248
|
unlinkSymbolTable(): void;
|
|
264
249
|
private detectVariableNamespaceCollisions;
|
|
@@ -266,21 +251,16 @@ export declare class Scope {
|
|
|
266
251
|
* Find various function collisions
|
|
267
252
|
*/
|
|
268
253
|
private diagnosticDetectFunctionCollisions;
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
*/
|
|
272
|
-
private diagnosticDetectInvalidFunctionExpressionTypes;
|
|
254
|
+
private detectNameCollisions;
|
|
255
|
+
validateNameCollision(file: BrsFile, node: AstNode, nameIdentifier: Token): void;
|
|
273
256
|
getNewExpressions(): AugmentedNewExpression[];
|
|
274
257
|
private validateClasses;
|
|
275
258
|
/**
|
|
276
|
-
* Detect local variables (
|
|
277
|
-
* @param file
|
|
278
|
-
* @param callableContainerMap
|
|
259
|
+
* Detect local variables (function scope) that have the same name as scope calls
|
|
279
260
|
*/
|
|
280
261
|
private diagnosticDetectShadowedLocalVars;
|
|
281
262
|
/**
|
|
282
263
|
* Create diagnostics for any duplicate function declarations
|
|
283
|
-
* @param callablesByLowerName
|
|
284
264
|
*/
|
|
285
265
|
private diagnosticFindDuplicateFunctionDeclarations;
|
|
286
266
|
/**
|
|
@@ -293,50 +273,19 @@ export declare class Scope {
|
|
|
293
273
|
private diagnosticValidateScriptImportPaths;
|
|
294
274
|
/**
|
|
295
275
|
* Find the file with the specified relative path
|
|
296
|
-
* @param relativePath
|
|
297
276
|
*/
|
|
298
277
|
protected getFileByRelativePath(relativePath: string): BscFile;
|
|
299
278
|
/**
|
|
300
279
|
* Determine if this file is included in this scope (excluding parent scopes)
|
|
301
|
-
* @param file
|
|
302
280
|
*/
|
|
303
281
|
hasFile(file: BscFile): boolean;
|
|
304
|
-
/**
|
|
305
|
-
* Get all callables as completionItems
|
|
306
|
-
*/
|
|
307
|
-
getCallablesAsCompletions(parseMode: ParseMode): CompletionItem[];
|
|
308
|
-
createCompletionFromCallable(callableContainer: CallableContainer): CompletionItem;
|
|
309
|
-
createCompletionFromFunctionStatement(statement: FunctionStatement): CompletionItem;
|
|
310
|
-
/**
|
|
311
|
-
* Get the definition (where was this thing first defined) of the symbol under the position
|
|
312
|
-
*/
|
|
313
|
-
getDefinition(file: BscFile, position: Position): Location[];
|
|
314
|
-
/**
|
|
315
|
-
* Scan all files for property names, and return them as completions
|
|
316
|
-
*/
|
|
317
|
-
getPropertyNameCompletions(): CompletionItem[];
|
|
318
|
-
getAllClassMemberCompletions(): Map<string, CompletionItem>;
|
|
319
282
|
/**
|
|
320
283
|
* @param className - The name of the class (including namespace if possible)
|
|
321
284
|
* @param callsiteNamespace - the name of the namespace where the call site resides (this is NOT the known namespace of the class).
|
|
322
|
-
* This is used to help resolve non-namespaced class names that reside in the same
|
|
285
|
+
* This is used to help resolve non-namespaced class names that reside in the same namespac as the call site.
|
|
323
286
|
*/
|
|
324
287
|
getClassHierarchy(className: string, callsiteNamespace?: string): FileLink<ClassStatement>[];
|
|
325
288
|
}
|
|
326
|
-
export interface NamespaceContainer {
|
|
327
|
-
file: BscFile;
|
|
328
|
-
fullName: string;
|
|
329
|
-
nameRange: Range;
|
|
330
|
-
lastPartName: string;
|
|
331
|
-
statements: Statement[];
|
|
332
|
-
classStatements: Record<string, ClassStatement>;
|
|
333
|
-
interfaceStatements: Record<string, InterfaceStatement>;
|
|
334
|
-
functionStatements: Record<string, FunctionStatement>;
|
|
335
|
-
enumStatements: Map<string, EnumStatement>;
|
|
336
|
-
constStatements: Map<string, ConstStatement>;
|
|
337
|
-
namespaces: Map<string, NamespaceContainer>;
|
|
338
|
-
symbolTable: SymbolTable;
|
|
339
|
-
}
|
|
340
289
|
interface AugmentedNewExpression extends NewExpression {
|
|
341
290
|
file: BscFile;
|
|
342
291
|
}
|