brighterscript 0.66.0-alpha.6 → 0.66.0-alpha.8
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 +88 -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/AstValidationSegmenter.d.ts +25 -0
- package/dist/AstValidationSegmenter.js +150 -0
- package/dist/AstValidationSegmenter.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 +8 -1
- package/dist/DiagnosticMessages.js +30 -13
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/LanguageServer.js +7 -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 +107 -38
- package/dist/Program.js +502 -270
- 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 +26 -38
- package/dist/Scope.js +153 -174
- package/dist/Scope.js.map +1 -1
- package/dist/SymbolTable.d.ts +4 -1
- package/dist/SymbolTable.js +19 -7
- package/dist/SymbolTable.js.map +1 -1
- package/dist/XmlScope.d.ts +5 -4
- package/dist/XmlScope.js +16 -14
- 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/reflection.d.ts +9 -4
- package/dist/astUtils/reflection.js +23 -7
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/reflection.spec.js +2 -2
- package/dist/astUtils/reflection.spec.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +14 -3
- package/dist/astUtils/visitors.js +22 -2
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/astUtils/visitors.spec.js +58 -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.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +7 -2
- package/dist/bscPlugin/completions/CompletionsProcessor.js +112 -44
- package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +212 -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 +10 -8
- package/dist/bscPlugin/hover/HoverProcessor.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} +29 -5
- 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 +8 -3
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +5 -9
- package/dist/bscPlugin/validation/ScopeValidator.js +214 -222
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.spec.js +669 -0
- 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 +241 -40
- package/dist/files/BrsFile.Class.spec.js.map +1 -1
- package/dist/files/BrsFile.d.ts +66 -16
- package/dist/files/BrsFile.js +330 -80
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +1134 -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 +1 -1
- package/dist/globalCallables.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +357 -89
- package/dist/interfaces.js +10 -2
- package/dist/interfaces.js.map +1 -1
- package/dist/lexer/Lexer.js +1 -1
- package/dist/lexer/TokenKind.d.ts +1 -0
- package/dist/lexer/TokenKind.js +4 -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 +2 -2
- package/dist/parser/Expression.js +23 -19
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.Class.spec.js +103 -0
- package/dist/parser/Parser.Class.spec.js.map +1 -1
- package/dist/parser/Parser.js +61 -13
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.js +227 -1
- 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.d.ts +12 -5
- package/dist/parser/Statement.js +56 -26
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +16 -16
- 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/expression/UnaryExpression.spec.d.ts +1 -0
- package/dist/parser/tests/expression/UnaryExpression.spec.js +52 -0
- package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -0
- package/dist/parser/tests/statement/ConstStatement.spec.js +90 -16
- 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 +35 -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 +20 -12
- 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 +98 -193
- package/dist/roku-types/index.d.ts +15 -11
- package/dist/types/ArrayType.d.ts +1 -1
- package/dist/types/ArrayType.js +4 -0
- package/dist/types/ArrayType.js.map +1 -1
- package/dist/types/ArrayType.spec.js +1 -1
- package/dist/types/ArrayType.spec.js.map +1 -1
- package/dist/types/AssociativeArrayType.d.ts +1 -1
- package/dist/types/AssociativeArrayType.js +1 -1
- package/dist/types/AssociativeArrayType.js.map +1 -1
- package/dist/types/BooleanType.d.ts +1 -1
- package/dist/types/BooleanType.js +2 -1
- package/dist/types/BooleanType.js.map +1 -1
- package/dist/types/BscType.d.ts +2 -2
- package/dist/types/BscType.js +30 -9
- package/dist/types/BscType.js.map +1 -1
- package/dist/types/BuiltInInterfaceAdder.d.ts +3 -0
- package/dist/types/BuiltInInterfaceAdder.js +37 -16
- package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
- package/dist/types/BuiltInInterfaceAdder.spec.js +7 -0
- package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -1
- package/dist/types/ClassType.d.ts +4 -3
- package/dist/types/ClassType.js +6 -3
- package/dist/types/ClassType.js.map +1 -1
- package/dist/types/ClassType.spec.js +5 -3
- package/dist/types/ClassType.spec.js.map +1 -1
- package/dist/types/ComponentType.d.ts +1 -1
- package/dist/types/ComponentType.js +3 -0
- package/dist/types/ComponentType.js.map +1 -1
- package/dist/types/DoubleType.js +3 -1
- package/dist/types/DoubleType.js.map +1 -1
- package/dist/types/EnumType.d.ts +1 -1
- package/dist/types/EnumType.js +7 -2
- package/dist/types/EnumType.js.map +1 -1
- package/dist/types/FloatType.js +3 -1
- package/dist/types/FloatType.js.map +1 -1
- package/dist/types/InheritableType.d.ts +7 -4
- package/dist/types/InheritableType.js +67 -3
- package/dist/types/InheritableType.js.map +1 -1
- package/dist/types/IntegerType.js +3 -1
- package/dist/types/IntegerType.js.map +1 -1
- package/dist/types/InterfaceType.d.ts +5 -4
- package/dist/types/InterfaceType.js +5 -12
- package/dist/types/InterfaceType.js.map +1 -1
- package/dist/types/InterfaceType.spec.js +23 -0
- package/dist/types/InterfaceType.spec.js.map +1 -1
- package/dist/types/LongIntegerType.js +3 -1
- package/dist/types/LongIntegerType.js.map +1 -1
- package/dist/types/NamespaceType.d.ts +2 -1
- package/dist/types/NamespaceType.js +3 -0
- package/dist/types/NamespaceType.js.map +1 -1
- package/dist/types/ObjectType.d.ts +1 -1
- package/dist/types/ReferenceType.js +40 -6
- package/dist/types/ReferenceType.js.map +1 -1
- package/dist/types/StringType.js +2 -2
- package/dist/types/StringType.js.map +1 -1
- package/dist/types/TypedFunctionType.d.ts +6 -1
- package/dist/types/TypedFunctionType.js +46 -16
- 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/UnionType.js +8 -0
- package/dist/types/UnionType.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 +3 -0
- package/dist/types/helpers.js +33 -1
- package/dist/types/helpers.js.map +1 -1
- package/dist/util.d.ts +25 -9
- package/dist/util.js +165 -72
- package/dist/util.js.map +1 -1
- package/dist/validators/ClassValidator.js.map +1 -1
- package/package.json +2 -2
- 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/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
## [0.66.0-alpha.8](https://github.com/rokucommunity/brighterscript/compare/v0.66.0-alpha.7...v0.66.0-alpha.8) - 2023-11-27
|
|
10
|
+
### Added
|
|
11
|
+
- Interface optional properties ([#946](https://github.com/rokucommunity/brighterscript/pull/946))
|
|
12
|
+
- ifDraw2d to reRegion interface ([#960](https://github.com/rokucommunity/brighterscript/pull/960))
|
|
13
|
+
### Changed
|
|
14
|
+
- cache `range` and `position` to improve performance ([#940](https://github.com/rokucommunity/brighterscript/pull/940))
|
|
15
|
+
- changes to make use with Plugins easier ([#959](https://github.com/rokucommunity/brighterscript/pull/959))
|
|
16
|
+
### Fixed
|
|
17
|
+
- parsing order for `not` keyword ([#932](https://github.com/rokucommunity/brighterscript/pull/932))
|
|
18
|
+
- class fields using constructors not transpiling correctly ([#933](https://github.com/rokucommunity/brighterscript/pull/933))
|
|
19
|
+
- performance fixes ([#936](https://github.com/rokucommunity/brighterscript/pull/936))
|
|
20
|
+
- validation Performance: File level providedSymbols and `requiredSymbols` ([#944](https://github.com/rokucommunity/brighterscript/pull/944))
|
|
21
|
+
- interface & class support for go-to-definition ([#948](https://github.com/rokucommunity/brighterscript/pull/948))
|
|
22
|
+
- fixes using Enums directly in namespaced situations ([#949](https://github.com/rokucommunity/brighterscript/pull/949))
|
|
23
|
+
- completion performance ([#958](https://github.com/rokucommunity/brighterscript/pull/958))
|
|
24
|
+
- param order for AST class constructors for interface/class members ([#954](https://github.com/rokucommunity/brighterscript/pull/954))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## [0.66.0-alpha.7](https://github.com/rokucommunity/brighterscript/compare/v0.66.0-alpha.6...v0.66.0-alpha.7) - 2023-10-16
|
|
29
|
+
### Changed
|
|
30
|
+
- all changes from [v0.65.6](https://github.com/rokucommunity/brighterscript/compare/v0.65.5...v0.65.6) and [v0.65.7](https://github.com/rokucommunity/brighterscript/compare/v0.65.6...v0.65.7)
|
|
31
|
+
- Better multi-scope messages ([#904](https://github.com/rokucommunity/brighterscript/pull/904))
|
|
32
|
+
- Refine type compatibility message ([#908](https://github.com/rokucommunity/brighterscript/pull/908))
|
|
33
|
+
- Allow classes and native components in Typed Arrays ([#919](https://github.com/rokucommunity/brighterscript/pull/919))
|
|
34
|
+
- Fixes some enum validation stuff ([#920](https://github.com/rokucommunity/brighterscript/pull/920))
|
|
35
|
+
- Fixes compatibility of built in types (roArray -> typed arrays) ([#925](https://github.com/rokucommunity/brighterscript/pull/925))
|
|
36
|
+
- Semantic Tokes for Native Components and Type completion in Type Expressions ([#927](https://github.com/rokucommunity/brighterscript/pull/927))
|
|
37
|
+
- Adds callFunc as member method to Custom Components ([#929](https://github.com/rokucommunity/brighterscript/pull/929))
|
|
38
|
+
- Allows scrape-roku-docs to consolidate overloaded methods ([#930](https://github.com/rokucommunity/brighterscript/pull/930))
|
|
39
|
+
- File api ([#408](https://github.com/rokucommunity/brighterscript/pull/408))
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
9
43
|
## [0.66.0-alpha.6](https://github.com/rokucommunity/brighterscript/compare/v0.66.0-alpha.5...v0.66.0-alpha.6) - 2023-09-20
|
|
10
44
|
### Changed
|
|
11
45
|
- Validates DottedSetStatements for type compatibility ([#894](https://github.com/rokucommunity/brighterscript/pull/894))
|
|
@@ -78,6 +112,60 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
78
112
|
## [0.66.0-alpha.0](https://github.com/rokucommunity/brighterscript/compare/v0.65.1...v0.66.0-alpha.0) - 2023-06-09
|
|
79
113
|
### Changed
|
|
80
114
|
- all the type tracking stuff!
|
|
115
|
+
## [0.65.10](https://github.com/rokucommunity/brighterscript/compare/v0.65.9...v0.65.10) - 2023-11-14
|
|
116
|
+
### Changed
|
|
117
|
+
- upgrade to [roku-deploy@3.10.5](https://github.com/rokucommunity/roku-deploy/blob/master/CHANGELOG.md#3105---2023-11-14). Notable changes since 3.10.4:
|
|
118
|
+
- Add better device-info docs ([roku-deploy#128](https://github.com/rokucommunity/roku-deploy/pull/128))
|
|
119
|
+
- Added some more message grabbing logic ([roku-deploy#127](https://github.com/rokucommunity/roku-deploy/pull/127))
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
## [0.65.9](https://github.com/rokucommunity/brighterscript/compare/v0.65.8...v0.65.9) - 2023-11-06
|
|
124
|
+
### Changed
|
|
125
|
+
- upgrade to [roku-deploy@3.10.4](https://github.com/rokucommunity/roku-deploy/blob/master/CHANGELOG.md#3104---2023-11-03). Notable changes since 3.10.3:
|
|
126
|
+
- Enhance getDeviceInfo() method ([roku-deploy#120](https://github.com/rokucommunity/roku-deploy/pull/120))
|
|
127
|
+
### Fixed
|
|
128
|
+
- issue with unary expression parsing ([#938](https://github.com/rokucommunity/brighterscript/pull/938))
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
## [0.65.8](https://github.com/rokucommunity/brighterscript/compare/v0.65.7...v0.65.8) - 2023-10-06
|
|
133
|
+
### Added
|
|
134
|
+
- interface parameter support ([#924](https://github.com/rokucommunity/brighterscript/pull/924))
|
|
135
|
+
### Changed
|
|
136
|
+
- Bump postcss from 8.2.15 to 8.4.31 ([#928](https://github.com/rokucommunity/brighterscript/pull/928))
|
|
137
|
+
### Fixed
|
|
138
|
+
- chore: fix typescript typing for `Deferred` ([#923](https://github.com/rokucommunity/brighterscript/pull/923))
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
## [0.65.7](https://github.com/rokucommunity/brighterscript/compare/v0.65.6...v0.65.7) - 2023-09-28
|
|
143
|
+
### Fixed
|
|
144
|
+
- fix bug in --noproject flag logic ([#922](https://github.com/rokucommunity/brighterscript/pull/922))
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
## [0.65.6](https://github.com/rokucommunity/brighterscript/compare/v0.65.5...v0.65.6) - 2023-09-28
|
|
149
|
+
### Added
|
|
150
|
+
- `noProject` flag to bsc so `bsconfig.json` loading can be skipped entirely even if present ([#868](https://github.com/rokucommunity/brighterscript/pull/868))
|
|
151
|
+
### Changed
|
|
152
|
+
- docs: add some more details to the plugins ([#913](https://github.com/rokucommunity/brighterscript/pull/913))
|
|
153
|
+
- docs: add missing emitDefinitions ([#893](https://github.com/rokucommunity/brighterscript/pull/893))
|
|
154
|
+
### Fixed
|
|
155
|
+
- incorrect quasi location in template string ([#921](https://github.com/rokucommunity/brighterscript/pull/921))
|
|
156
|
+
- `UnaryExpression` transpile for namespace and const ([#914](https://github.com/rokucommunity/brighterscript/pull/914))
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
## [0.65.5](https://github.com/rokucommunity/brighterscript/compare/v0.65.4...v0.65.5) - 2023-09-06
|
|
161
|
+
### Added
|
|
162
|
+
- support overriding bs_const values in bsconfig ([#887](https://github.com/rokucommunity/brighterscript/pull/887))
|
|
163
|
+
- allow optionally specifying bslib destination directory ([#871](https://github.com/rokucommunity/brighterscript/pull/871))
|
|
164
|
+
- Print diagnostic related information ([#867](https://github.com/rokucommunity/brighterscript/pull/867))
|
|
165
|
+
### Fixed
|
|
166
|
+
- ensure consistent insertion of bslib.brs ([#870](https://github.com/rokucommunity/brighterscript/pull/870))
|
|
167
|
+
- Fix crashes in util for null ranges ([#869](https://github.com/rokucommunity/brighterscript/pull/869))
|
|
168
|
+
- Fix tab issue when printing diagnostics ([#865](https://github.com/rokucommunity/brighterscript/pull/865))
|
|
81
169
|
|
|
82
170
|
|
|
83
171
|
|
|
@@ -1719,13 +1807,3 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
1719
1807
|
## [0.1.0](https://github.com/rokucommunity/brighterscript/compare/v0.1.0...v0.1.0) - 2019-08-10
|
|
1720
1808
|
### Changed
|
|
1721
1809
|
- Cloned from [brightscript-language](https://github.com/rokucommunity/brightscript-language)
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
package/README.md
CHANGED
|
@@ -469,6 +469,12 @@ Type: `boolean`
|
|
|
469
469
|
|
|
470
470
|
Emit full paths to files when printing diagnostics to the console. Defaults to `false`.
|
|
471
471
|
|
|
472
|
+
#### `emitDefinitions`
|
|
473
|
+
|
|
474
|
+
Type: `boolean`
|
|
475
|
+
|
|
476
|
+
Emit type definition files (`d.bs`) during transpile. Defaults to `false`.
|
|
477
|
+
|
|
472
478
|
#### `diagnosticFilters`
|
|
473
479
|
|
|
474
480
|
Type: `Array<string | number | {src: string; codes: number[]}`
|
|
@@ -542,6 +548,16 @@ Type: `boolean`
|
|
|
542
548
|
|
|
543
549
|
Allow BrighterScript features (classes, interfaces, etc...) to be included in BrightScript (`.brs`) files, and force those files to be transpiled.
|
|
544
550
|
|
|
551
|
+
#### `bslibDestinationDir`
|
|
552
|
+
|
|
553
|
+
Type: `string`
|
|
554
|
+
|
|
555
|
+
Override the destination directory for the bslib.brs file. Use this if you want
|
|
556
|
+
to customize where the bslib.brs file is located in the staging directory. Note
|
|
557
|
+
that using a location outside of `source` will break scripts inside `source`
|
|
558
|
+
that depend on bslib.brs. Defaults to `source`.
|
|
559
|
+
|
|
560
|
+
|
|
545
561
|
## Ignore errors and warnings on a per-line basis
|
|
546
562
|
In addition to disabling an entire class of errors in `bsconfig.json` by using `ignoreErrorCodes`, you may also disable errors for a subset of the complier rules within a file with the following comment flags:
|
|
547
563
|
- `bs:disable-next-line`
|
package/bsconfig.schema.json
CHANGED
|
@@ -21,6 +21,21 @@
|
|
|
21
21
|
"description": "The root directory of your Roku project. Defaults to the current working directory (or cwd property)",
|
|
22
22
|
"type": "string"
|
|
23
23
|
},
|
|
24
|
+
"manifest": {
|
|
25
|
+
"description": "A entry to modify manifest values",
|
|
26
|
+
"type": "object",
|
|
27
|
+
"properties": {
|
|
28
|
+
"bs_const": {
|
|
29
|
+
"description": "A dictionary of bs_consts to change or add to the manifest. Each entry ",
|
|
30
|
+
"type": "object",
|
|
31
|
+
"patternProperties": {
|
|
32
|
+
"^.+$": {
|
|
33
|
+
"type": ["boolean", "null"]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
24
39
|
"files": {
|
|
25
40
|
"description": "The list of files that should be used in this project. Supports globs. Optionally, you can specify an object with `src` and `dest` properties to move files from one location into a different destination location",
|
|
26
41
|
"default": [
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enforces that a single action can be running at a time
|
|
3
|
+
*/
|
|
4
|
+
export declare class ActionPipeline {
|
|
5
|
+
private workQueue;
|
|
6
|
+
run<T extends Action<any>, R extends Awaited<PromiseLike<ReturnType<T>>>>(action: T): Promise<R>;
|
|
7
|
+
private process;
|
|
8
|
+
private isProcessing;
|
|
9
|
+
}
|
|
10
|
+
export declare type Action<T> = () => T | PromiseLike<T>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ActionPipeline = void 0;
|
|
4
|
+
const deferred_1 = require("./deferred");
|
|
5
|
+
/**
|
|
6
|
+
* Enforces that a single action can be running at a time
|
|
7
|
+
*/
|
|
8
|
+
class ActionPipeline {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.workQueue = [];
|
|
11
|
+
this.isProcessing = false;
|
|
12
|
+
}
|
|
13
|
+
run(action) {
|
|
14
|
+
const work = {
|
|
15
|
+
action: action,
|
|
16
|
+
deferred: new deferred_1.Deferred()
|
|
17
|
+
};
|
|
18
|
+
this.workQueue.push(work);
|
|
19
|
+
this.process();
|
|
20
|
+
return work.deferred.promise;
|
|
21
|
+
}
|
|
22
|
+
process() {
|
|
23
|
+
//if we're already processing,
|
|
24
|
+
if (this.isProcessing) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
while (this.workQueue.length > 0) {
|
|
28
|
+
const work = this.workQueue.shift();
|
|
29
|
+
try {
|
|
30
|
+
const result = Promise.resolve(work.action());
|
|
31
|
+
work.deferred.resolve(result);
|
|
32
|
+
}
|
|
33
|
+
catch (e) {
|
|
34
|
+
work.deferred.reject(e);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.ActionPipeline = ActionPipeline;
|
|
40
|
+
//# sourceMappingURL=ActionPipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionPipeline.js","sourceRoot":"","sources":["../src/ActionPipeline.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAEtC;;GAEG;AACH,MAAa,cAAc;IAA3B;QACY,cAAS,GAAqB,EAAE,CAAC;QA6BjC,iBAAY,GAAG,KAAK,CAAC;IACjC,CAAC;IA5BU,GAAG,CAAuE,MAAS;QACtF,MAAM,IAAI,GAAG;YACT,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,IAAI,mBAAQ,EAAO;SAChC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IACjC,CAAC;IAEO,OAAO;QACX,8BAA8B;QAC9B,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,OAAO;SACV;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI;gBACA,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAC1B,IAAI,CAAC,MAAM,EAAE,CAChB,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aACjC;YAAC,OAAO,CAAC,EAAE;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAC3B;SACJ;IACL,CAAC;CAEJ;AA/BD,wCA+BC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { DottedGetExpression, TypeExpression, VariableExpression } from './parser/Expression';
|
|
2
|
+
import { SymbolTypeFlag } from './SymbolTable';
|
|
3
|
+
import type { TypeChainEntry } from './interfaces';
|
|
4
|
+
import type { AstNode } from './parser/AstNode';
|
|
5
|
+
export declare const InsideSegmentWalkMode: number;
|
|
6
|
+
export interface UnresolvedSymbol {
|
|
7
|
+
typeChain: TypeChainEntry[];
|
|
8
|
+
flags: SymbolTypeFlag;
|
|
9
|
+
endChainFlags: SymbolTypeFlag;
|
|
10
|
+
containingNamespaces: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare class AstValidationSegmenter {
|
|
13
|
+
validatedSegments: Map<AstNode, boolean>;
|
|
14
|
+
segmentsForValidation: AstNode[];
|
|
15
|
+
singleValidationSegments: Set<AstNode>;
|
|
16
|
+
unresolvedSegmentsSymbols: Map<AstNode, Set<UnresolvedSymbol>>;
|
|
17
|
+
ast: AstNode;
|
|
18
|
+
reset(): void;
|
|
19
|
+
processTree(ast: AstNode): void;
|
|
20
|
+
checkExpressionForUnresolved(segment: AstNode, expression: VariableExpression | DottedGetExpression | TypeExpression, assignedSymbols?: Set<string>): boolean;
|
|
21
|
+
private currentNamespaceStatement;
|
|
22
|
+
checkSegmentWalk(segment: AstNode): void;
|
|
23
|
+
getSegments(changedSymbols: Map<SymbolTypeFlag, Set<string>>): AstNode[];
|
|
24
|
+
markSegmentAsValidated(segment: AstNode): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AstValidationSegmenter = exports.InsideSegmentWalkMode = void 0;
|
|
4
|
+
const SymbolTable_1 = require("./SymbolTable");
|
|
5
|
+
const reflection_1 = require("./astUtils/reflection");
|
|
6
|
+
const visitors_1 = require("./astUtils/visitors");
|
|
7
|
+
const util_1 = require("./util");
|
|
8
|
+
// eslint-disable-next-line no-bitwise
|
|
9
|
+
exports.InsideSegmentWalkMode = visitors_1.WalkMode.visitStatements | visitors_1.WalkMode.visitExpressions | visitors_1.WalkMode.recurseChildFunctions;
|
|
10
|
+
class AstValidationSegmenter {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.validatedSegments = new Map();
|
|
13
|
+
this.segmentsForValidation = new Array();
|
|
14
|
+
this.singleValidationSegments = new Set();
|
|
15
|
+
this.unresolvedSegmentsSymbols = new Map();
|
|
16
|
+
}
|
|
17
|
+
reset() {
|
|
18
|
+
this.validatedSegments.clear();
|
|
19
|
+
this.singleValidationSegments.clear();
|
|
20
|
+
this.unresolvedSegmentsSymbols.clear();
|
|
21
|
+
this.segmentsForValidation = [];
|
|
22
|
+
}
|
|
23
|
+
processTree(ast) {
|
|
24
|
+
this.reset();
|
|
25
|
+
ast === null || ast === void 0 ? void 0 : ast.walk((segment) => {
|
|
26
|
+
this.checkSegmentWalk(segment);
|
|
27
|
+
}, {
|
|
28
|
+
walkMode: visitors_1.WalkMode.visitStatements
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
checkExpressionForUnresolved(segment, expression, assignedSymbols) {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
if (!expression || (0, reflection_1.isCommentStatement)(expression)) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
if ((0, reflection_1.isVariableExpression)(expression) && expression.name.text.toLowerCase() === 'm') {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
const flag = util_1.util.isInTypeExpression(expression) ? SymbolTable_1.SymbolTypeFlag.typetime : SymbolTable_1.SymbolTypeFlag.runtime;
|
|
40
|
+
const typeChain = [];
|
|
41
|
+
const options = { flags: flag, onlyCacheResolvedTypes: true, typeChain: typeChain };
|
|
42
|
+
const nodeType = expression.getType(options);
|
|
43
|
+
if (!(nodeType === null || nodeType === void 0 ? void 0 : nodeType.isResolvable())) {
|
|
44
|
+
let symbolsSet;
|
|
45
|
+
if (!(assignedSymbols === null || assignedSymbols === void 0 ? void 0 : assignedSymbols.has(typeChain[0].name.toLowerCase()))) {
|
|
46
|
+
if (!this.unresolvedSegmentsSymbols.has(segment)) {
|
|
47
|
+
symbolsSet = new Set();
|
|
48
|
+
this.unresolvedSegmentsSymbols.set(segment, symbolsSet);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
symbolsSet = this.unresolvedSegmentsSymbols.get(segment);
|
|
52
|
+
}
|
|
53
|
+
symbolsSet.add({ typeChain: typeChain, flags: typeChain[0].flags, endChainFlags: flag, containingNamespaces: (_b = (_a = this.currentNamespaceStatement) === null || _a === void 0 ? void 0 : _a.getNameParts()) === null || _b === void 0 ? void 0 : _b.map(t => t.text) });
|
|
54
|
+
}
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
checkSegmentWalk(segment) {
|
|
60
|
+
if ((0, reflection_1.isNamespaceStatement)(segment) || (0, reflection_1.isBody)(segment) || (0, reflection_1.isCommentStatement)(segment)) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if ((0, reflection_1.isClassStatement)(segment)) {
|
|
64
|
+
if (segment.parentClassName) {
|
|
65
|
+
this.segmentsForValidation.push(segment.parentClassName);
|
|
66
|
+
this.validatedSegments.set(segment.parentClassName, false);
|
|
67
|
+
let foundUnresolvedInSegment = this.checkExpressionForUnresolved(segment.parentClassName, segment.parentClassName);
|
|
68
|
+
if (!foundUnresolvedInSegment) {
|
|
69
|
+
this.singleValidationSegments.add(segment.parentClassName);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if ((0, reflection_1.isInterfaceStatement)(segment)) {
|
|
75
|
+
if (segment.parentInterfaceName) {
|
|
76
|
+
this.segmentsForValidation.push(segment.parentInterfaceName);
|
|
77
|
+
this.validatedSegments.set(segment.parentInterfaceName, false);
|
|
78
|
+
let foundUnresolvedInSegment = this.checkExpressionForUnresolved(segment.parentInterfaceName, segment.parentInterfaceName);
|
|
79
|
+
if (!foundUnresolvedInSegment) {
|
|
80
|
+
this.singleValidationSegments.add(segment.parentInterfaceName);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
this.segmentsForValidation.push(segment);
|
|
86
|
+
this.validatedSegments.set(segment, false);
|
|
87
|
+
let foundUnresolvedInSegment = false;
|
|
88
|
+
const skipper = new visitors_1.ChildrenSkipper();
|
|
89
|
+
const assignedSymbols = new Set();
|
|
90
|
+
this.currentNamespaceStatement = segment.findAncestor(reflection_1.isNamespaceStatement);
|
|
91
|
+
segment.walk((0, visitors_1.createVisitor)({
|
|
92
|
+
AssignmentStatement: (stmt) => {
|
|
93
|
+
assignedSymbols.add(stmt.name.text.toLowerCase());
|
|
94
|
+
},
|
|
95
|
+
FunctionParameterExpression: (expr) => {
|
|
96
|
+
assignedSymbols.add(expr.name.text.toLowerCase());
|
|
97
|
+
},
|
|
98
|
+
VariableExpression: (expr) => {
|
|
99
|
+
if (!assignedSymbols.has(expr.name.text.toLowerCase())) {
|
|
100
|
+
const expressionIsUnresolved = this.checkExpressionForUnresolved(segment, expr, assignedSymbols);
|
|
101
|
+
foundUnresolvedInSegment = expressionIsUnresolved || foundUnresolvedInSegment;
|
|
102
|
+
}
|
|
103
|
+
skipper.skip();
|
|
104
|
+
},
|
|
105
|
+
DottedGetExpression: (expr) => {
|
|
106
|
+
const expressionIsUnresolved = this.checkExpressionForUnresolved(segment, expr, assignedSymbols);
|
|
107
|
+
foundUnresolvedInSegment = expressionIsUnresolved || foundUnresolvedInSegment;
|
|
108
|
+
skipper.skip();
|
|
109
|
+
},
|
|
110
|
+
TypeExpression: (expr) => {
|
|
111
|
+
const expressionIsUnresolved = this.checkExpressionForUnresolved(segment, expr, assignedSymbols);
|
|
112
|
+
foundUnresolvedInSegment = expressionIsUnresolved || foundUnresolvedInSegment;
|
|
113
|
+
skipper.skip();
|
|
114
|
+
}
|
|
115
|
+
}), {
|
|
116
|
+
walkMode: exports.InsideSegmentWalkMode,
|
|
117
|
+
skipChildren: skipper
|
|
118
|
+
});
|
|
119
|
+
if (!foundUnresolvedInSegment) {
|
|
120
|
+
this.singleValidationSegments.add(segment);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
getSegments(changedSymbols) {
|
|
124
|
+
const segmentsToWalkForValidation = [];
|
|
125
|
+
for (const segment of this.segmentsForValidation) {
|
|
126
|
+
const symbolsRequired = this.unresolvedSegmentsSymbols.get(segment);
|
|
127
|
+
const isSingleValidationSegment = this.singleValidationSegments.has(segment);
|
|
128
|
+
const singleValidationSegmentAlreadyValidated = isSingleValidationSegment ? this.validatedSegments.get(segment) : false;
|
|
129
|
+
let segmentNeedsRevalidation = !singleValidationSegmentAlreadyValidated;
|
|
130
|
+
if (symbolsRequired) {
|
|
131
|
+
for (const requiredSymbol of symbolsRequired.values()) {
|
|
132
|
+
const changeSymbolSetForFlag = changedSymbols.get(requiredSymbol.flags);
|
|
133
|
+
if (util_1.util.setContainsUnresolvedSymbol(changeSymbolSetForFlag, requiredSymbol)) {
|
|
134
|
+
segmentsToWalkForValidation.push(segment);
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
else if (segmentNeedsRevalidation) {
|
|
140
|
+
segmentsToWalkForValidation.push(segment);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return segmentsToWalkForValidation;
|
|
144
|
+
}
|
|
145
|
+
markSegmentAsValidated(segment) {
|
|
146
|
+
this.validatedSegments.set(segment, true);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
exports.AstValidationSegmenter = AstValidationSegmenter;
|
|
150
|
+
//# sourceMappingURL=AstValidationSegmenter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AstValidationSegmenter.js","sourceRoot":"","sources":["../src/AstValidationSegmenter.ts"],"names":[],"mappings":"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"}
|
package/dist/BsConfig.d.ts
CHANGED
|
@@ -9,6 +9,13 @@ export interface BsConfig {
|
|
|
9
9
|
* Prefix with a question mark (?) to prevent throwing an exception if the file does not exist.
|
|
10
10
|
*/
|
|
11
11
|
project?: string;
|
|
12
|
+
manifest?: {
|
|
13
|
+
bs_const?: Record<string, boolean | null>;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* when set, bsconfig.json loading is disabled
|
|
17
|
+
*/
|
|
18
|
+
noProject?: boolean;
|
|
12
19
|
/**
|
|
13
20
|
* Relative or absolute path to another bsconfig.json file that this file should import and then override.
|
|
14
21
|
* Prefix with a question mark (?) to prevent throwing an exception if the file does not exist.
|
|
@@ -88,7 +95,7 @@ export interface BsConfig {
|
|
|
88
95
|
emitFullPaths?: boolean;
|
|
89
96
|
/**
|
|
90
97
|
* Emit type definition files (`d.bs`)
|
|
91
|
-
* @default
|
|
98
|
+
* @default false
|
|
92
99
|
*/
|
|
93
100
|
emitDefinitions?: boolean;
|
|
94
101
|
/**
|
|
@@ -152,4 +159,11 @@ export interface BsConfig {
|
|
|
152
159
|
* @default false
|
|
153
160
|
*/
|
|
154
161
|
allowBrighterScriptInBrightScript?: boolean;
|
|
162
|
+
/**
|
|
163
|
+
* Override the destination directory for the bslib.brs file. Use this if
|
|
164
|
+
* you want to customize where the bslib.brs file is located in the staging
|
|
165
|
+
* directory. Note that using a location outside of `source` will break
|
|
166
|
+
* scripts inside `source` that depend on bslib.brs. Defaults to `source`.
|
|
167
|
+
*/
|
|
168
|
+
bslibDestinationDir?: string;
|
|
155
169
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { Range } from 'vscode-languageserver';
|
|
2
|
-
import type {
|
|
2
|
+
import type { File } from './files/File';
|
|
3
|
+
import type { BsDiagnostic, CommentFlag, DiagnosticCode } from './interfaces';
|
|
3
4
|
export declare class CommentFlagProcessor {
|
|
4
5
|
/**
|
|
5
6
|
* The file this processor applies to
|
|
6
7
|
*/
|
|
7
|
-
file:
|
|
8
|
+
file: File;
|
|
8
9
|
/**
|
|
9
10
|
* An array of strings containing the types of text that a comment starts with. (i.e. `REM`, `'`, `<!--`)
|
|
10
11
|
*/
|
|
@@ -21,7 +22,7 @@ export declare class CommentFlagProcessor {
|
|
|
21
22
|
/**
|
|
22
23
|
* The file this processor applies to
|
|
23
24
|
*/
|
|
24
|
-
file:
|
|
25
|
+
file: File,
|
|
25
26
|
/**
|
|
26
27
|
* An array of strings containing the types of text that a comment starts with. (i.e. `REM`, `'`, `<!--`)
|
|
27
28
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommentFlagProcessor.js","sourceRoot":"","sources":["../src/CommentFlagProcessor.ts"],"names":[],"mappings":";;;AACA,6DAA0D;
|
|
1
|
+
{"version":3,"file":"CommentFlagProcessor.js","sourceRoot":"","sources":["../src/CommentFlagProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -744,8 +744,15 @@ export declare let DiagnosticMessages: {
|
|
|
744
744
|
code: number;
|
|
745
745
|
severity: 1;
|
|
746
746
|
};
|
|
747
|
+
incompatibleSymbolDefinition: (symbol: string, scopeName: string) => {
|
|
748
|
+
message: string;
|
|
749
|
+
code: number;
|
|
750
|
+
severity: 1;
|
|
751
|
+
};
|
|
747
752
|
};
|
|
748
|
-
export declare const
|
|
753
|
+
export declare const defaultMaximumTruncationLength = 160;
|
|
754
|
+
export declare function typeCompatibilityMessage(actualTypeString: string, expectedTypeString: string, data: TypeCompatibilityData): string;
|
|
755
|
+
export declare const DiagnosticCodeMap: Record<"genericParserMessage" | "cannotFindName" | "mismatchArgumentCount" | "duplicateFunctionImplementation" | "referencedFileDoesNotExist" | "xmlComponentMissingComponentDeclaration" | "xmlComponentMissingNameAttribute" | "xmlComponentMissingExtendsAttribute" | "xmlGenericParseError" | "unnecessaryScriptImportInChildFromParent" | "overridesAncestorFunction" | "localVarFunctionShadowsParentFunction" | "scriptImportCaseMismatch" | "fileNotReferencedByAnyOtherFile" | "unknownDiagnosticCode" | "scriptSrcCannotBeEmpty" | "expectedIdentifierAfterKeyword" | "missingCallableKeyword" | "expectedValidTypeToFollowAsKeyword" | "bsFeatureNotSupportedInBrsFiles" | "brsConfigJsonIsDeprecated" | "bsConfigJsonHasSyntaxErrors" | "namespacedClassCannotShareNamewithNonNamespacedClass" | "cannotUseOverrideKeywordOnConstructorFunction" | "importStatementMustBeDeclaredAtTopOfFile" | "methodDoesNotExistOnType" | "duplicateIdentifier" | "missingOverrideKeyword" | "duplicateClassDeclaration" | "classCouldNotBeFound" | "expectedClassFieldIdentifier" | "expressionIsNotConstructable" | "expectedKeyword" | "expectedLeftParenAfterCallable" | "expectedNameAfterCallableKeyword" | "expectedLeftParenAfterCallableName" | "tooManyCallableParameters" | "__unused" | "requiredParameterMayNotFollowOptionalParameter" | "expectedNewlineOrColon" | "functionNameCannotEndWithTypeDesignator" | "callableBlockMissingEndKeyword" | "mismatchedEndCallableKeyword" | "expectedParameterNameButFound" | "__unused2" | "cannotUseReservedWordAsIdentifier" | "expectedOperatorAfterIdentifier" | "expectedInlineIfStatement" | "expectedFinalNewline" | "couldNotFindMatchingEndKeyword" | "expectedCatchBlockInTryCatch" | "expectedEndForOrNextToTerminateForLoop" | "expectedInAfterForEach" | "expectedExpressionAfterForEachIn" | "unexpectedColonBeforeIfStatement" | "expectedStringLiteralAfterKeyword" | "keywordMustBeDeclaredAtRootLevel" | "libraryStatementMustBeDeclaredAtTopOfFile" | "expectedEndIfElseIfOrElseToTerminateThenBlock" | "expectedEndTryToTerminateTryCatch" | "expectedEndIfToCloseIfStatement" | "expectedStatementToFollowConditionalCondition" | "expectedStatementToFollowElse" | "consecutiveIncrementDecrementOperatorsAreNotAllowed" | "incrementDecrementOperatorsAreNotAllowedAsResultOfFunctionCall" | "xmlUnexpectedTag" | "expectedStatementOrFunctionCallButReceivedExpression" | "xmlFunctionNotFound" | "xmlInvalidFieldType" | "xmlUnexpectedChildren" | "xmlTagMissingAttribute" | "expectedLabelIdentifierAfterGotoKeyword" | "expectedRightSquareBraceAfterArrayOrObjectIndex" | "expectedPropertyNameAfterPeriod" | "tooManyCallableArguments" | "expectedRightParenAfterFunctionCallArguments" | "unmatchedLeftParenAfterExpression" | "unmatchedLeftSquareBraceAfterArrayLiteral" | "unexpectedAAKey" | "expectedColonBetweenAAKeyAndvalue" | "unmatchedLeftCurlyAfterAALiteral" | "unexpectedToken" | "unexpectedCharacter" | "unterminatedStringAtEndOfLine" | "unterminatedStringAtEndOfFile" | "fractionalHexLiteralsAreNotSupported" | "unexpectedConditionalCompilationString" | "duplicateConstDeclaration" | "constAliasDoesNotExist" | "invalidHashConstValue" | "referencedConstDoesNotExist" | "invalidHashIfValue" | "hashError" | "expectedEqualAfterConstName" | "expectedHashElseIfToCloseHashIf" | "constNameCannotBeReservedWord" | "expectedIdentifier" | "expectedAttributeNameAfterAtSymbol" | "childFieldTypeNotAssignableToBaseProperty" | "classChildMemberDifferentMemberTypeThanAncestor" | "classConstructorMissingSuperCall" | "classConstructorIllegalUseOfMBeforeSuperCall" | "classFieldCannotBeOverridden" | "unusedAnnotation" | "localVarShadowedByScopedFunction" | "scopeFunctionShadowedByBuiltInFunction" | "localVarSameNameAsClass" | "unnecessaryCodebehindScriptImport" | "expectedOpenParenToFollowCallfuncIdentifier" | "expectedToken" | "parameterMayNotHaveSameNameAsNamespace" | "variableMayNotHaveSameNameAsNamespace" | "unterminatedTemplateStringAtEndOfFile" | "unterminatedTemplateExpression" | "duplicateComponentName" | "functionCannotHaveSameNameAsClass" | "missingExceptionVarToFollowCatch" | "missingExceptionExpressionAfterThrowKeyword" | "missingLeftSquareBracketAfterDimIdentifier" | "missingRightSquareBracketAfterDimIdentifier" | "missingExpressionsInDimStatement" | "mismatchedOverriddenMemberVisibility" | "__unused3" | "enumValueMustBeType" | "enumValueIsRequired" | "unknownEnumValue" | "duplicateEnumDeclaration" | "unknownRoSGNode" | "unknownBrightScriptComponent" | "mismatchCreateObjectArgumentCount" | "deprecatedBrightScriptComponent" | "circularReferenceDetected" | "unexpectedStatementOutsideFunction" | "detectedTooDeepFileSource" | "illegalContinueStatement" | "keywordMustBeDeclaredAtNamespaceLevel" | "itemCannotBeUsedAsVariable" | "callfuncHasToManyArgs" | "noOptionalChainingInLeftHandSideOfAssignment" | "itemCannotBeUsedAsType" | "argumentTypeMismatch" | "returnTypeMismatch" | "assignmentTypeMismatch" | "operatorTypeMismatch" | "incompatibleSymbolDefinition", number>;
|
|
749
756
|
export declare let diagnosticCodes: number[];
|
|
750
757
|
export interface DiagnosticInfo {
|
|
751
758
|
message: string;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.diagnosticCodes = exports.DiagnosticCodeMap = exports.DiagnosticMessages = void 0;
|
|
3
|
+
exports.diagnosticCodes = exports.DiagnosticCodeMap = exports.typeCompatibilityMessage = exports.defaultMaximumTruncationLength = exports.DiagnosticMessages = void 0;
|
|
4
4
|
const vscode_languageserver_1 = require("vscode-languageserver");
|
|
5
|
+
const util_1 = require("./util");
|
|
5
6
|
/**
|
|
6
7
|
* An object that keeps track of all possible error messages.
|
|
7
8
|
*/
|
|
@@ -730,19 +731,19 @@ exports.DiagnosticMessages = {
|
|
|
730
731
|
severity: vscode_languageserver_1.DiagnosticSeverity.Error
|
|
731
732
|
}),
|
|
732
733
|
argumentTypeMismatch: (actualTypeString, expectedTypeString, data) => ({
|
|
733
|
-
message: `Argument of type '${actualTypeString}' is not compatible with parameter of type '${expectedTypeString}'${typeCompatibilityMessage(data)}`,
|
|
734
|
+
message: `Argument of type '${actualTypeString}' is not compatible with parameter of type '${expectedTypeString}'${typeCompatibilityMessage(actualTypeString, expectedTypeString, data)}`,
|
|
734
735
|
data: data,
|
|
735
736
|
code: 1141,
|
|
736
737
|
severity: vscode_languageserver_1.DiagnosticSeverity.Error
|
|
737
738
|
}),
|
|
738
739
|
returnTypeMismatch: (actualTypeString, expectedTypeString, data) => ({
|
|
739
|
-
message: `Type '${actualTypeString}' is not compatible with declared return type '${expectedTypeString}'${typeCompatibilityMessage(data)}'`,
|
|
740
|
+
message: `Type '${actualTypeString}' is not compatible with declared return type '${expectedTypeString}'${typeCompatibilityMessage(actualTypeString, expectedTypeString, data)}'`,
|
|
740
741
|
data: data,
|
|
741
742
|
code: 1142,
|
|
742
743
|
severity: vscode_languageserver_1.DiagnosticSeverity.Error
|
|
743
744
|
}),
|
|
744
745
|
assignmentTypeMismatch: (actualTypeString, expectedTypeString, data) => ({
|
|
745
|
-
message: `Type '${actualTypeString}' is not compatible with type '${expectedTypeString}'${typeCompatibilityMessage(data)}`,
|
|
746
|
+
message: `Type '${actualTypeString}' is not compatible with type '${expectedTypeString}'${typeCompatibilityMessage(actualTypeString, expectedTypeString, data)}`,
|
|
746
747
|
data: data,
|
|
747
748
|
code: 1143,
|
|
748
749
|
severity: vscode_languageserver_1.DiagnosticSeverity.Error
|
|
@@ -751,23 +752,39 @@ exports.DiagnosticMessages = {
|
|
|
751
752
|
message: `Operator '${operatorString}' cannot be applied to type${secondType ? 's' : ''} '${firstType}'${secondType ? ` and '${secondType}'` : ''}`,
|
|
752
753
|
code: 1144,
|
|
753
754
|
severity: vscode_languageserver_1.DiagnosticSeverity.Error
|
|
755
|
+
}),
|
|
756
|
+
incompatibleSymbolDefinition: (symbol, scopeName) => ({
|
|
757
|
+
message: `'${symbol}' is incompatible across scope group (${scopeName})`,
|
|
758
|
+
code: 1145,
|
|
759
|
+
severity: vscode_languageserver_1.DiagnosticSeverity.Error
|
|
754
760
|
})
|
|
755
761
|
};
|
|
756
|
-
|
|
757
|
-
|
|
762
|
+
exports.defaultMaximumTruncationLength = 160;
|
|
763
|
+
function typeCompatibilityMessage(actualTypeString, expectedTypeString, data) {
|
|
764
|
+
var _a, _b;
|
|
758
765
|
let message = '';
|
|
759
766
|
if (((_a = data === null || data === void 0 ? void 0 : data.missingFields) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
767
|
+
message = `\n Type '${actualTypeString}' is missing the following members: ` + util_1.default.truncate({
|
|
768
|
+
leadingText: ``,
|
|
769
|
+
trailingText: '',
|
|
770
|
+
itemSeparator: ', ',
|
|
771
|
+
items: data.missingFields,
|
|
772
|
+
partBuilder: (x) => x.name,
|
|
773
|
+
maxLength: exports.defaultMaximumTruncationLength
|
|
774
|
+
});
|
|
763
775
|
}
|
|
764
|
-
if (((
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
776
|
+
else if (((_b = data === null || data === void 0 ? void 0 : data.fieldMismatches) === null || _b === void 0 ? void 0 : _b.length) > 0) {
|
|
777
|
+
message = '. ' + util_1.default.truncate({
|
|
778
|
+
leadingText: `Type '${actualTypeString}' has incompatible members:`,
|
|
779
|
+
items: data.fieldMismatches,
|
|
780
|
+
itemSeparator: '',
|
|
781
|
+
partBuilder: (x) => `\n member "${x.name}" should be '${x.expectedType}' but is '${x.actualType}'`,
|
|
782
|
+
maxLength: exports.defaultMaximumTruncationLength
|
|
783
|
+
});
|
|
768
784
|
}
|
|
769
785
|
return message;
|
|
770
786
|
}
|
|
787
|
+
exports.typeCompatibilityMessage = typeCompatibilityMessage;
|
|
771
788
|
exports.DiagnosticCodeMap = {};
|
|
772
789
|
exports.diagnosticCodes = [];
|
|
773
790
|
for (let key in exports.DiagnosticMessages) {
|