brighterscript 0.66.0-alpha.5 → 0.66.0-alpha.7
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 +64 -10
- package/README.md +16 -0
- package/bsconfig.schema.json +15 -0
- package/dist/ActionPipeline.d.ts +10 -0
- package/dist/ActionPipeline.js +40 -0
- package/dist/ActionPipeline.js.map +1 -0
- package/dist/BsConfig.d.ts +15 -1
- package/dist/CommentFlagProcessor.d.ts +4 -3
- package/dist/CommentFlagProcessor.js.map +1 -1
- package/dist/DiagnosticMessages.d.ts +19 -4
- package/dist/DiagnosticMessages.js +45 -5
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/LanguageServer.js.map +1 -1
- package/dist/PluginInterface.d.ts +11 -2
- package/dist/PluginInterface.js +69 -10
- package/dist/PluginInterface.js.map +1 -1
- package/dist/Program.d.ts +101 -37
- package/dist/Program.js +492 -274
- package/dist/Program.js.map +1 -1
- package/dist/ProgramBuilder.d.ts +10 -4
- package/dist/ProgramBuilder.js +44 -54
- package/dist/ProgramBuilder.js.map +1 -1
- package/dist/Scope.d.ts +27 -13
- package/dist/Scope.js +44 -26
- package/dist/Scope.js.map +1 -1
- package/dist/SymbolTable.d.ts +5 -0
- package/dist/SymbolTable.js +15 -2
- package/dist/SymbolTable.js.map +1 -1
- package/dist/XmlScope.d.ts +7 -4
- package/dist/XmlScope.js +47 -8
- package/dist/XmlScope.js.map +1 -1
- package/dist/astUtils/{AstEditor.d.ts → Editor.d.ts} +6 -1
- package/dist/astUtils/{AstEditor.js → Editor.js} +9 -3
- package/dist/astUtils/Editor.js.map +1 -0
- package/dist/astUtils/{AstEditor.spec.js → Editor.spec.js} +10 -6
- package/dist/astUtils/Editor.spec.js.map +1 -0
- package/dist/astUtils/creators.d.ts +3 -1
- package/dist/astUtils/creators.js +9 -1
- package/dist/astUtils/creators.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +30 -8
- package/dist/astUtils/reflection.js +64 -14
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/reflection.spec.js +85 -4
- package/dist/astUtils/reflection.spec.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +3 -3
- package/dist/astUtils/visitors.spec.js +7 -7
- package/dist/astUtils/visitors.spec.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.d.ts +10 -2
- package/dist/bscPlugin/BscPlugin.js +24 -4
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- 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/codeActions/CodeActionsProcessor.js +8 -8
- 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 +11 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.js +112 -58
- package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +151 -6
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
- 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 +1 -7
- package/dist/bscPlugin/hover/HoverProcessor.js +2 -8
- package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
- package/dist/bscPlugin/hover/HoverProcessor.spec.js +55 -0
- package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +1 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +43 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +22 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
- 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} +25 -4
- 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 +2 -2
- package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.js +2 -1
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +12 -0
- package/dist/bscPlugin/validation/ScopeValidator.js +137 -19
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.spec.js +671 -1
- package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
- package/dist/bscPlugin/validation/XmlFileValidator.js +2 -2
- package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -1
- package/dist/cli.js +1 -0
- package/dist/cli.js.map +1 -1
- package/dist/deferred.d.ts +2 -2
- package/dist/deferred.js.map +1 -1
- package/dist/diagnosticUtils.d.ts +1 -0
- package/dist/diagnosticUtils.js +4 -3
- 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/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 +40 -40
- package/dist/files/BrsFile.Class.spec.js.map +1 -1
- package/dist/files/BrsFile.d.ts +42 -15
- package/dist/files/BrsFile.js +120 -78
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +266 -167
- package/dist/files/BrsFile.spec.js.map +1 -1
- 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/File.d.ts +106 -0
- package/dist/files/File.js +16 -0
- package/dist/files/File.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 +55 -17
- package/dist/files/XmlFile.js +88 -47
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/files/XmlFile.spec.js +64 -57
- package/dist/files/XmlFile.spec.js.map +1 -1
- package/dist/files/tests/imports.spec.js +21 -8
- 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 +2 -6
- package/dist/globalCallables.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +326 -85
- package/dist/interfaces.js +4 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/lexer/Lexer.js +1 -1
- package/dist/lexer/TokenKind.js +0 -1
- package/dist/lexer/TokenKind.js.map +1 -1
- package/dist/parser/AstNode.d.ts +2 -2
- package/dist/parser/AstNode.js +1 -1
- package/dist/parser/AstNode.js.map +1 -1
- package/dist/parser/BrsTranspileState.d.ts +3 -2
- package/dist/parser/BrsTranspileState.js +3 -2
- package/dist/parser/BrsTranspileState.js.map +1 -1
- package/dist/parser/Expression.d.ts +1 -1
- package/dist/parser/Expression.js +35 -19
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.js +12 -1
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.js +18 -2
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/SGParser.d.ts +2 -2
- package/dist/parser/SGParser.js +3 -3
- package/dist/parser/SGParser.js.map +1 -1
- package/dist/parser/SGParser.spec.js +2 -2
- package/dist/parser/SGParser.spec.js.map +1 -1
- package/dist/parser/SGTypes.d.ts +1 -1
- package/dist/parser/Statement.js +1 -1
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +10 -10
- 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 +64 -36
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TernaryExpression.spec.js +34 -34
- package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
- package/dist/parser/tests/statement/ConstStatement.spec.js +17 -17
- 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/Enum.spec.js +26 -26
- 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/InterfaceStatement.spec.js +18 -10
- package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/PrintStatement.spec.js +10 -10
- package/dist/parser/tests/statement/PrintStatement.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/roku-types/data.json +111 -149
- package/dist/roku-types/index.d.ts +27 -13
- package/dist/types/ArrayType.d.ts +2 -1
- package/dist/types/ArrayType.js +6 -2
- package/dist/types/ArrayType.js.map +1 -1
- package/dist/types/ArrayType.spec.js +11 -1
- 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 +2 -1
- package/dist/types/BaseFunctionType.js +1 -1
- package/dist/types/BaseFunctionType.js.map +1 -1
- package/dist/types/BooleanType.d.ts +2 -1
- package/dist/types/BooleanType.js +3 -2
- package/dist/types/BooleanType.js.map +1 -1
- package/dist/types/BscType.d.ts +3 -3
- package/dist/types/BscType.js +26 -12
- package/dist/types/BscType.js.map +1 -1
- package/dist/types/BscTypeKind.d.ts +2 -0
- package/dist/types/BscTypeKind.js +2 -0
- package/dist/types/BscTypeKind.js.map +1 -1
- package/dist/types/BuiltInInterfaceAdder.d.ts +8 -0
- package/dist/types/BuiltInInterfaceAdder.js +88 -23
- package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
- package/dist/types/ClassType.d.ts +2 -1
- package/dist/types/ClassType.js +2 -2
- package/dist/types/ClassType.js.map +1 -1
- 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 +2 -1
- package/dist/types/DoubleType.js +4 -2
- package/dist/types/DoubleType.js.map +1 -1
- package/dist/types/DynamicType.d.ts +2 -2
- package/dist/types/DynamicType.js +1 -1
- package/dist/types/DynamicType.js.map +1 -1
- package/dist/types/EnumType.d.ts +3 -2
- package/dist/types/EnumType.js +3 -3
- package/dist/types/EnumType.js.map +1 -1
- package/dist/types/FloatType.d.ts +2 -1
- package/dist/types/FloatType.js +4 -2
- package/dist/types/FloatType.js.map +1 -1
- package/dist/types/FunctionType.d.ts +2 -1
- package/dist/types/FunctionType.js +2 -2
- package/dist/types/FunctionType.js.map +1 -1
- package/dist/types/IntegerType.d.ts +2 -1
- package/dist/types/IntegerType.js +4 -2
- package/dist/types/IntegerType.js.map +1 -1
- package/dist/types/InterfaceType.d.ts +2 -1
- package/dist/types/InterfaceType.js +3 -7
- package/dist/types/InterfaceType.js.map +1 -1
- package/dist/types/InterfaceType.spec.js +25 -2
- package/dist/types/InterfaceType.spec.js.map +1 -1
- package/dist/types/LongIntegerType.d.ts +2 -1
- package/dist/types/LongIntegerType.js +4 -2
- package/dist/types/LongIntegerType.js.map +1 -1
- package/dist/types/ObjectType.d.ts +2 -2
- package/dist/types/ObjectType.js +1 -1
- package/dist/types/ObjectType.js.map +1 -1
- package/dist/types/ReferenceType.d.ts +2 -0
- package/dist/types/ReferenceType.js +45 -1
- package/dist/types/ReferenceType.js.map +1 -1
- package/dist/types/StringType.d.ts +2 -1
- package/dist/types/StringType.js +4 -4
- package/dist/types/StringType.js.map +1 -1
- package/dist/types/TypedFunctionType.d.ts +7 -1
- package/dist/types/TypedFunctionType.js +47 -17
- package/dist/types/TypedFunctionType.js.map +1 -1
- package/dist/types/TypedFunctionType.spec.js +99 -0
- package/dist/types/TypedFunctionType.spec.js.map +1 -1
- package/dist/types/UninitializedType.d.ts +2 -1
- package/dist/types/UninitializedType.js +1 -1
- package/dist/types/UninitializedType.js.map +1 -1
- package/dist/types/UnionType.d.ts +2 -2
- package/dist/types/UnionType.js +10 -3
- package/dist/types/UnionType.js.map +1 -1
- package/dist/types/UnionType.spec.js +3 -2
- package/dist/types/UnionType.spec.js.map +1 -1
- package/dist/types/VoidType.d.ts +2 -1
- package/dist/types/VoidType.js +2 -2
- package/dist/types/VoidType.js.map +1 -1
- package/dist/types/helper.spec.js +15 -0
- package/dist/types/helper.spec.js.map +1 -1
- package/dist/types/helpers.d.ts +5 -1
- package/dist/types/helpers.js +31 -3
- package/dist/types/helpers.js.map +1 -1
- package/dist/util.d.ts +26 -6
- package/dist/util.js +181 -52
- package/dist/util.js.map +1 -1
- package/dist/validators/ClassValidator.js.map +1 -1
- package/package.json +1 -1
- 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 -31
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.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 → serialize/BslibInjector.spec.d.ts} +0 -0
package/dist/files/XmlFile.d.ts
CHANGED
|
@@ -1,13 +1,31 @@
|
|
|
1
1
|
import type { CodeWithSourceMap } from 'source-map';
|
|
2
2
|
import type { Location, Position, Range } from 'vscode-languageserver';
|
|
3
|
-
import type { Callable, BsDiagnostic, FileReference, FunctionCall, CommentFlag,
|
|
3
|
+
import type { Callable, BsDiagnostic, FileReference, FunctionCall, CommentFlag, SerializedCodeFile } from '../interfaces';
|
|
4
4
|
import type { Program } from '../Program';
|
|
5
5
|
import SGParser from '../parser/SGParser';
|
|
6
6
|
import type { DependencyGraph } from '../DependencyGraph';
|
|
7
|
-
import type
|
|
7
|
+
import { type SGToken } from '../parser/SGTypes';
|
|
8
8
|
import type { IToken, TokenType } from 'chevrotain';
|
|
9
|
+
import type { File } from './File';
|
|
10
|
+
import type { Editor } from '../astUtils/Editor';
|
|
9
11
|
import type { FunctionScope } from '../FunctionScope';
|
|
10
|
-
export declare class XmlFile {
|
|
12
|
+
export declare class XmlFile implements File {
|
|
13
|
+
/**
|
|
14
|
+
* Create a new instance of BrsFile
|
|
15
|
+
*/
|
|
16
|
+
constructor(options: {
|
|
17
|
+
/**
|
|
18
|
+
* The absolute path to the source file on disk (e.g. '/usr/you/projects/RokuApp/source/main.brs' or 'c:/projects/RokuApp/source/main.brs').
|
|
19
|
+
*/
|
|
20
|
+
srcPath: string;
|
|
21
|
+
/**
|
|
22
|
+
* The absolute path to the file on-device (i.e. 'source/main.brs') without the leading `pkg:/`
|
|
23
|
+
*/
|
|
24
|
+
destPath: string;
|
|
25
|
+
pkgPath?: string;
|
|
26
|
+
program: Program;
|
|
27
|
+
});
|
|
28
|
+
type: string;
|
|
11
29
|
/**
|
|
12
30
|
* The absolute path to the source file on disk (e.g. '/usr/you/projects/RokuApp/source/main.brs' or 'c:/projects/RokuApp/source/main.brs').
|
|
13
31
|
*/
|
|
@@ -15,22 +33,30 @@ export declare class XmlFile {
|
|
|
15
33
|
/**
|
|
16
34
|
* The absolute path to the file on-device (i.e. 'source/main.brs') without the leading `pkg:/`
|
|
17
35
|
*/
|
|
36
|
+
destPath: string;
|
|
18
37
|
pkgPath: string;
|
|
19
38
|
program: Program;
|
|
20
|
-
constructor(
|
|
21
39
|
/**
|
|
22
|
-
*
|
|
40
|
+
* An editor assigned during the build flow that manages edits that will be undone once the build process is complete.
|
|
23
41
|
*/
|
|
24
|
-
|
|
42
|
+
editor?: Editor;
|
|
25
43
|
/**
|
|
26
|
-
* The absolute path to the
|
|
44
|
+
* The absolute path to the source location for this file
|
|
45
|
+
* @deprecated use `srcPath` instead
|
|
27
46
|
*/
|
|
28
|
-
|
|
47
|
+
get pathAbsolute(): string;
|
|
48
|
+
set pathAbsolute(value: string);
|
|
29
49
|
private cache;
|
|
30
50
|
/**
|
|
31
51
|
* The list of possible autoImport codebehind pkg paths.
|
|
52
|
+
* @deprecated use `possibleCodebehindDestPaths` instead.
|
|
53
|
+
*/
|
|
54
|
+
get possibleCodebehindPkgPaths(): string[];
|
|
55
|
+
set possibleCodebehindPkgPaths(value: string[]);
|
|
56
|
+
/**
|
|
57
|
+
* The list of possible autoImport codebehind destPath values
|
|
32
58
|
*/
|
|
33
|
-
|
|
59
|
+
possibleCodebehindDestPaths: string[];
|
|
34
60
|
/**
|
|
35
61
|
* An unsubscribe function for the dependencyGraph subscription
|
|
36
62
|
*/
|
|
@@ -51,7 +77,7 @@ export declare class XmlFile {
|
|
|
51
77
|
*/
|
|
52
78
|
get scriptTagImports(): FileReference[];
|
|
53
79
|
/**
|
|
54
|
-
* List of all
|
|
80
|
+
* List of all `destPath` values pointing to scripts that this XmlFile depends on, regardless of whether they are loaded in the program or not.
|
|
55
81
|
* This includes own dependencies and all parent compoent dependencies
|
|
56
82
|
* coming from:
|
|
57
83
|
* - script tags
|
|
@@ -60,7 +86,7 @@ export declare class XmlFile {
|
|
|
60
86
|
*/
|
|
61
87
|
getAllDependencies(): string[];
|
|
62
88
|
/**
|
|
63
|
-
* List of all
|
|
89
|
+
* List of all destPaths to scripts that this XmlFile depends on directly, regardless of whether they are loaded in the program or not.
|
|
64
90
|
* This does not account for parent component scripts
|
|
65
91
|
* coming from:
|
|
66
92
|
* - script tags
|
|
@@ -69,7 +95,7 @@ export declare class XmlFile {
|
|
|
69
95
|
*/
|
|
70
96
|
getOwnDependencies(): string[];
|
|
71
97
|
/**
|
|
72
|
-
* List of all
|
|
98
|
+
* List of all destPaths to scripts that this XmlFile depends on that are actually loaded into the program.
|
|
73
99
|
* This does not account for parent component scripts.
|
|
74
100
|
* coming from:
|
|
75
101
|
* - script tags
|
|
@@ -102,11 +128,12 @@ export declare class XmlFile {
|
|
|
102
128
|
*/
|
|
103
129
|
get componentName(): SGToken;
|
|
104
130
|
/**
|
|
105
|
-
* Does this file need to be transpiled?
|
|
131
|
+
* Does this file need to be transpiled?
|
|
132
|
+
* @deprecated use the `.editor` property to push changes to the file, which will force transpilation
|
|
106
133
|
*/
|
|
107
134
|
get needsTranspiled(): boolean;
|
|
108
135
|
set needsTranspiled(value: boolean);
|
|
109
|
-
|
|
136
|
+
_needsTranspiled: boolean;
|
|
110
137
|
/**
|
|
111
138
|
* The AST for this file
|
|
112
139
|
*/
|
|
@@ -120,6 +147,10 @@ export declare class XmlFile {
|
|
|
120
147
|
* @param fileContents the xml source code to parse
|
|
121
148
|
*/
|
|
122
149
|
parse(fileContents: string): void;
|
|
150
|
+
/**
|
|
151
|
+
* Generate the code, map, and typedef for this file
|
|
152
|
+
*/
|
|
153
|
+
serialize(): SerializedCodeFile;
|
|
123
154
|
/**
|
|
124
155
|
* Collect all bs: comment flags
|
|
125
156
|
*/
|
|
@@ -127,11 +158,17 @@ export declare class XmlFile {
|
|
|
127
158
|
tokenType: TokenType;
|
|
128
159
|
}>): void;
|
|
129
160
|
private dependencyGraph;
|
|
161
|
+
onDependenciesChanged(): void;
|
|
130
162
|
/**
|
|
131
163
|
* Attach the file to the dependency graph so it can monitor changes.
|
|
132
164
|
* Also notify the dependency graph of our current dependencies so other dependents can be notified.
|
|
165
|
+
* @deprecated this does nothing. This functionality is now handled by the file api and will be deleted in v1
|
|
133
166
|
*/
|
|
134
167
|
attachDependencyGraph(dependencyGraph: DependencyGraph): void;
|
|
168
|
+
/**
|
|
169
|
+
* The list of files that this file depends on
|
|
170
|
+
*/
|
|
171
|
+
get dependencies(): string[];
|
|
135
172
|
/**
|
|
136
173
|
* A slight hack. Gives the Program a way to support multiple components with the same name
|
|
137
174
|
* without causing major issues. A value of 0 will be ignored as part of the dependency graph key.
|
|
@@ -143,9 +180,10 @@ export declare class XmlFile {
|
|
|
143
180
|
/**
|
|
144
181
|
* The key used in the dependency graph for this file.
|
|
145
182
|
* If we have a component name, we will use that so we can be discoverable by child components.
|
|
146
|
-
* If we don't have a component name, use the
|
|
183
|
+
* If we don't have a component name, use the destPath so at least we can self-validate
|
|
147
184
|
*/
|
|
148
185
|
get dependencyGraphKey(): string;
|
|
186
|
+
set dependencyGraphKey(value: string);
|
|
149
187
|
/**
|
|
150
188
|
* The key used in the dependency graph for this component's parent.
|
|
151
189
|
* If we have aparent, we will use that. If we don't, this will return undefined
|
|
@@ -154,7 +192,7 @@ export declare class XmlFile {
|
|
|
154
192
|
/**
|
|
155
193
|
* Determines if this xml file has a reference to the specified file (or if it's itself)
|
|
156
194
|
*/
|
|
157
|
-
doesReferenceFile(file:
|
|
195
|
+
doesReferenceFile(file: File): boolean;
|
|
158
196
|
/**
|
|
159
197
|
* Get the parent component (the component this component extends)
|
|
160
198
|
*/
|
|
@@ -164,7 +202,7 @@ export declare class XmlFile {
|
|
|
164
202
|
/**
|
|
165
203
|
* Walk up the ancestor chain and aggregate all of the script tag imports
|
|
166
204
|
*/
|
|
167
|
-
getAncestorScriptTagImports():
|
|
205
|
+
getAncestorScriptTagImports(): FileReference[];
|
|
168
206
|
/**
|
|
169
207
|
* Remove this file from the dependency graph as a node
|
|
170
208
|
*/
|
package/dist/files/XmlFile.js
CHANGED
|
@@ -5,24 +5,19 @@ const path = require("path");
|
|
|
5
5
|
const source_map_1 = require("source-map");
|
|
6
6
|
const DiagnosticMessages_1 = require("../DiagnosticMessages");
|
|
7
7
|
const util_1 = require("../util");
|
|
8
|
+
const util_2 = require("../util");
|
|
8
9
|
const SGParser_1 = require("../parser/SGParser");
|
|
9
10
|
const chalk_1 = require("chalk");
|
|
10
11
|
const Cache_1 = require("../Cache");
|
|
11
12
|
const CommentFlagProcessor_1 = require("../CommentFlagProcessor");
|
|
12
13
|
const TranspileState_1 = require("../parser/TranspileState");
|
|
13
14
|
class XmlFile {
|
|
14
|
-
constructor(
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* Create a new instance of BrsFile
|
|
17
17
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
*/
|
|
22
|
-
pkgPath, program) {
|
|
23
|
-
this.srcPath = srcPath;
|
|
24
|
-
this.pkgPath = pkgPath;
|
|
25
|
-
this.program = program;
|
|
18
|
+
constructor(options) {
|
|
19
|
+
var _a;
|
|
20
|
+
this.type = 'XmlFile';
|
|
26
21
|
this.cache = new Cache_1.Cache();
|
|
27
22
|
/**
|
|
28
23
|
* Indicates whether this file needs to be validated.
|
|
@@ -40,7 +35,6 @@ class XmlFile {
|
|
|
40
35
|
//TODO implement the xml CDATA parsing, which would populate this list
|
|
41
36
|
this.functionCalls = [];
|
|
42
37
|
this.functionScopes = [];
|
|
43
|
-
this._needsTranspiled = false;
|
|
44
38
|
/**
|
|
45
39
|
* A slight hack. Gives the Program a way to support multiple components with the same name
|
|
46
40
|
* without causing major issues. A value of 0 will be ignored as part of the dependency graph key.
|
|
@@ -49,11 +43,37 @@ class XmlFile {
|
|
|
49
43
|
* have the following dependency graph keys: ["component:CustomGrid", "component:CustomGrid[1]", "component:CustomGrid[2]"]
|
|
50
44
|
*/
|
|
51
45
|
this.dependencyGraphIndex = -1;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
this.
|
|
55
|
-
this.pkgPath.
|
|
56
|
-
|
|
46
|
+
if (options) {
|
|
47
|
+
this.srcPath = (0, util_2.standardizePath) `${options.srcPath}`;
|
|
48
|
+
this.destPath = (0, util_2.standardizePath) `${options.destPath}`;
|
|
49
|
+
this.pkgPath = (0, util_2.standardizePath) `${(_a = options.pkgPath) !== null && _a !== void 0 ? _a : options.destPath}`;
|
|
50
|
+
this.program = options.program;
|
|
51
|
+
this.extension = path.extname(this.srcPath).toLowerCase();
|
|
52
|
+
this.possibleCodebehindDestPaths = [
|
|
53
|
+
this.pkgPath.replace(/\.xml$/, '.bs'),
|
|
54
|
+
this.pkgPath.replace(/\.xml$/, '.brs')
|
|
55
|
+
];
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The absolute path to the source location for this file
|
|
60
|
+
* @deprecated use `srcPath` instead
|
|
61
|
+
*/
|
|
62
|
+
get pathAbsolute() {
|
|
63
|
+
return this.srcPath;
|
|
64
|
+
}
|
|
65
|
+
set pathAbsolute(value) {
|
|
66
|
+
this.srcPath = value;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* The list of possible autoImport codebehind pkg paths.
|
|
70
|
+
* @deprecated use `possibleCodebehindDestPaths` instead.
|
|
71
|
+
*/
|
|
72
|
+
get possibleCodebehindPkgPaths() {
|
|
73
|
+
return this.possibleCodebehindDestPaths;
|
|
74
|
+
}
|
|
75
|
+
set possibleCodebehindPkgPaths(value) {
|
|
76
|
+
this.possibleCodebehindDestPaths = value;
|
|
57
77
|
}
|
|
58
78
|
/**
|
|
59
79
|
* The list of script imports delcared in the XML of this file.
|
|
@@ -64,7 +84,7 @@ class XmlFile {
|
|
|
64
84
|
.map(tag => (Object.assign(Object.assign({}, tag), { sourceFile: this })));
|
|
65
85
|
}
|
|
66
86
|
/**
|
|
67
|
-
* List of all
|
|
87
|
+
* List of all `destPath` values pointing to scripts that this XmlFile depends on, regardless of whether they are loaded in the program or not.
|
|
68
88
|
* This includes own dependencies and all parent compoent dependencies
|
|
69
89
|
* coming from:
|
|
70
90
|
* - script tags
|
|
@@ -78,7 +98,7 @@ class XmlFile {
|
|
|
78
98
|
});
|
|
79
99
|
}
|
|
80
100
|
/**
|
|
81
|
-
* List of all
|
|
101
|
+
* List of all destPaths to scripts that this XmlFile depends on directly, regardless of whether they are loaded in the program or not.
|
|
82
102
|
* This does not account for parent component scripts
|
|
83
103
|
* coming from:
|
|
84
104
|
* - script tags
|
|
@@ -92,7 +112,7 @@ class XmlFile {
|
|
|
92
112
|
});
|
|
93
113
|
}
|
|
94
114
|
/**
|
|
95
|
-
* List of all
|
|
115
|
+
* List of all destPaths to scripts that this XmlFile depends on that are actually loaded into the program.
|
|
96
116
|
* This does not account for parent component scripts.
|
|
97
117
|
* coming from:
|
|
98
118
|
* - script tags
|
|
@@ -107,7 +127,7 @@ class XmlFile {
|
|
|
107
127
|
let result = [];
|
|
108
128
|
let filesInProgram = this.program.getFiles(allDependencies);
|
|
109
129
|
for (let file of filesInProgram) {
|
|
110
|
-
result.push(file.
|
|
130
|
+
result.push(file.destPath);
|
|
111
131
|
}
|
|
112
132
|
this.logDebug('computed allAvailableScriptImports', () => result);
|
|
113
133
|
return result;
|
|
@@ -136,12 +156,15 @@ class XmlFile {
|
|
|
136
156
|
return (_a = this.parser) === null || _a === void 0 ? void 0 : _a.references.name;
|
|
137
157
|
}
|
|
138
158
|
/**
|
|
139
|
-
* Does this file need to be transpiled?
|
|
159
|
+
* Does this file need to be transpiled?
|
|
160
|
+
* @deprecated use the `.editor` property to push changes to the file, which will force transpilation
|
|
140
161
|
*/
|
|
141
162
|
get needsTranspiled() {
|
|
142
163
|
var _a, _b, _c;
|
|
143
|
-
|
|
144
|
-
|
|
164
|
+
if (this._needsTranspiled !== undefined) {
|
|
165
|
+
return this._needsTranspiled;
|
|
166
|
+
}
|
|
167
|
+
return !!(((_a = this.editor) === null || _a === void 0 ? void 0 : _a.hasChanges) || ((_c = (_b = this.ast.componentElement) === null || _b === void 0 ? void 0 : _b.scriptElements) === null || _c === void 0 ? void 0 : _c.some(script => { var _a, _b; return ((_a = script.type) === null || _a === void 0 ? void 0 : _a.indexOf('brighterscript')) > 0 || ((_b = script.uri) === null || _b === void 0 ? void 0 : _b.endsWith('.bs')); })));
|
|
145
168
|
}
|
|
146
169
|
set needsTranspiled(value) {
|
|
147
170
|
this._needsTranspiled = value;
|
|
@@ -158,10 +181,21 @@ class XmlFile {
|
|
|
158
181
|
*/
|
|
159
182
|
parse(fileContents) {
|
|
160
183
|
this.fileContents = fileContents;
|
|
161
|
-
this.parser.parse(this.
|
|
184
|
+
this.parser.parse(this.destPath, fileContents);
|
|
162
185
|
this.diagnostics = this.parser.diagnostics.map(diagnostic => (Object.assign(Object.assign({}, diagnostic), { file: this })));
|
|
163
186
|
this.getCommentFlags(this.parser.tokens);
|
|
164
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Generate the code, map, and typedef for this file
|
|
190
|
+
*/
|
|
191
|
+
serialize() {
|
|
192
|
+
var _a;
|
|
193
|
+
const result = this.transpile();
|
|
194
|
+
return {
|
|
195
|
+
code: result === null || result === void 0 ? void 0 : result.code,
|
|
196
|
+
map: (_a = result === null || result === void 0 ? void 0 : result.map) === null || _a === void 0 ? void 0 : _a.toString()
|
|
197
|
+
};
|
|
198
|
+
}
|
|
165
199
|
/**
|
|
166
200
|
* Collect all bs: comment flags
|
|
167
201
|
*/
|
|
@@ -180,29 +214,32 @@ class XmlFile {
|
|
|
180
214
|
this.commentFlags.push(...processor.commentFlags);
|
|
181
215
|
this.diagnostics.push(...processor.diagnostics);
|
|
182
216
|
}
|
|
217
|
+
onDependenciesChanged() {
|
|
218
|
+
this.logDebug('clear cache because dependency graph changed');
|
|
219
|
+
this.cache.clear();
|
|
220
|
+
}
|
|
183
221
|
/**
|
|
184
222
|
* Attach the file to the dependency graph so it can monitor changes.
|
|
185
223
|
* Also notify the dependency graph of our current dependencies so other dependents can be notified.
|
|
224
|
+
* @deprecated this does nothing. This functionality is now handled by the file api and will be deleted in v1
|
|
186
225
|
*/
|
|
187
226
|
attachDependencyGraph(dependencyGraph) {
|
|
188
227
|
this.dependencyGraph = dependencyGraph;
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
let dependencies = [
|
|
198
|
-
...this.scriptTagImports.map(x => x.pkgPath.toLowerCase())
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* The list of files that this file depends on
|
|
231
|
+
*/
|
|
232
|
+
get dependencies() {
|
|
233
|
+
var _a, _b;
|
|
234
|
+
const dependencies = [
|
|
235
|
+
...this.scriptTagImports.map(x => x.destPath.toLowerCase())
|
|
199
236
|
];
|
|
200
237
|
//if autoImportComponentScript is enabled, add the .bs and .brs files with the same name
|
|
201
|
-
if (this.program.options.autoImportComponentScript) {
|
|
238
|
+
if ((_b = (_a = this.program) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.autoImportComponentScript) {
|
|
202
239
|
dependencies.push(
|
|
203
240
|
//add the codebehind file dependencies.
|
|
204
241
|
//These are kind of optional, so it doesn't hurt to just add both extension versions
|
|
205
|
-
this.
|
|
242
|
+
this.destPath.replace(/\.xml$/i, '.bs').toLowerCase(), this.destPath.replace(/\.xml$/i, '.brs').toLowerCase());
|
|
206
243
|
}
|
|
207
244
|
const len = dependencies.length;
|
|
208
245
|
for (let i = 0; i < len; i++) {
|
|
@@ -215,12 +252,12 @@ class XmlFile {
|
|
|
215
252
|
if (this.parentComponentName) {
|
|
216
253
|
dependencies.push(this.parentComponentDependencyGraphKey);
|
|
217
254
|
}
|
|
218
|
-
|
|
255
|
+
return dependencies;
|
|
219
256
|
}
|
|
220
257
|
/**
|
|
221
258
|
* The key used in the dependency graph for this file.
|
|
222
259
|
* If we have a component name, we will use that so we can be discoverable by child components.
|
|
223
|
-
* If we don't have a component name, use the
|
|
260
|
+
* If we don't have a component name, use the destPath so at least we can self-validate
|
|
224
261
|
*/
|
|
225
262
|
get dependencyGraphKey() {
|
|
226
263
|
let key;
|
|
@@ -228,7 +265,7 @@ class XmlFile {
|
|
|
228
265
|
key = `component:${this.componentName.text}`.toLowerCase();
|
|
229
266
|
}
|
|
230
267
|
else {
|
|
231
|
-
key = this.
|
|
268
|
+
key = this.destPath.toLowerCase();
|
|
232
269
|
}
|
|
233
270
|
//if our index is not zero, then we are not the primary component with that name, and need to
|
|
234
271
|
//append our index to the dependency graph key as to prevent collisions in the program.
|
|
@@ -237,6 +274,9 @@ class XmlFile {
|
|
|
237
274
|
}
|
|
238
275
|
return key;
|
|
239
276
|
}
|
|
277
|
+
set dependencyGraphKey(value) {
|
|
278
|
+
//do nothing, we override this value in the getter
|
|
279
|
+
}
|
|
240
280
|
/**
|
|
241
281
|
* The key used in the dependency graph for this component's parent.
|
|
242
282
|
* If we have aparent, we will use that. If we don't, this will return undefined
|
|
@@ -253,18 +293,18 @@ class XmlFile {
|
|
|
253
293
|
* Determines if this xml file has a reference to the specified file (or if it's itself)
|
|
254
294
|
*/
|
|
255
295
|
doesReferenceFile(file) {
|
|
256
|
-
return this.cache.getOrAdd(`doesReferenceFile: ${file.
|
|
296
|
+
return this.cache.getOrAdd(`doesReferenceFile: ${file.destPath}`, () => {
|
|
257
297
|
if (file === this) {
|
|
258
298
|
return true;
|
|
259
299
|
}
|
|
260
300
|
let allDependencies = this.getOwnDependencies();
|
|
261
|
-
for (let
|
|
262
|
-
if (
|
|
301
|
+
for (let destPath of allDependencies) {
|
|
302
|
+
if (destPath.toLowerCase() === file.destPath.toLowerCase()) {
|
|
263
303
|
return true;
|
|
264
304
|
}
|
|
265
305
|
}
|
|
266
306
|
//if this is an xml file...do we extend the component it defines?
|
|
267
|
-
if (path.extname(file.
|
|
307
|
+
if (path.extname(file.destPath).toLowerCase() === '.xml') {
|
|
268
308
|
//didn't find any script imports for this file
|
|
269
309
|
return false;
|
|
270
310
|
}
|
|
@@ -319,13 +359,13 @@ class XmlFile {
|
|
|
319
359
|
//add the bslib path to ownImports, it'll get filtered down below
|
|
320
360
|
ownImports.push(this.program.bslibPkgPath);
|
|
321
361
|
let parentImports = (_b = (_a = this.parentComponent) === null || _a === void 0 ? void 0 : _a.getAvailableScriptImports()) !== null && _b !== void 0 ? _b : [];
|
|
322
|
-
let parentMap = parentImports.reduce((map,
|
|
323
|
-
map[
|
|
362
|
+
let parentMap = parentImports.reduce((map, destPath) => {
|
|
363
|
+
map[destPath.toLowerCase()] = true;
|
|
324
364
|
return map;
|
|
325
365
|
}, {});
|
|
326
366
|
//if the XML already has this import, skip this one
|
|
327
367
|
let alreadyThereScriptImportMap = this.scriptTagImports.reduce((map, fileReference) => {
|
|
328
|
-
map[fileReference.
|
|
368
|
+
map[fileReference.destPath.toLowerCase()] = true;
|
|
329
369
|
return map;
|
|
330
370
|
}, {});
|
|
331
371
|
let resultMap = {};
|
|
@@ -346,7 +386,8 @@ class XmlFile {
|
|
|
346
386
|
return result;
|
|
347
387
|
}
|
|
348
388
|
logDebug(...args) {
|
|
349
|
-
|
|
389
|
+
var _a, _b;
|
|
390
|
+
(_b = (_a = this.program) === null || _a === void 0 ? void 0 : _a.logger) === null || _b === void 0 ? void 0 : _b.debug('XmlFile', chalk_1.default.green(this.destPath), ...args);
|
|
350
391
|
}
|
|
351
392
|
/**
|
|
352
393
|
* Convert the brightscript/brighterscript source code into valid brightscript
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XmlFile.js","sourceRoot":"","sources":["../../src/files/XmlFile.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAE7B,2CAAwC;AAExC,8DAA2E;AAG3E,kCAA2B;AAC3B,iDAA0C;AAC1C,iCAA0B;AAC1B,oCAAiC;AAGjC,kEAA+D;AAE/D,6DAA0D;
|
|
1
|
+
{"version":3,"file":"XmlFile.js","sourceRoot":"","sources":["../../src/files/XmlFile.ts"],"names":[],"mappings":"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"}
|