brighterscript 0.66.0-alpha.9 → 0.67.0
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 +116 -73
- package/README.md +14 -418
- package/dist/BsConfig.d.ts +25 -2
- package/dist/Cache.js +3 -3
- package/dist/Cache.js.map +1 -1
- package/dist/CodeActionUtil.d.ts +3 -3
- package/dist/CodeActionUtil.js.map +1 -1
- package/dist/CommentFlagProcessor.d.ts +3 -4
- package/dist/CommentFlagProcessor.js +4 -3
- package/dist/CommentFlagProcessor.js.map +1 -1
- package/dist/DependencyGraph.js +8 -8
- package/dist/DependencyGraph.js.map +1 -1
- package/dist/DiagnosticFilterer.d.ts +8 -4
- package/dist/DiagnosticFilterer.js +71 -38
- package/dist/DiagnosticFilterer.js.map +1 -1
- package/dist/DiagnosticMessages.d.ts +15 -36
- package/dist/DiagnosticMessages.js +15 -61
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/DiagnosticSeverityAdjuster.js +3 -0
- package/dist/DiagnosticSeverityAdjuster.js.map +1 -1
- package/dist/FunctionScope.d.ts +2 -3
- package/dist/FunctionScope.js +0 -3
- package/dist/FunctionScope.js.map +1 -1
- package/dist/LanguageServer.d.ts +1 -2
- package/dist/LanguageServer.js +29 -35
- package/dist/LanguageServer.js.map +1 -1
- package/dist/Logger.d.ts +5 -9
- package/dist/Logger.js +18 -22
- package/dist/Logger.js.map +1 -1
- package/dist/PluginInterface.d.ts +13 -15
- package/dist/PluginInterface.js +16 -70
- package/dist/PluginInterface.js.map +1 -1
- package/dist/Program.d.ts +105 -138
- package/dist/Program.js +479 -702
- package/dist/Program.js.map +1 -1
- package/dist/ProgramBuilder.d.ts +8 -19
- package/dist/ProgramBuilder.js +82 -87
- package/dist/ProgramBuilder.js.map +1 -1
- package/dist/Scope.d.ts +56 -46
- package/dist/Scope.js +281 -217
- 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 +12 -68
- package/dist/SymbolTable.js +28 -213
- package/dist/SymbolTable.js.map +1 -1
- package/dist/XmlScope.d.ts +5 -7
- package/dist/XmlScope.js +36 -76
- package/dist/XmlScope.js.map +1 -1
- package/dist/astUtils/{Editor.d.ts → AstEditor.d.ts} +1 -6
- package/dist/astUtils/{Editor.js → AstEditor.js} +3 -9
- package/dist/astUtils/AstEditor.js.map +1 -0
- package/dist/astUtils/{Editor.spec.js → AstEditor.spec.js} +6 -10
- package/dist/astUtils/AstEditor.spec.js.map +1 -0
- package/dist/astUtils/creators.d.ts +8 -19
- package/dist/astUtils/creators.js +22 -54
- package/dist/astUtils/creators.js.map +1 -1
- package/dist/astUtils/creators.spec.js +0 -10
- package/dist/astUtils/creators.spec.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +45 -81
- package/dist/astUtils/reflection.js +157 -220
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/reflection.spec.js +19 -96
- package/dist/astUtils/reflection.spec.js.map +1 -1
- package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +14 -18
- package/dist/astUtils/visitors.js +9 -22
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/astUtils/visitors.spec.js +9 -62
- package/dist/astUtils/visitors.spec.js.map +1 -1
- package/dist/astUtils/xml.d.ts +9 -9
- package/dist/astUtils/xml.js +6 -6
- package/dist/astUtils/xml.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.d.ts +8 -11
- package/dist/bscPlugin/BscPlugin.js +21 -29
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- package/dist/bscPlugin/CallExpressionInfo.d.ts +6 -5
- package/dist/bscPlugin/CallExpressionInfo.js +2 -2
- package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +11 -11
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +4 -4
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +1 -49
- package/dist/bscPlugin/completions/CompletionsProcessor.js +23 -424
- package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
- package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
- package/dist/bscPlugin/definition/DefinitionProvider.js +200 -0
- package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
- package/dist/bscPlugin/definition/DefinitionProvider.spec.js +87 -0
- package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
- package/dist/bscPlugin/hover/HoverProcessor.d.ts +3 -7
- package/dist/bscPlugin/hover/HoverProcessor.js +88 -128
- package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
- package/dist/bscPlugin/hover/HoverProcessor.spec.js +24 -336
- package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
- package/dist/bscPlugin/references/ReferencesProvider.js +56 -0
- package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
- package/dist/bscPlugin/references/ReferencesProvider.spec.js +51 -0
- package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +1 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +0 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +5 -49
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +0 -22
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js +290 -0
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js.map +1 -0
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js +245 -0
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js.map +1 -0
- package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
- package/dist/bscPlugin/symbols/symbolUtils.js +140 -0
- package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
- package/dist/bscPlugin/transpile/{BrsFileTranspileProcessor.d.ts → BrsFilePreTranspileProcessor.d.ts} +2 -4
- package/dist/bscPlugin/transpile/{BrsFileTranspileProcessor.js → BrsFilePreTranspileProcessor.js} +15 -36
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -0
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +46 -0
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +1 -0
- package/dist/bscPlugin/validation/BrsFileValidator.d.ts +1 -0
- package/dist/bscPlugin/validation/BrsFileValidator.js +30 -41
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js +2 -2
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
- package/dist/bscPlugin/validation/ProgramValidator.d.ts +3 -3
- package/dist/bscPlugin/validation/ProgramValidator.js +6 -6
- package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +6 -28
- package/dist/bscPlugin/validation/ScopeValidator.js +166 -387
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/bscPlugin/validation/XmlFileValidator.js +9 -9
- package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -1
- package/dist/diagnosticUtils.d.ts +2 -3
- package/dist/diagnosticUtils.js +5 -5
- package/dist/diagnosticUtils.js.map +1 -1
- package/dist/examples/plugins/removePrint.js +1 -1
- package/dist/examples/plugins/removePrint.js.map +1 -1
- package/dist/files/BrsFile.Class.spec.js +143 -114
- package/dist/files/BrsFile.Class.spec.js.map +1 -1
- package/dist/files/BrsFile.d.ts +61 -83
- package/dist/files/BrsFile.js +552 -607
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +1365 -1201
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/files/XmlFile.d.ts +28 -56
- package/dist/files/XmlFile.js +103 -89
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/files/XmlFile.spec.js +179 -122
- package/dist/files/XmlFile.spec.js.map +1 -1
- package/dist/files/tests/imports.spec.js +19 -29
- package/dist/files/tests/imports.spec.js.map +1 -1
- package/dist/files/tests/optionalChaning.spec.js +14 -14
- package/dist/files/tests/optionalChaning.spec.js.map +1 -1
- package/dist/globalCallables.js +83 -88
- package/dist/globalCallables.js.map +1 -1
- package/dist/index.d.ts +1 -9
- package/dist/index.js +1 -9
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +173 -423
- package/dist/interfaces.js +0 -24
- package/dist/interfaces.js.map +1 -1
- package/dist/lexer/Lexer.d.ts +9 -15
- package/dist/lexer/Lexer.js +35 -46
- package/dist/lexer/Lexer.js.map +1 -1
- package/dist/lexer/Lexer.spec.js +48 -40
- package/dist/lexer/Lexer.spec.js.map +1 -1
- package/dist/lexer/Token.d.ts +1 -5
- package/dist/lexer/Token.js +1 -1
- package/dist/lexer/Token.js.map +1 -1
- package/dist/lexer/TokenKind.d.ts +0 -6
- package/dist/lexer/TokenKind.js +2 -14
- package/dist/lexer/TokenKind.js.map +1 -1
- package/dist/logging.d.ts +9 -0
- package/dist/logging.js +16 -0
- package/dist/logging.js.map +1 -0
- package/dist/parser/AstNode.d.ts +6 -90
- package/dist/parser/AstNode.js +5 -96
- package/dist/parser/AstNode.js.map +1 -1
- package/dist/parser/AstNode.spec.js.map +1 -1
- package/dist/parser/BrsTranspileState.d.ts +3 -4
- package/dist/parser/BrsTranspileState.js +2 -3
- package/dist/parser/BrsTranspileState.js.map +1 -1
- package/dist/parser/Expression.d.ts +114 -137
- package/dist/parser/Expression.js +244 -373
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.Class.spec.js +19 -46
- package/dist/parser/Parser.Class.spec.js.map +1 -1
- package/dist/parser/Parser.d.ts +18 -14
- package/dist/parser/Parser.js +196 -175
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.d.ts +0 -2
- package/dist/parser/Parser.spec.js +10 -674
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/SGParser.d.ts +6 -44
- package/dist/parser/SGParser.js +198 -194
- package/dist/parser/SGParser.js.map +1 -1
- package/dist/parser/SGParser.spec.js +11 -14
- package/dist/parser/SGParser.spec.js.map +1 -1
- package/dist/parser/SGTypes.d.ts +52 -280
- package/dist/parser/SGTypes.js +185 -562
- package/dist/parser/SGTypes.js.map +1 -1
- package/dist/parser/Statement.d.ts +140 -172
- package/dist/parser/Statement.js +201 -337
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/Statement.spec.js.map +1 -1
- package/dist/parser/TranspileState.d.ts +3 -2
- package/dist/parser/TranspileState.js +8 -10
- package/dist/parser/TranspileState.js.map +1 -1
- package/dist/parser/tests/Parser.spec.js +3 -5
- package/dist/parser/tests/Parser.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/For.spec.js +8 -16
- package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/ForEach.spec.js +6 -12
- package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/While.spec.js +4 -8
- package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
- package/dist/parser/tests/expression/Call.spec.js +4 -4
- package/dist/parser/tests/expression/Call.spec.js.map +1 -1
- package/dist/parser/tests/expression/Indexing.spec.js +25 -0
- package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +73 -29
- package/dist/parser/tests/expression/NullCoalescenceExpression.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/SourceLiteralExpression.spec.js +24 -24
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js +47 -35
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TernaryExpression.spec.js +83 -36
- package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/UnaryExpression.spec.js +2 -2
- package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -1
- package/dist/parser/tests/statement/ConstStatement.spec.js +26 -27
- package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Continue.spec.js +2 -2
- package/dist/parser/tests/statement/Continue.spec.js.map +1 -1
- package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
- package/dist/parser/tests/statement/Enum.spec.js +393 -90
- package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
- package/dist/parser/tests/statement/For.spec.js +6 -6
- package/dist/parser/tests/statement/For.spec.js.map +1 -1
- package/dist/parser/tests/statement/ForEach.spec.js +4 -4
- package/dist/parser/tests/statement/ForEach.spec.js.map +1 -1
- package/dist/parser/tests/statement/Function.spec.js +1 -1
- package/dist/parser/tests/statement/Function.spec.js.map +1 -1
- package/dist/parser/tests/statement/InterfaceStatement.spec.js +18 -18
- package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
- package/dist/parser/tests/statement/PrintStatement.spec.js +13 -16
- package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/ReturnStatement.spec.js +3 -5
- package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Set.spec.js +13 -26
- package/dist/parser/tests/statement/Set.spec.js.map +1 -1
- package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
- package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
- package/dist/preprocessor/Chunk.js +1 -2
- package/dist/preprocessor/Chunk.js.map +1 -1
- package/dist/preprocessor/Preprocessor.d.ts +3 -4
- package/dist/preprocessor/Preprocessor.js +3 -3
- package/dist/preprocessor/Preprocessor.js.map +1 -1
- package/dist/preprocessor/PreprocessorParser.js +8 -1
- package/dist/preprocessor/PreprocessorParser.js.map +1 -1
- package/dist/roku-types/data.json +293 -243
- package/dist/roku-types/index.d.ts +38 -17
- package/dist/types/ArrayType.d.ts +4 -9
- package/dist/types/ArrayType.js +24 -72
- package/dist/types/ArrayType.js.map +1 -1
- package/dist/types/ArrayType.spec.js +10 -39
- package/dist/types/ArrayType.spec.js.map +1 -1
- package/dist/types/BooleanType.d.ts +4 -8
- package/dist/types/BooleanType.js +8 -19
- package/dist/types/BooleanType.js.map +1 -1
- package/dist/types/BooleanType.spec.js +3 -9
- package/dist/types/BooleanType.spec.js.map +1 -1
- package/dist/types/BscType.d.ts +2 -29
- package/dist/types/BscType.js +0 -113
- package/dist/types/BscType.js.map +1 -1
- package/dist/types/CustomType.d.ts +9 -0
- package/dist/types/CustomType.js +32 -0
- package/dist/types/CustomType.js.map +1 -0
- package/dist/types/DoubleType.d.ts +4 -8
- package/dist/types/DoubleType.js +20 -23
- package/dist/types/DoubleType.js.map +1 -1
- package/dist/types/DoubleType.spec.js +3 -11
- package/dist/types/DoubleType.spec.js.map +1 -1
- package/dist/types/DynamicType.d.ts +3 -9
- package/dist/types/DynamicType.js +2 -18
- package/dist/types/DynamicType.js.map +1 -1
- package/dist/types/DynamicType.spec.js +4 -15
- package/dist/types/DynamicType.spec.js.map +1 -1
- package/dist/types/FloatType.d.ts +4 -8
- package/dist/types/FloatType.js +20 -23
- package/dist/types/FloatType.js.map +1 -1
- package/dist/types/FloatType.spec.js +3 -3
- package/dist/types/FloatType.spec.js.map +1 -1
- package/dist/types/FunctionType.d.ts +20 -10
- package/dist/types/FunctionType.js +52 -27
- package/dist/types/FunctionType.js.map +1 -1
- package/dist/types/FunctionType.spec.js +23 -0
- package/dist/types/FunctionType.spec.js.map +1 -0
- package/dist/types/IntegerType.d.ts +4 -8
- package/dist/types/IntegerType.js +20 -23
- package/dist/types/IntegerType.js.map +1 -1
- package/dist/types/IntegerType.spec.js +3 -7
- package/dist/types/IntegerType.spec.js.map +1 -1
- package/dist/types/InterfaceType.d.ts +10 -12
- package/dist/types/InterfaceType.js +48 -23
- package/dist/types/InterfaceType.js.map +1 -1
- package/dist/types/InterfaceType.spec.js +45 -82
- package/dist/types/InterfaceType.spec.js.map +1 -1
- package/dist/types/InvalidType.d.ts +4 -7
- package/dist/types/InvalidType.js +8 -18
- package/dist/types/InvalidType.js.map +1 -1
- package/dist/types/InvalidType.spec.js +3 -7
- package/dist/types/InvalidType.spec.js.map +1 -1
- package/dist/types/LongIntegerType.d.ts +4 -8
- package/dist/types/LongIntegerType.js +20 -23
- package/dist/types/LongIntegerType.js.map +1 -1
- package/dist/types/LongIntegerType.spec.js +3 -9
- package/dist/types/LongIntegerType.spec.js.map +1 -1
- package/dist/types/ObjectType.d.ts +4 -8
- package/dist/types/ObjectType.js +7 -21
- package/dist/types/ObjectType.js.map +1 -1
- package/dist/types/ObjectType.spec.js +2 -2
- package/dist/types/ObjectType.spec.js.map +1 -1
- package/dist/types/StringType.d.ts +4 -11
- package/dist/types/StringType.js +8 -23
- package/dist/types/StringType.js.map +1 -1
- package/dist/types/StringType.spec.js +2 -2
- package/dist/types/StringType.spec.js.map +1 -1
- package/dist/types/UninitializedType.d.ts +3 -7
- package/dist/types/UninitializedType.js +3 -14
- package/dist/types/UninitializedType.js.map +1 -1
- package/dist/types/VoidType.d.ts +4 -8
- package/dist/types/VoidType.js +8 -18
- package/dist/types/VoidType.js.map +1 -1
- package/dist/types/VoidType.spec.js +2 -2
- package/dist/types/VoidType.spec.js.map +1 -1
- package/dist/util.d.ts +43 -104
- package/dist/util.js +243 -640
- package/dist/util.js.map +1 -1
- package/dist/validators/ClassValidator.d.ts +6 -1
- package/dist/validators/ClassValidator.js +61 -20
- package/dist/validators/ClassValidator.js.map +1 -1
- package/package.json +13 -11
- package/dist/ActionPipeline.d.ts +0 -10
- package/dist/ActionPipeline.js +0 -40
- package/dist/ActionPipeline.js.map +0 -1
- package/dist/AstValidationSegmenter.d.ts +0 -25
- package/dist/AstValidationSegmenter.js +0 -150
- package/dist/AstValidationSegmenter.js.map +0 -1
- package/dist/CacheVerifier.d.ts +0 -7
- package/dist/CacheVerifier.js +0 -20
- package/dist/CacheVerifier.js.map +0 -1
- package/dist/astUtils/Editor.js.map +0 -1
- package/dist/astUtils/Editor.spec.js.map +0 -1
- package/dist/bscPlugin/FileWriter.d.ts +0 -6
- package/dist/bscPlugin/FileWriter.js +0 -24
- package/dist/bscPlugin/FileWriter.js.map +0 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +0 -1658
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +0 -1
- package/dist/bscPlugin/fileProviders/FileProvider.d.ts +0 -9
- package/dist/bscPlugin/fileProviders/FileProvider.js +0 -51
- package/dist/bscPlugin/fileProviders/FileProvider.js.map +0 -1
- package/dist/bscPlugin/serialize/BslibInjector.spec.js +0 -19
- package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +0 -1
- package/dist/bscPlugin/serialize/BslibManager.d.ts +0 -9
- package/dist/bscPlugin/serialize/BslibManager.js +0 -40
- package/dist/bscPlugin/serialize/BslibManager.js.map +0 -1
- package/dist/bscPlugin/serialize/FileSerializer.d.ts +0 -9
- package/dist/bscPlugin/serialize/FileSerializer.js +0 -72
- package/dist/bscPlugin/serialize/FileSerializer.js.map +0 -1
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +0 -1
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +0 -41
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +0 -1
- package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +0 -11
- package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +0 -53
- package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +0 -1
- package/dist/bscPlugin/validation/ScopeValidator.spec.js +0 -2004
- package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +0 -1
- package/dist/files/AssetFile.d.ts +0 -26
- package/dist/files/AssetFile.js +0 -26
- package/dist/files/AssetFile.js.map +0 -1
- package/dist/files/Factory.d.ts +0 -25
- package/dist/files/Factory.js +0 -22
- package/dist/files/Factory.js.map +0 -1
- package/dist/files/File.d.ts +0 -106
- package/dist/files/File.js +0 -16
- package/dist/files/File.js.map +0 -1
- package/dist/files/LazyFileData.d.ts +0 -20
- package/dist/files/LazyFileData.js +0 -54
- package/dist/files/LazyFileData.js.map +0 -1
- package/dist/files/LazyFileData.spec.js +0 -27
- package/dist/files/LazyFileData.spec.js.map +0 -1
- package/dist/parser/tests/expression/TypeExpression.spec.js +0 -127
- package/dist/parser/tests/expression/TypeExpression.spec.js.map +0 -1
- package/dist/types/AssociativeArrayType.d.ts +0 -11
- package/dist/types/AssociativeArrayType.js +0 -52
- package/dist/types/AssociativeArrayType.js.map +0 -1
- package/dist/types/BaseFunctionType.d.ts +0 -9
- package/dist/types/BaseFunctionType.js +0 -25
- package/dist/types/BaseFunctionType.js.map +0 -1
- package/dist/types/BscTypeKind.d.ts +0 -25
- package/dist/types/BscTypeKind.js +0 -30
- package/dist/types/BscTypeKind.js.map +0 -1
- package/dist/types/BuiltInInterfaceAdder.d.ts +0 -23
- package/dist/types/BuiltInInterfaceAdder.js +0 -160
- package/dist/types/BuiltInInterfaceAdder.js.map +0 -1
- package/dist/types/BuiltInInterfaceAdder.spec.d.ts +0 -1
- package/dist/types/BuiltInInterfaceAdder.spec.js +0 -116
- package/dist/types/BuiltInInterfaceAdder.spec.js.map +0 -1
- package/dist/types/ClassType.d.ts +0 -17
- package/dist/types/ClassType.js +0 -58
- package/dist/types/ClassType.js.map +0 -1
- package/dist/types/ClassType.spec.d.ts +0 -1
- package/dist/types/ClassType.spec.js +0 -77
- package/dist/types/ClassType.spec.js.map +0 -1
- package/dist/types/ComponentType.d.ts +0 -26
- package/dist/types/ComponentType.js +0 -83
- package/dist/types/ComponentType.js.map +0 -1
- package/dist/types/EnumType.d.ts +0 -40
- package/dist/types/EnumType.js +0 -81
- package/dist/types/EnumType.js.map +0 -1
- package/dist/types/EnumType.spec.d.ts +0 -1
- package/dist/types/EnumType.spec.js +0 -33
- package/dist/types/EnumType.spec.js.map +0 -1
- package/dist/types/InheritableType.d.ts +0 -28
- package/dist/types/InheritableType.js +0 -152
- package/dist/types/InheritableType.js.map +0 -1
- package/dist/types/NamespaceType.d.ts +0 -12
- package/dist/types/NamespaceType.js +0 -28
- package/dist/types/NamespaceType.js.map +0 -1
- package/dist/types/ReferenceType.d.ts +0 -63
- package/dist/types/ReferenceType.js +0 -423
- package/dist/types/ReferenceType.js.map +0 -1
- package/dist/types/ReferenceType.spec.d.ts +0 -1
- package/dist/types/ReferenceType.spec.js +0 -137
- package/dist/types/ReferenceType.spec.js.map +0 -1
- package/dist/types/TypedFunctionType.d.ts +0 -33
- package/dist/types/TypedFunctionType.js +0 -106
- package/dist/types/TypedFunctionType.js.map +0 -1
- package/dist/types/TypedFunctionType.spec.d.ts +0 -1
- package/dist/types/TypedFunctionType.spec.js +0 -122
- package/dist/types/TypedFunctionType.spec.js.map +0 -1
- package/dist/types/UnionType.d.ts +0 -20
- package/dist/types/UnionType.js +0 -123
- package/dist/types/UnionType.js.map +0 -1
- package/dist/types/UnionType.spec.d.ts +0 -1
- package/dist/types/UnionType.spec.js +0 -130
- package/dist/types/UnionType.spec.js.map +0 -1
- package/dist/types/helper.spec.d.ts +0 -1
- package/dist/types/helper.spec.js +0 -145
- package/dist/types/helper.spec.js.map +0 -1
- package/dist/types/helpers.d.ts +0 -24
- package/dist/types/helpers.js +0 -178
- package/dist/types/helpers.js.map +0 -1
- package/dist/types/index.d.ts +0 -22
- package/dist/types/index.js +0 -39
- package/dist/types/index.js.map +0 -1
- /package/dist/astUtils/{Editor.spec.d.ts → AstEditor.spec.d.ts} +0 -0
- /package/dist/bscPlugin/{completions/CompletionsProcessor.spec.d.ts → definition/DefinitionProvider.spec.d.ts} +0 -0
- /package/dist/bscPlugin/{serialize/BslibInjector.spec.d.ts → references/ReferencesProvider.spec.d.ts} +0 -0
- /package/dist/bscPlugin/{transpile/BrsFileTranspileProcessor.spec.d.ts → symbols/DocumentSymbolProcessor.spec.d.ts} +0 -0
- /package/dist/bscPlugin/{validation/ScopeValidator.spec.d.ts → symbols/WorkspaceSymbolProcessor.spec.d.ts} +0 -0
- /package/dist/{files/LazyFileData.spec.d.ts → bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.d.ts} +0 -0
- /package/dist/{parser/tests/expression/TypeExpression.spec.d.ts → types/FunctionType.spec.d.ts} +0 -0
|
@@ -7,11 +7,12 @@ const vscode_languageserver_1 = require("vscode-languageserver");
|
|
|
7
7
|
const fsExtra = require("fs-extra");
|
|
8
8
|
const DiagnosticMessages_1 = require("../DiagnosticMessages");
|
|
9
9
|
const Program_1 = require("../Program");
|
|
10
|
+
const BrsFile_1 = require("./BrsFile");
|
|
10
11
|
const XmlFile_1 = require("./XmlFile");
|
|
11
12
|
const util_1 = require("../util");
|
|
12
13
|
const testHelpers_spec_1 = require("../testHelpers.spec");
|
|
13
14
|
const ProgramBuilder_1 = require("../ProgramBuilder");
|
|
14
|
-
const
|
|
15
|
+
const logging_1 = require("../logging");
|
|
15
16
|
const reflection_1 = require("../astUtils/reflection");
|
|
16
17
|
const testHelpers_spec_2 = require("../testHelpers.spec");
|
|
17
18
|
describe('XmlFile', () => {
|
|
@@ -23,12 +24,8 @@ describe('XmlFile', () => {
|
|
|
23
24
|
fsExtra.emptyDirSync(testHelpers_spec_2.tempDir);
|
|
24
25
|
fsExtra.ensureDirSync(testHelpers_spec_2.rootDir);
|
|
25
26
|
fsExtra.ensureDirSync(testHelpers_spec_2.stagingDir);
|
|
26
|
-
program = new Program_1.Program({ rootDir: testHelpers_spec_2.rootDir
|
|
27
|
-
file = new XmlFile_1.XmlFile({
|
|
28
|
-
srcPath: `${testHelpers_spec_2.rootDir}/components/MainComponent.xml`,
|
|
29
|
-
destPath: 'components/MainComponent.xml',
|
|
30
|
-
program: program
|
|
31
|
-
});
|
|
27
|
+
program = new Program_1.Program({ rootDir: testHelpers_spec_2.rootDir });
|
|
28
|
+
file = new XmlFile_1.XmlFile(`${testHelpers_spec_2.rootDir}/components/MainComponent.xml`, 'components/MainComponent.xml', program);
|
|
32
29
|
});
|
|
33
30
|
afterEach(() => {
|
|
34
31
|
sinon.restore();
|
|
@@ -39,11 +36,10 @@ describe('XmlFile', () => {
|
|
|
39
36
|
const expected = 'OtherName';
|
|
40
37
|
program.plugins.add({
|
|
41
38
|
name: 'allows modifying the parsed XML model',
|
|
42
|
-
|
|
39
|
+
afterFileParse: (file) => {
|
|
43
40
|
var _a, _b, _c;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
file.parser.ast.rootElement.attributes[0].value = expected;
|
|
41
|
+
if ((0, reflection_1.isXmlFile)(file) && ((_c = (_b = (_a = file.parser.ast.root) === null || _a === void 0 ? void 0 : _a.attributes) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.value)) {
|
|
42
|
+
file.parser.ast.root.attributes[0].value.text = expected;
|
|
47
43
|
}
|
|
48
44
|
}
|
|
49
45
|
});
|
|
@@ -55,17 +51,17 @@ describe('XmlFile', () => {
|
|
|
55
51
|
(0, chai_config_spec_1.expect)(file.componentName.text).to.equal(expected);
|
|
56
52
|
});
|
|
57
53
|
it('only removes specified attribute when calling setAttribute', () => {
|
|
58
|
-
|
|
54
|
+
file = new XmlFile_1.XmlFile('abs', 'rel', program);
|
|
59
55
|
program.plugins.add({
|
|
60
56
|
name: 'allows modifying the parsed XML model',
|
|
61
57
|
afterFileParse: () => {
|
|
62
|
-
let child = file.parser.ast.
|
|
58
|
+
let child = file.parser.ast.component.children.children[0];
|
|
63
59
|
(0, chai_config_spec_1.expect)(child.attributes).to.have.lengthOf(4);
|
|
64
|
-
child.
|
|
65
|
-
(0, chai_config_spec_1.expect)(child.getAttribute('id').value).to.equal('one');
|
|
60
|
+
child.setAttribute('text', undefined);
|
|
61
|
+
(0, chai_config_spec_1.expect)(child.getAttribute('id').value.text).to.equal('one');
|
|
66
62
|
(0, chai_config_spec_1.expect)(child.attributes).to.have.lengthOf(3);
|
|
67
|
-
child.
|
|
68
|
-
(0, chai_config_spec_1.expect)(child.getAttribute('id').value).to.equal('one');
|
|
63
|
+
child.setAttribute('text3', undefined);
|
|
64
|
+
(0, chai_config_spec_1.expect)(child.getAttribute('id').value.text).to.equal('one');
|
|
69
65
|
(0, chai_config_spec_1.expect)(child.attributes).to.have.lengthOf(2);
|
|
70
66
|
}
|
|
71
67
|
});
|
|
@@ -90,7 +86,7 @@ describe('XmlFile', () => {
|
|
|
90
86
|
<script type="text/brightscript" uri="ChildScene.bs" />
|
|
91
87
|
</component>
|
|
92
88
|
`);
|
|
93
|
-
(0, chai_config_spec_1.expect)(file.scriptTagImports.map(x => x.
|
|
89
|
+
(0, chai_config_spec_1.expect)(file.scriptTagImports.map(x => x.pkgPath)[0]).to.equal((0, util_1.standardizePath) `components/ChildScene.bs`);
|
|
94
90
|
});
|
|
95
91
|
it('does not include commented-out script imports', () => {
|
|
96
92
|
var _a, _b;
|
|
@@ -103,10 +99,10 @@ describe('XmlFile', () => {
|
|
|
103
99
|
-->
|
|
104
100
|
</component>
|
|
105
101
|
`);
|
|
106
|
-
(0, chai_config_spec_1.expect)((_b = (_a = file.scriptTagImports) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.
|
|
102
|
+
(0, chai_config_spec_1.expect)((_b = (_a = file.scriptTagImports) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.pkgPath).to.eql((0, util_1.standardizePath) `components/ChildScene.brs`);
|
|
107
103
|
});
|
|
108
104
|
it('finds scripts when more than one per line', () => {
|
|
109
|
-
file = new XmlFile_1.XmlFile(
|
|
105
|
+
file = new XmlFile_1.XmlFile('abs', 'rel', program);
|
|
110
106
|
file.parse((0, testHelpers_spec_1.trim) `
|
|
111
107
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
112
108
|
<component name="ChildScene" extends="Scene">
|
|
@@ -128,7 +124,7 @@ describe('XmlFile', () => {
|
|
|
128
124
|
});
|
|
129
125
|
});
|
|
130
126
|
it('finds component names', () => {
|
|
131
|
-
file = new XmlFile_1.XmlFile(
|
|
127
|
+
file = new XmlFile_1.XmlFile('abs', 'rel', program);
|
|
132
128
|
file.parse((0, testHelpers_spec_1.trim) `
|
|
133
129
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
134
130
|
<component name="ChildScene" extends="ParentScene">
|
|
@@ -139,7 +135,7 @@ describe('XmlFile', () => {
|
|
|
139
135
|
(0, chai_config_spec_1.expect)(file.componentName.text).to.equal('ChildScene');
|
|
140
136
|
});
|
|
141
137
|
it('Adds error when whitespace appears before the prolog', () => {
|
|
142
|
-
file = new XmlFile_1.XmlFile(
|
|
138
|
+
file = new XmlFile_1.XmlFile('abs', 'rel', program);
|
|
143
139
|
file.parse(/* not trimmed */ `
|
|
144
140
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
145
141
|
<component name="ChildScene" extends="ParentScene">
|
|
@@ -153,7 +149,7 @@ describe('XmlFile', () => {
|
|
|
153
149
|
(0, chai_config_spec_1.expect)(file.diagnostics[1]).to.deep.include(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError('Syntax error: whitespace found before the XML prolog')), { range: vscode_languageserver_1.Range.create(0, 0, 1, 16) }));
|
|
154
150
|
});
|
|
155
151
|
it('Adds error when an unknown tag is found in xml', () => {
|
|
156
|
-
file = new XmlFile_1.XmlFile(
|
|
152
|
+
file = new XmlFile_1.XmlFile('abs', 'rel', program);
|
|
157
153
|
file.parse((0, testHelpers_spec_1.trim) `
|
|
158
154
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
159
155
|
<component name="ChildScene" extends="ParentScene">
|
|
@@ -204,7 +200,7 @@ describe('XmlFile', () => {
|
|
|
204
200
|
});
|
|
205
201
|
});
|
|
206
202
|
it('finds script imports', () => {
|
|
207
|
-
file = new XmlFile_1.XmlFile(
|
|
203
|
+
file = new XmlFile_1.XmlFile('abspath/components/cmp1.xml', 'components/cmp1.xml', program);
|
|
208
204
|
file.parse((0, testHelpers_spec_1.trim) `
|
|
209
205
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
210
206
|
<component name="Cmp1" extends="Scene">
|
|
@@ -215,12 +211,12 @@ describe('XmlFile', () => {
|
|
|
215
211
|
(0, chai_config_spec_1.expect)(file.scriptTagImports[0]).to.deep.include({
|
|
216
212
|
sourceFile: file,
|
|
217
213
|
text: 'pkg:/components/cmp1.brs',
|
|
218
|
-
|
|
214
|
+
pkgPath: `components${path.sep}cmp1.brs`,
|
|
219
215
|
filePathRange: vscode_languageserver_1.Range.create(2, 42, 2, 66)
|
|
220
216
|
});
|
|
221
217
|
});
|
|
222
218
|
it('throws an error if the file has already been parsed', () => {
|
|
223
|
-
file = new XmlFile_1.XmlFile(
|
|
219
|
+
file = new XmlFile_1.XmlFile('abspath', 'relpath', program);
|
|
224
220
|
file.parse('a comment');
|
|
225
221
|
try {
|
|
226
222
|
file.parse(`'a new comment`);
|
|
@@ -240,7 +236,7 @@ describe('XmlFile', () => {
|
|
|
240
236
|
(0, chai_config_spec_1.expect)(file.scriptTagImports.length).to.equal(1);
|
|
241
237
|
(0, chai_config_spec_1.expect)(file.scriptTagImports[0]).to.deep.include({
|
|
242
238
|
text: 'cmp1.brs',
|
|
243
|
-
|
|
239
|
+
pkgPath: `components${path.sep}cmp1.brs`
|
|
244
240
|
});
|
|
245
241
|
});
|
|
246
242
|
it('finds correct position for empty uri in script tag', () => {
|
|
@@ -314,6 +310,41 @@ describe('XmlFile', () => {
|
|
|
314
310
|
(0, testHelpers_spec_1.expectZeroDiagnostics)(program);
|
|
315
311
|
});
|
|
316
312
|
});
|
|
313
|
+
describe('getCompletions', () => {
|
|
314
|
+
it('formats completion paths with proper slashes', () => {
|
|
315
|
+
let scriptPath = (0, util_1.standardizePath) `C:/app/components/component1/component1.brs`;
|
|
316
|
+
program.files[scriptPath] = new BrsFile_1.BrsFile(scriptPath, (0, util_1.standardizePath) `components/component1/component1.brs`, program);
|
|
317
|
+
let xmlFile = new XmlFile_1.XmlFile((0, util_1.standardizePath) `${testHelpers_spec_2.rootDir}/components/component1/component1.xml`, (0, util_1.standardizePath) `components/component1/component1.xml`, program);
|
|
318
|
+
xmlFile.parser.references.scriptTagImports.push({
|
|
319
|
+
pkgPath: (0, util_1.standardizePath) `components/component1/component1.brs`,
|
|
320
|
+
text: 'component1.brs',
|
|
321
|
+
filePathRange: vscode_languageserver_1.Range.create(1, 1, 1, 1)
|
|
322
|
+
});
|
|
323
|
+
(0, chai_config_spec_1.expect)(xmlFile.getCompletions(vscode_languageserver_1.Position.create(1, 1))[0]).to.include({
|
|
324
|
+
label: 'component1.brs',
|
|
325
|
+
kind: vscode_languageserver_1.CompletionItemKind.File
|
|
326
|
+
});
|
|
327
|
+
(0, chai_config_spec_1.expect)(xmlFile.getCompletions(vscode_languageserver_1.Position.create(1, 1))[1]).to.include({
|
|
328
|
+
label: 'pkg:/components/component1/component1.brs',
|
|
329
|
+
kind: vscode_languageserver_1.CompletionItemKind.File
|
|
330
|
+
});
|
|
331
|
+
});
|
|
332
|
+
it('returns empty set when out of range', () => {
|
|
333
|
+
program.setFile('components/component1.brs', ``);
|
|
334
|
+
(0, chai_config_spec_1.expect)(file.getCompletions(vscode_languageserver_1.Position.create(99, 99))).to.be.empty;
|
|
335
|
+
});
|
|
336
|
+
//TODO - refine this test once cdata scripts are supported
|
|
337
|
+
it('prevents scope completions entirely', () => {
|
|
338
|
+
program.setFile('components/component1.brs', ``);
|
|
339
|
+
let xmlFile = program.setFile('components/component1.xml', (0, testHelpers_spec_1.trim) `
|
|
340
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
341
|
+
<component name="ParentScene" extends="GrandparentScene">
|
|
342
|
+
<script type="text/brightscript" uri="./Component1.brs" />
|
|
343
|
+
</component>
|
|
344
|
+
`);
|
|
345
|
+
(0, chai_config_spec_1.expect)(program.getCompletions(xmlFile.srcPath, vscode_languageserver_1.Position.create(1, 1))).to.be.empty;
|
|
346
|
+
});
|
|
347
|
+
});
|
|
317
348
|
describe('getAllDependencies', () => {
|
|
318
349
|
it('returns own imports', () => {
|
|
319
350
|
file = program.setFile('components/comp1.xml', (0, testHelpers_spec_1.trim) `
|
|
@@ -469,8 +500,8 @@ describe('XmlFile', () => {
|
|
|
469
500
|
]);
|
|
470
501
|
});
|
|
471
502
|
describe('transpile', () => {
|
|
472
|
-
it('handles single quotes properly',
|
|
473
|
-
|
|
503
|
+
it('handles single quotes properly', () => {
|
|
504
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
474
505
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
475
506
|
<component name="AnimationExample" extends="Scene">
|
|
476
507
|
<children>
|
|
@@ -504,28 +535,27 @@ describe('XmlFile', () => {
|
|
|
504
535
|
await builder.run({
|
|
505
536
|
cwd: testHelpers_spec_2.rootDir,
|
|
506
537
|
retainStagingDir: true,
|
|
507
|
-
createPackage: false,
|
|
508
538
|
stagingDir: testHelpers_spec_2.stagingDir,
|
|
509
|
-
logLevel:
|
|
539
|
+
logLevel: logging_1.LogLevel.off
|
|
510
540
|
});
|
|
511
541
|
(0, chai_config_spec_1.expect)((0, testHelpers_spec_1.trim)(fsExtra.readFileSync(`${testHelpers_spec_2.stagingDir}/components/MainScene.xml`).toString())).to.eql((0, testHelpers_spec_1.trim) `
|
|
512
542
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
513
543
|
<component name="MainScene" extends="Scene">
|
|
514
544
|
<script type="text/brightscript" uri="pkg:/source/bslib.brs" />
|
|
515
|
-
<customization resumehandler="customResume" />
|
|
516
|
-
<customization suspendhandler="customSuspend" />
|
|
517
545
|
<children>
|
|
518
546
|
<Rectangle width="1920" height="1080" />
|
|
519
547
|
</children>
|
|
548
|
+
<customization resumehandler="customResume" />
|
|
549
|
+
<customization suspendhandler="customSuspend" />
|
|
520
550
|
</component>
|
|
521
551
|
`);
|
|
522
552
|
});
|
|
523
553
|
it(`honors the 'needsTranspiled' flag when set in 'afterFileParse'`, () => {
|
|
524
554
|
program.plugins.add({
|
|
525
555
|
name: 'test',
|
|
526
|
-
|
|
556
|
+
afterFileParse: (file) => {
|
|
527
557
|
//enable transpile for every file
|
|
528
|
-
|
|
558
|
+
file.needsTranspiled = true;
|
|
529
559
|
}
|
|
530
560
|
});
|
|
531
561
|
const file = program.setFile('components/file.xml', (0, testHelpers_spec_1.trim) `
|
|
@@ -533,10 +563,10 @@ describe('XmlFile', () => {
|
|
|
533
563
|
<component name="Comp" extends="Group">
|
|
534
564
|
</component>
|
|
535
565
|
`);
|
|
536
|
-
(0, chai_config_spec_1.expect)(file
|
|
566
|
+
(0, chai_config_spec_1.expect)(file.needsTranspiled).to.be.true;
|
|
537
567
|
});
|
|
538
|
-
it('includes bslib script',
|
|
539
|
-
|
|
568
|
+
it('includes bslib script', () => {
|
|
569
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
540
570
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
541
571
|
<component name="Comp" extends="Group">
|
|
542
572
|
</component>
|
|
@@ -547,8 +577,8 @@ describe('XmlFile', () => {
|
|
|
547
577
|
</component>
|
|
548
578
|
`, 'none', 'components/Comp.xml');
|
|
549
579
|
});
|
|
550
|
-
it('does not include additional bslib script if already there ',
|
|
551
|
-
|
|
580
|
+
it('does not include additional bslib script if already there ', () => {
|
|
581
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
552
582
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
553
583
|
<component name="Comp" extends="Group">
|
|
554
584
|
<script type="text/brightscript" uri="pkg:/source/bslib.brs" />
|
|
@@ -560,11 +590,11 @@ describe('XmlFile', () => {
|
|
|
560
590
|
</component>
|
|
561
591
|
`, 'none', 'components/child.xml');
|
|
562
592
|
});
|
|
563
|
-
it('does not include bslib script if already there from ropm',
|
|
593
|
+
it('does not include bslib script if already there from ropm', () => {
|
|
564
594
|
program.setFile('source/roku_modules/bslib/bslib.brs', ``);
|
|
565
595
|
program.setFile('source/lib.bs', ``);
|
|
566
596
|
//include a bs file to force transpile for the xml file
|
|
567
|
-
|
|
597
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
568
598
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
569
599
|
<component name="Comp" extends="Group">
|
|
570
600
|
<script type="text/brightscript" uri="pkg:/source/lib.bs" />
|
|
@@ -587,7 +617,7 @@ describe('XmlFile', () => {
|
|
|
587
617
|
`);
|
|
588
618
|
program.validate();
|
|
589
619
|
(0, testHelpers_spec_1.expectZeroDiagnostics)(program);
|
|
590
|
-
(0, chai_config_spec_1.expect)(file
|
|
620
|
+
(0, chai_config_spec_1.expect)(file.needsTranspiled).to.be.false;
|
|
591
621
|
});
|
|
592
622
|
/**
|
|
593
623
|
* There was a bug that would incorrectly replace one of the script paths on the second or third transpile, so this test verifies it doesn't do that anymore
|
|
@@ -607,71 +637,19 @@ describe('XmlFile', () => {
|
|
|
607
637
|
<script type="text/brightscript" uri="pkg:/source/bslib.brs" />
|
|
608
638
|
</component>
|
|
609
639
|
`;
|
|
610
|
-
await program.
|
|
640
|
+
await program.transpile([], testHelpers_spec_2.stagingDir);
|
|
611
641
|
(0, chai_config_spec_1.expect)((0, testHelpers_spec_1.trim)(fsExtra.readFileSync(`${testHelpers_spec_2.stagingDir}/components/SimpleScene.xml`).toString())).to.eql(expected);
|
|
612
642
|
//clear the output folder
|
|
613
643
|
fsExtra.emptyDirSync(testHelpers_spec_2.stagingDir);
|
|
614
|
-
await program.
|
|
644
|
+
await program.transpile([], testHelpers_spec_2.stagingDir);
|
|
615
645
|
(0, chai_config_spec_1.expect)((0, testHelpers_spec_1.trim)(fsExtra.readFileSync(`${testHelpers_spec_2.stagingDir}/components/SimpleScene.xml`).toString())).to.eql(expected);
|
|
616
646
|
});
|
|
617
|
-
it('
|
|
647
|
+
it('keeps all content of the XML', () => {
|
|
618
648
|
program.setFile(`components/SimpleScene.bs`, `
|
|
619
649
|
sub b()
|
|
620
650
|
end sub
|
|
621
651
|
`);
|
|
622
|
-
|
|
623
|
-
<component name="SimpleScene" extends="group">
|
|
624
|
-
<script type="text/brightscript" uri="SimpleScene.bs"/>
|
|
625
|
-
<children>
|
|
626
|
-
<aa id="aa">
|
|
627
|
-
<bb id="bb" />
|
|
628
|
-
</aa>
|
|
629
|
-
</children>
|
|
630
|
-
</component>
|
|
631
|
-
`, (0, testHelpers_spec_1.trim) `
|
|
632
|
-
<component name="SimpleScene" extends="group">
|
|
633
|
-
<script type="text/brightscript" uri="SimpleScene.brs" />
|
|
634
|
-
<script type="text/brightscript" uri="pkg:/source/bslib.brs" />
|
|
635
|
-
<children>
|
|
636
|
-
<aa id="aa">
|
|
637
|
-
<bb id="bb" />
|
|
638
|
-
</aa>
|
|
639
|
-
</children>
|
|
640
|
-
</component>
|
|
641
|
-
`, 'none', 'components/SimpleScene.xml');
|
|
642
|
-
});
|
|
643
|
-
it('injects new scripts at top of component when no scripts were present', async () => {
|
|
644
|
-
program.setFile(`components/SimpleScene.bs`, `
|
|
645
|
-
sub b()
|
|
646
|
-
end sub
|
|
647
|
-
`);
|
|
648
|
-
program.options.autoImportComponentScript = true;
|
|
649
|
-
await testTranspile((0, testHelpers_spec_1.trim) `
|
|
650
|
-
<component name="SimpleScene" extends="group">
|
|
651
|
-
<children>
|
|
652
|
-
<aa id="aa">
|
|
653
|
-
<bb id="bb" />
|
|
654
|
-
</aa>
|
|
655
|
-
</children>
|
|
656
|
-
</component>
|
|
657
|
-
`, (0, testHelpers_spec_1.trim) `
|
|
658
|
-
<component name="SimpleScene" extends="group">
|
|
659
|
-
<script type="text/brightscript" uri="pkg:/components/SimpleScene.brs" />
|
|
660
|
-
<script type="text/brightscript" uri="pkg:/source/bslib.brs" />
|
|
661
|
-
<children>
|
|
662
|
-
<aa id="aa">
|
|
663
|
-
<bb id="bb" />
|
|
664
|
-
</aa>
|
|
665
|
-
</children>
|
|
666
|
-
</component>
|
|
667
|
-
`, 'none', 'components/SimpleScene.xml');
|
|
668
|
-
});
|
|
669
|
-
it('keeps all content of the XML', async () => {
|
|
670
|
-
program.setFile(`components/SimpleScene.bs`, `
|
|
671
|
-
sub b()
|
|
672
|
-
end sub
|
|
673
|
-
`);
|
|
674
|
-
await testTranspile((0, testHelpers_spec_1.trim) `
|
|
652
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
675
653
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
676
654
|
<component
|
|
677
655
|
name="SimpleScene" extends="Scene"
|
|
@@ -706,12 +684,12 @@ describe('XmlFile', () => {
|
|
|
706
684
|
</component>
|
|
707
685
|
`, 'none', 'components/SimpleScene.xml');
|
|
708
686
|
});
|
|
709
|
-
it('changes file extensions from bs to brs',
|
|
687
|
+
it('changes file extensions from bs to brs', () => {
|
|
710
688
|
program.setFile(`components/SimpleScene.bs`, `
|
|
711
689
|
import "pkg:/source/lib.bs"
|
|
712
690
|
`);
|
|
713
691
|
program.setFile('source/lib.bs', ``);
|
|
714
|
-
|
|
692
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
715
693
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
716
694
|
<component name="SimpleScene" extends="Scene">
|
|
717
695
|
<script type="text/brighterscript" uri="SimpleScene.bs"/>
|
|
@@ -725,9 +703,9 @@ describe('XmlFile', () => {
|
|
|
725
703
|
</component>
|
|
726
704
|
`, 'none', 'components/SimpleScene.xml');
|
|
727
705
|
});
|
|
728
|
-
it('does not fail on missing script type',
|
|
706
|
+
it('does not fail on missing script type', () => {
|
|
729
707
|
program.setFile('components/SimpleScene.brs', '');
|
|
730
|
-
|
|
708
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
731
709
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
732
710
|
<component name="SimpleScene" extends="Scene">
|
|
733
711
|
<script uri="SimpleScene.brs"/>
|
|
@@ -764,7 +742,7 @@ describe('XmlFile', () => {
|
|
|
764
742
|
<component name="SimpleScene" extends="Scene" >
|
|
765
743
|
</component>
|
|
766
744
|
`);
|
|
767
|
-
(0, chai_config_spec_1.expect)(file
|
|
745
|
+
(0, chai_config_spec_1.expect)(file.needsTranspiled).to.be.false;
|
|
768
746
|
});
|
|
769
747
|
it('needsTranspiled is true if an import is brighterscript', () => {
|
|
770
748
|
let file = program.setFile('components/SimpleScene.xml', (0, testHelpers_spec_1.trim) `
|
|
@@ -773,7 +751,7 @@ describe('XmlFile', () => {
|
|
|
773
751
|
<script type="text/brightscript" uri="SimpleScene.bs"/>
|
|
774
752
|
</component>
|
|
775
753
|
`);
|
|
776
|
-
(0, chai_config_spec_1.expect)(file
|
|
754
|
+
(0, chai_config_spec_1.expect)(file.needsTranspiled).to.be.true;
|
|
777
755
|
});
|
|
778
756
|
it('simple source mapping includes sourcemap reference', () => {
|
|
779
757
|
program.options.sourceMap = true;
|
|
@@ -794,10 +772,91 @@ describe('XmlFile', () => {
|
|
|
794
772
|
<component name="SimpleScene" extends="Scene">
|
|
795
773
|
</component>
|
|
796
774
|
`);
|
|
797
|
-
file
|
|
775
|
+
file.needsTranspiled = true;
|
|
798
776
|
const code = file.transpile().code;
|
|
799
777
|
(0, chai_config_spec_1.expect)(code.endsWith(`<!--//# sourceMappingURL=./SimpleScene.xml.map -->`)).to.be.true;
|
|
800
778
|
});
|
|
779
|
+
it('removes script imports if given file is not publishable', () => {
|
|
780
|
+
program.options.pruneEmptyCodeFiles = true;
|
|
781
|
+
program.setFile(`components/SimpleScene.bs`, `
|
|
782
|
+
enum simplescenetypes
|
|
783
|
+
hero
|
|
784
|
+
intro
|
|
785
|
+
end enum
|
|
786
|
+
`);
|
|
787
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
788
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
789
|
+
<component
|
|
790
|
+
name="SimpleScene" extends="Scene"
|
|
791
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
792
|
+
xsi:noNamespaceSchemaLocation="https://devtools.web.roku.com/schema/RokuSceneGraph.xsd"
|
|
793
|
+
>
|
|
794
|
+
<script type="text/brightscript" uri="SimpleScene.bs"/>
|
|
795
|
+
</component>
|
|
796
|
+
`, (0, testHelpers_spec_1.trim) `
|
|
797
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
798
|
+
<component name="SimpleScene" extends="Scene" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://devtools.web.roku.com/schema/RokuSceneGraph.xsd">
|
|
799
|
+
<script type="text/brightscript" uri="pkg:/source/bslib.brs" />
|
|
800
|
+
</component>
|
|
801
|
+
`, 'none', 'components/SimpleScene.xml');
|
|
802
|
+
});
|
|
803
|
+
it('removes extra imports found via dependencies if given file is not publishable', () => {
|
|
804
|
+
program.options.pruneEmptyCodeFiles = true;
|
|
805
|
+
program.setFile(`source/simplescenetypes.bs`, `
|
|
806
|
+
enum SimpleSceneTypes
|
|
807
|
+
world = "world"
|
|
808
|
+
end enum
|
|
809
|
+
`);
|
|
810
|
+
program.setFile(`components/SimpleScene.bs`, `
|
|
811
|
+
import "pkg:/source/simplescenetypes.bs"
|
|
812
|
+
|
|
813
|
+
sub init()
|
|
814
|
+
? "Hello " + SimpleSceneTypes.world
|
|
815
|
+
end sub
|
|
816
|
+
`);
|
|
817
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
818
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
819
|
+
<component
|
|
820
|
+
name="SimpleScene" extends="Scene"
|
|
821
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
822
|
+
xsi:noNamespaceSchemaLocation="https://devtools.web.roku.com/schema/RokuSceneGraph.xsd"
|
|
823
|
+
>
|
|
824
|
+
<script type="text/brightscript" uri="SimpleScene.bs"/>
|
|
825
|
+
</component>
|
|
826
|
+
`, (0, testHelpers_spec_1.trim) `
|
|
827
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
828
|
+
<component name="SimpleScene" extends="Scene" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://devtools.web.roku.com/schema/RokuSceneGraph.xsd">
|
|
829
|
+
<script type="text/brightscript" uri="SimpleScene.brs" />
|
|
830
|
+
<script type="text/brightscript" uri="pkg:/source/bslib.brs" />
|
|
831
|
+
</component>
|
|
832
|
+
`, 'none', 'components/SimpleScene.xml');
|
|
833
|
+
});
|
|
834
|
+
it('removes imports of empty brightscript files', () => {
|
|
835
|
+
program.options.pruneEmptyCodeFiles = true;
|
|
836
|
+
program.setFile(`components/EmptyFile.brs`, '');
|
|
837
|
+
program.setFile(`components/SimpleScene.brs`, `
|
|
838
|
+
sub init()
|
|
839
|
+
? "Hello World"
|
|
840
|
+
end sub
|
|
841
|
+
`);
|
|
842
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
843
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
844
|
+
<component
|
|
845
|
+
name="SimpleScene" extends="Scene"
|
|
846
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
847
|
+
xsi:noNamespaceSchemaLocation="https://devtools.web.roku.com/schema/RokuSceneGraph.xsd"
|
|
848
|
+
>
|
|
849
|
+
<script type="text/brightscript" uri="SimpleScene.brs"/>
|
|
850
|
+
<script type="text/brightscript" uri="EmptyFile.brs"/>
|
|
851
|
+
</component>
|
|
852
|
+
`, (0, testHelpers_spec_1.trim) `
|
|
853
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
854
|
+
<component name="SimpleScene" extends="Scene" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://devtools.web.roku.com/schema/RokuSceneGraph.xsd">
|
|
855
|
+
<script type="text/brightscript" uri="SimpleScene.brs" />
|
|
856
|
+
<script type="text/brightscript" uri="pkg:/source/bslib.brs" />
|
|
857
|
+
</component>
|
|
858
|
+
`, 'none', 'components/SimpleScene.xml');
|
|
859
|
+
});
|
|
801
860
|
});
|
|
802
861
|
describe('Transform plugins', () => {
|
|
803
862
|
function parseFileWithPlugins(validateXml) {
|
|
@@ -807,7 +866,7 @@ describe('XmlFile', () => {
|
|
|
807
866
|
});
|
|
808
867
|
program.plugins.add({
|
|
809
868
|
name: 'Transform plugins',
|
|
810
|
-
|
|
869
|
+
afterFileParse: file => validateXml(file)
|
|
811
870
|
});
|
|
812
871
|
file = program.setFile('components/component.xml', (0, testHelpers_spec_1.trim) `
|
|
813
872
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
@@ -827,16 +886,14 @@ describe('XmlFile', () => {
|
|
|
827
886
|
it('plugin diagnostics work for xml files', () => {
|
|
828
887
|
program.plugins.add({
|
|
829
888
|
name: 'Xml diagnostic test',
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
file.diagnostics.push({
|
|
889
|
+
afterFileParse: (file) => {
|
|
890
|
+
if (file.srcPath.endsWith('.xml')) {
|
|
891
|
+
file.addDiagnostics([{
|
|
834
892
|
file: file,
|
|
835
893
|
message: 'Test diagnostic',
|
|
836
894
|
range: vscode_languageserver_1.Range.create(0, 0, 0, 0),
|
|
837
895
|
code: 9999
|
|
838
|
-
});
|
|
839
|
-
}
|
|
896
|
+
}]);
|
|
840
897
|
}
|
|
841
898
|
}
|
|
842
899
|
});
|
|
@@ -913,7 +970,7 @@ describe('XmlFile', () => {
|
|
|
913
970
|
`);
|
|
914
971
|
(0, chai_config_spec_1.expect)(program.getScopesForFile(xmlFile)[0].getAllCallables().map(x => x.callable.name)).to.include('logInfo');
|
|
915
972
|
});
|
|
916
|
-
it('does not include `d.bs` script during transpile',
|
|
973
|
+
it('does not include `d.bs` script during transpile', () => {
|
|
917
974
|
program.setFile('source/logger.d.bs', `
|
|
918
975
|
sub logInfo()
|
|
919
976
|
end sub
|
|
@@ -927,7 +984,7 @@ describe('XmlFile', () => {
|
|
|
927
984
|
sub init()
|
|
928
985
|
end sub
|
|
929
986
|
`);
|
|
930
|
-
|
|
987
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
931
988
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
932
989
|
<component name="Component1" extends="Scene">
|
|
933
990
|
<script type="text/brighterscript" uri="Component1.bs" />
|
|
@@ -1021,7 +1078,7 @@ describe('XmlFile', () => {
|
|
|
1021
1078
|
program.validate();
|
|
1022
1079
|
(0, testHelpers_spec_1.expectZeroDiagnostics)(program);
|
|
1023
1080
|
});
|
|
1024
|
-
it('ignores
|
|
1081
|
+
it('ignores warning from previous line just for the specified code', () => {
|
|
1025
1082
|
//component without a name attribute
|
|
1026
1083
|
program.setFile('components/file.xml', (0, testHelpers_spec_1.trim) `
|
|
1027
1084
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
@@ -1034,7 +1091,7 @@ describe('XmlFile', () => {
|
|
|
1034
1091
|
DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingExtendsAttribute()
|
|
1035
1092
|
]);
|
|
1036
1093
|
});
|
|
1037
|
-
it('ignores
|
|
1094
|
+
it('ignores warning from previous line comment', () => {
|
|
1038
1095
|
//component without a name attribute
|
|
1039
1096
|
program.setFile('components/file.xml', (0, testHelpers_spec_1.trim) `
|
|
1040
1097
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
@@ -1048,7 +1105,7 @@ describe('XmlFile', () => {
|
|
|
1048
1105
|
//component without a name attribute
|
|
1049
1106
|
program.setFile('components/file.xml', (0, testHelpers_spec_1.trim) `
|
|
1050
1107
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
1051
|
-
<component
|
|
1108
|
+
<component> <!--bs:disable-line 1006-->
|
|
1052
1109
|
</component>
|
|
1053
1110
|
`);
|
|
1054
1111
|
program.validate();
|
|
@@ -1087,17 +1144,17 @@ describe('XmlFile', () => {
|
|
|
1087
1144
|
<component name="comp1">
|
|
1088
1145
|
</component>
|
|
1089
1146
|
`);
|
|
1090
|
-
(0, chai_config_spec_1.expect)(program.getComponent('comp1').file.
|
|
1147
|
+
(0, chai_config_spec_1.expect)(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
|
|
1091
1148
|
//add comp1. it should become the main component with this name
|
|
1092
1149
|
const comp1 = program.setFile('components/comp1.xml', (0, testHelpers_spec_1.trim) `
|
|
1093
1150
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
1094
1151
|
<component name="comp1" extends="Group">
|
|
1095
1152
|
</component>
|
|
1096
1153
|
`);
|
|
1097
|
-
(0, chai_config_spec_1.expect)(program.getComponent('comp1').file.
|
|
1154
|
+
(0, chai_config_spec_1.expect)(program.getComponent('comp1').file.pkgPath).to.equal(comp1.pkgPath);
|
|
1098
1155
|
//remove comp1, comp2 should be the primary again
|
|
1099
1156
|
program.removeFile((0, util_1.standardizePath) `${testHelpers_spec_2.rootDir}/components/comp1.xml`);
|
|
1100
|
-
(0, chai_config_spec_1.expect)(program.getComponent('comp1').file.
|
|
1157
|
+
(0, chai_config_spec_1.expect)(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
|
|
1101
1158
|
//add comp3
|
|
1102
1159
|
program.setFile('components/comp3.xml', (0, testHelpers_spec_1.trim) `
|
|
1103
1160
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
@@ -1105,7 +1162,7 @@ describe('XmlFile', () => {
|
|
|
1105
1162
|
</component>
|
|
1106
1163
|
`);
|
|
1107
1164
|
//...the 2nd file should still be main
|
|
1108
|
-
(0, chai_config_spec_1.expect)(program.getComponent('comp1').file.
|
|
1165
|
+
(0, chai_config_spec_1.expect)(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
|
|
1109
1166
|
});
|
|
1110
1167
|
});
|
|
1111
1168
|
});
|