brighterscript 1.0.0-alpha.32 → 1.0.0-alpha.34
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 +45 -0
- package/README.md +2 -2
- package/bsconfig.schema.json +3 -1
- package/dist/CrossScopeValidator.js +11 -11
- package/dist/CrossScopeValidator.js.map +1 -1
- package/dist/DiagnosticManager.js +3 -3
- package/dist/DiagnosticManager.js.map +1 -1
- package/dist/DiagnosticMessages.js +6 -4
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/FunctionScope.js +2 -2
- package/dist/FunctionScope.js.map +1 -1
- package/dist/Program.js +4 -3
- package/dist/Program.js.map +1 -1
- package/dist/astUtils/creators.d.ts +13 -19
- package/dist/astUtils/creators.js +27 -42
- package/dist/astUtils/creators.js.map +1 -1
- package/dist/astUtils/reflection.spec.js +1 -1
- package/dist/astUtils/reflection.spec.js.map +1 -1
- package/dist/astUtils/visitors.spec.js +4 -6
- package/dist/astUtils/visitors.spec.js.map +1 -1
- package/dist/bscPlugin/CallExpressionInfo.js +9 -5
- package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
- package/dist/bscPlugin/SignatureHelpUtil.js +5 -5
- package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +4 -4
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +5 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.js +94 -70
- package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +24 -3
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/definition/DefinitionProvider.js +20 -17
- package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -1
- package/dist/bscPlugin/hover/HoverProcessor.js +4 -4
- package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
- package/dist/bscPlugin/references/ReferencesProvider.js +4 -3
- package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +2 -2
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
- package/dist/bscPlugin/symbols/symbolUtils.js +22 -21
- package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -1
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +4 -4
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.js +32 -25
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.js +84 -76
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.spec.js +78 -0
- package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
- package/dist/bscPlugin/validation/XmlFileValidator.js +4 -3
- package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -1
- package/dist/files/BrsFile.js +42 -32
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +124 -26
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/files/XmlFile.js +4 -1
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/files/XmlFile.spec.js +4 -2
- package/dist/files/XmlFile.spec.js.map +1 -1
- package/dist/globalCallables.js +1 -1
- package/dist/globalCallables.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +6 -4
- package/dist/interfaces.js +3 -3
- package/dist/interfaces.js.map +1 -1
- package/dist/lexer/Lexer.d.ts +10 -1
- package/dist/lexer/Lexer.js +16 -6
- package/dist/lexer/Lexer.js.map +1 -1
- package/dist/lexer/Lexer.spec.js +9 -8
- package/dist/lexer/Lexer.spec.js.map +1 -1
- package/dist/lexer/Token.d.ts +16 -8
- package/dist/lexer/Token.js.map +1 -1
- package/dist/parser/AstNode.d.ts +4 -4
- package/dist/parser/AstNode.js +3 -3
- package/dist/parser/AstNode.js.map +1 -1
- package/dist/parser/BrsTranspileState.d.ts +2 -2
- package/dist/parser/Expression.d.ts +55 -55
- package/dist/parser/Expression.js +95 -101
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.Class.spec.js +59 -59
- package/dist/parser/Parser.Class.spec.js.map +1 -1
- package/dist/parser/Parser.d.ts +5 -1
- package/dist/parser/Parser.js +123 -97
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.js +233 -223
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/SGParser.d.ts +19 -6
- package/dist/parser/SGParser.js +22 -11
- package/dist/parser/SGParser.js.map +1 -1
- package/dist/parser/SGParser.spec.js +4 -4
- package/dist/parser/SGParser.spec.js.map +1 -1
- package/dist/parser/SGTypes.d.ts +6 -6
- package/dist/parser/SGTypes.js +11 -11
- package/dist/parser/SGTypes.js.map +1 -1
- package/dist/parser/Statement.d.ts +100 -102
- package/dist/parser/Statement.js +215 -149
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/Statement.spec.js +89 -3
- package/dist/parser/Statement.spec.js.map +1 -1
- package/dist/parser/TranspileState.d.ts +6 -6
- package/dist/parser/TranspileState.js +29 -12
- package/dist/parser/TranspileState.js.map +1 -1
- package/dist/parser/tests/Parser.spec.d.ts +0 -7
- package/dist/parser/tests/Parser.spec.js +2 -12
- package/dist/parser/tests/Parser.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/For.spec.js +19 -21
- package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/ForEach.spec.js +16 -15
- package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/If.spec.js +219 -97
- package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/While.spec.js +13 -12
- package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
- package/dist/parser/tests/expression/Additive.spec.js +25 -17
- package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
- package/dist/parser/tests/expression/ArrayLiterals.spec.js +51 -38
- package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +51 -38
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/Boolean.spec.js +21 -14
- package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
- package/dist/parser/tests/expression/Call.spec.js +43 -34
- package/dist/parser/tests/expression/Call.spec.js.map +1 -1
- package/dist/parser/tests/expression/Exponential.spec.js +4 -4
- package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
- package/dist/parser/tests/expression/Function.spec.js +53 -44
- package/dist/parser/tests/expression/Function.spec.js.map +1 -1
- package/dist/parser/tests/expression/Indexing.spec.js +50 -37
- package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
- package/dist/parser/tests/expression/Multiplicative.spec.js +8 -8
- package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +37 -37
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/PrefixUnary.spec.js +23 -17
- package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
- package/dist/parser/tests/expression/Primary.spec.js +42 -26
- package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
- package/dist/parser/tests/expression/Relational.spec.js +12 -12
- package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js +12 -11
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TernaryExpression.spec.js +51 -51
- package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TypeExpression.spec.js +15 -15
- package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -1
- package/dist/parser/tests/statement/AssignmentOperators.spec.js +14 -14
- package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
- package/dist/parser/tests/statement/ConstStatement.spec.js +3 -3
- package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Declaration.spec.js +29 -23
- package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
- package/dist/parser/tests/statement/Dim.spec.js +1 -1
- package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
- package/dist/parser/tests/statement/Enum.spec.js +10 -10
- package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
- package/dist/parser/tests/statement/Function.spec.js +36 -35
- package/dist/parser/tests/statement/Function.spec.js.map +1 -1
- package/dist/parser/tests/statement/Increment.spec.js +23 -18
- package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
- package/dist/parser/tests/statement/LibraryStatement.spec.js +6 -6
- package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Misc.spec.js +6 -6
- package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
- package/dist/parser/tests/statement/PrintStatement.spec.js +20 -18
- package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/ReturnStatement.spec.js +13 -12
- package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Set.spec.js +35 -34
- package/dist/parser/tests/statement/Set.spec.js.map +1 -1
- package/dist/parser/tests/statement/Stop.spec.js +3 -3
- package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
- package/dist/roku-types/data.json +81 -15
- package/dist/roku-types/index.d.ts +29 -4
- package/dist/types/ArrayType.js +6 -1
- package/dist/types/ArrayType.js.map +1 -1
- package/dist/types/BuiltInInterfaceAdder.js +1 -1
- package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
- package/dist/types/InheritableType.js.map +1 -1
- package/dist/util.d.ts +46 -26
- package/dist/util.js +168 -59
- package/dist/util.js.map +1 -1
- package/dist/validators/ClassValidator.js +13 -11
- package/dist/validators/ClassValidator.js.map +1 -1
- package/package.json +8 -3
package/dist/files/BrsFile.js
CHANGED
|
@@ -114,13 +114,13 @@ class BrsFile {
|
|
|
114
114
|
get ownScriptImports() {
|
|
115
115
|
var _a, _b;
|
|
116
116
|
const result = (_b = (_a = this.cache) === null || _a === void 0 ? void 0 : _a.getOrAdd('BrsFile_ownScriptImports', () => {
|
|
117
|
-
var _a, _b;
|
|
117
|
+
var _a, _b, _c;
|
|
118
118
|
const result = [];
|
|
119
119
|
for (const statement of (_b = (_a = this._cachedLookups) === null || _a === void 0 ? void 0 : _a.importStatements) !== null && _b !== void 0 ? _b : []) {
|
|
120
120
|
//register import statements
|
|
121
121
|
if ((0, reflection_1.isImportStatement)(statement) && statement.tokens.path) {
|
|
122
122
|
result.push({
|
|
123
|
-
filePathRange: statement.tokens.path.range,
|
|
123
|
+
filePathRange: (_c = statement.tokens.path.location) === null || _c === void 0 ? void 0 : _c.range,
|
|
124
124
|
destPath: util_1.util.getPkgPathFromTarget(this.destPath, statement.filePath),
|
|
125
125
|
sourceFile: this,
|
|
126
126
|
text: statement.tokens.path.text
|
|
@@ -156,8 +156,9 @@ class BrsFile {
|
|
|
156
156
|
* Get the token at the specified position
|
|
157
157
|
*/
|
|
158
158
|
getTokenAt(position) {
|
|
159
|
+
var _a;
|
|
159
160
|
for (let token of this.parser.tokens) {
|
|
160
|
-
if (util_1.util.rangeContains(token.range, position)) {
|
|
161
|
+
if (util_1.util.rangeContains((_a = token.location) === null || _a === void 0 ? void 0 : _a.range, position)) {
|
|
161
162
|
return token;
|
|
162
163
|
}
|
|
163
164
|
}
|
|
@@ -166,8 +167,9 @@ class BrsFile {
|
|
|
166
167
|
* Get the token at the specified position, or the next token
|
|
167
168
|
*/
|
|
168
169
|
getCurrentOrNextTokenAt(position) {
|
|
170
|
+
var _a;
|
|
169
171
|
for (let token of this.parser.tokens) {
|
|
170
|
-
if (util_1.util.comparePositionToRange(position, token.range) < 0) {
|
|
172
|
+
if (util_1.util.comparePositionToRange(position, (_a = token.location) === null || _a === void 0 ? void 0 : _a.range) < 0) {
|
|
171
173
|
return token;
|
|
172
174
|
}
|
|
173
175
|
}
|
|
@@ -179,9 +181,10 @@ class BrsFile {
|
|
|
179
181
|
const handle = new vscode_languageserver_1.CancellationTokenSource();
|
|
180
182
|
let containingNode;
|
|
181
183
|
this.ast.walk((node) => {
|
|
184
|
+
var _a;
|
|
182
185
|
const latestContainer = containingNode;
|
|
183
186
|
//bsc walks depth-first
|
|
184
|
-
if (util_1.util.rangeContains(node.range, position)) {
|
|
187
|
+
if (util_1.util.rangeContains((_a = node.location) === null || _a === void 0 ? void 0 : _a.range, position)) {
|
|
185
188
|
containingNode = node;
|
|
186
189
|
}
|
|
187
190
|
//we had a match before, and don't now. this means we've finished walking down the whole way, and found our match
|
|
@@ -252,12 +255,14 @@ class BrsFile {
|
|
|
252
255
|
//tokenize the input file
|
|
253
256
|
let lexer = this.program.logger.time('debug', ['lexer.lex', chalk_1.default.green(this.srcPath)], () => {
|
|
254
257
|
return Lexer_1.Lexer.scan(fileContents, {
|
|
255
|
-
includeWhitespace: false
|
|
258
|
+
includeWhitespace: false,
|
|
259
|
+
srcPath: this.srcPath
|
|
256
260
|
});
|
|
257
261
|
});
|
|
258
262
|
this.getCommentFlags(lexer.tokens);
|
|
259
263
|
this.program.logger.time(Logger_1.LogLevel.debug, ['parser.parse', chalk_1.default.green(this.srcPath)], () => {
|
|
260
264
|
this._parser = Parser_1.Parser.parse(lexer.tokens, {
|
|
265
|
+
srcPath: this.srcPath,
|
|
261
266
|
mode: this.parseMode,
|
|
262
267
|
logger: this.program.logger,
|
|
263
268
|
bsConsts: (0, Manifest_1.getBsConst)(this.program.getManifest())
|
|
@@ -318,24 +323,24 @@ class BrsFile {
|
|
|
318
323
|
* @param tokens - an array of tokens of which to find `TokenKind.Comment` from
|
|
319
324
|
*/
|
|
320
325
|
getCommentFlags(tokens) {
|
|
321
|
-
var _a, _b;
|
|
326
|
+
var _a, _b, _c;
|
|
322
327
|
const processor = new CommentFlagProcessor_1.CommentFlagProcessor(this, ['rem', `'`], DiagnosticMessages_1.diagnosticCodes, [DiagnosticMessages_1.DiagnosticCodeMap.unknownDiagnosticCode]);
|
|
323
328
|
this.commentFlags = [];
|
|
324
329
|
for (let lexerToken of tokens) {
|
|
325
330
|
for (let triviaToken of (_a = lexerToken.leadingTrivia) !== null && _a !== void 0 ? _a : []) {
|
|
326
331
|
if (triviaToken.kind === TokenKind_1.TokenKind.Comment) {
|
|
327
|
-
processor.tryAdd(triviaToken.text, triviaToken.range);
|
|
332
|
+
processor.tryAdd(triviaToken.text, (_b = triviaToken.location) === null || _b === void 0 ? void 0 : _b.range);
|
|
328
333
|
}
|
|
329
334
|
}
|
|
330
335
|
}
|
|
331
336
|
this.commentFlags.push(...processor.commentFlags);
|
|
332
|
-
(
|
|
337
|
+
(_c = this.program) === null || _c === void 0 ? void 0 : _c.diagnostics.register(processor.diagnostics);
|
|
333
338
|
}
|
|
334
339
|
/**
|
|
335
340
|
* Create a scope for every function in this file
|
|
336
341
|
*/
|
|
337
342
|
createFunctionScopes() {
|
|
338
|
-
var _a, _b, _c;
|
|
343
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
339
344
|
//find every function
|
|
340
345
|
let functions = this._cachedLookups.functionExpressions;
|
|
341
346
|
//create a functionScope for every function
|
|
@@ -355,8 +360,8 @@ class BrsFile {
|
|
|
355
360
|
//add every parameter
|
|
356
361
|
for (let param of func.parameters) {
|
|
357
362
|
scope.variableDeclarations.push({
|
|
358
|
-
nameRange: param.tokens.name.range,
|
|
359
|
-
lineIndex: (
|
|
363
|
+
nameRange: (_a = param.tokens.name.location) === null || _a === void 0 ? void 0 : _a.range,
|
|
364
|
+
lineIndex: (_c = (_b = param.tokens.name.location) === null || _b === void 0 ? void 0 : _b.range) === null || _c === void 0 ? void 0 : _c.start.line,
|
|
360
365
|
name: param.tokens.name.text,
|
|
361
366
|
getType: () => {
|
|
362
367
|
return param.getType({ flags: 2 /* SymbolTypeFlag.typetime */ });
|
|
@@ -364,22 +369,22 @@ class BrsFile {
|
|
|
364
369
|
});
|
|
365
370
|
}
|
|
366
371
|
//add all of ForEachStatement loop varibales
|
|
367
|
-
(
|
|
372
|
+
(_d = func.body) === null || _d === void 0 ? void 0 : _d.walk((0, visitors_1.createVisitor)({
|
|
368
373
|
ForEachStatement: (stmt) => {
|
|
369
|
-
var _a;
|
|
374
|
+
var _a, _b, _c;
|
|
370
375
|
scope.variableDeclarations.push({
|
|
371
|
-
nameRange: stmt.tokens.item.range,
|
|
372
|
-
lineIndex: (
|
|
376
|
+
nameRange: (_a = stmt.tokens.item.location) === null || _a === void 0 ? void 0 : _a.range,
|
|
377
|
+
lineIndex: (_c = (_b = stmt.tokens.item.location) === null || _b === void 0 ? void 0 : _b.range) === null || _c === void 0 ? void 0 : _c.start.line,
|
|
373
378
|
name: stmt.tokens.item.text,
|
|
374
379
|
getType: () => DynamicType_1.DynamicType.instance //TODO: Infer types from array
|
|
375
380
|
});
|
|
376
381
|
},
|
|
377
382
|
LabelStatement: (stmt) => {
|
|
378
|
-
var _a;
|
|
383
|
+
var _a, _b, _c;
|
|
379
384
|
const { name: identifier } = stmt.tokens;
|
|
380
385
|
scope.labelStatements.push({
|
|
381
|
-
nameRange: identifier.range,
|
|
382
|
-
lineIndex: (
|
|
386
|
+
nameRange: (_a = identifier.location) === null || _a === void 0 ? void 0 : _a.range,
|
|
387
|
+
lineIndex: (_c = (_b = identifier.location) === null || _b === void 0 ? void 0 : _b.range) === null || _c === void 0 ? void 0 : _c.start.line,
|
|
383
388
|
name: identifier.text
|
|
384
389
|
});
|
|
385
390
|
}
|
|
@@ -399,8 +404,8 @@ class BrsFile {
|
|
|
399
404
|
if (scope) {
|
|
400
405
|
const variableName = statement.tokens.name;
|
|
401
406
|
scope.variableDeclarations.push({
|
|
402
|
-
nameRange: variableName.range,
|
|
403
|
-
lineIndex: (
|
|
407
|
+
nameRange: (_e = variableName.location) === null || _e === void 0 ? void 0 : _e.range,
|
|
408
|
+
lineIndex: (_g = (_f = variableName.location) === null || _f === void 0 ? void 0 : _f.range) === null || _g === void 0 ? void 0 : _g.start.line,
|
|
404
409
|
name: variableName.text,
|
|
405
410
|
getType: () => {
|
|
406
411
|
return statement.getType({ flags: 1 /* SymbolTypeFlag.runtime */ });
|
|
@@ -415,7 +420,7 @@ class BrsFile {
|
|
|
415
420
|
return this.staticCallables;
|
|
416
421
|
}
|
|
417
422
|
return this.cache.getOrAdd(`BrsFile_callables`, () => {
|
|
418
|
-
var _a, _b, _c, _d, _e;
|
|
423
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
419
424
|
const callables = [];
|
|
420
425
|
for (let statement of (_a = this._cachedLookups.functionStatements) !== null && _a !== void 0 ? _a : []) {
|
|
421
426
|
//extract the parameters
|
|
@@ -434,10 +439,10 @@ class BrsFile {
|
|
|
434
439
|
callables.push({
|
|
435
440
|
isSub: ((_c = statement.func.tokens.functionType) === null || _c === void 0 ? void 0 : _c.text.toLowerCase()) === 'sub',
|
|
436
441
|
name: (_d = statement.tokens.name) === null || _d === void 0 ? void 0 : _d.text,
|
|
437
|
-
nameRange: (_e = statement.tokens.name) === null || _e === void 0 ? void 0 : _e.range,
|
|
442
|
+
nameRange: (_f = (_e = statement.tokens.name) === null || _e === void 0 ? void 0 : _e.location) === null || _f === void 0 ? void 0 : _f.range,
|
|
438
443
|
file: this,
|
|
439
444
|
params: params,
|
|
440
|
-
range: statement.func.range,
|
|
445
|
+
range: (_g = statement.func.location) === null || _g === void 0 ? void 0 : _g.range,
|
|
441
446
|
type: funcType,
|
|
442
447
|
getName: statement.getName.bind(statement),
|
|
443
448
|
hasNamespace: !!statement.findAncestor(reflection_1.isNamespaceStatement),
|
|
@@ -479,8 +484,9 @@ class BrsFile {
|
|
|
479
484
|
getNamespaceStatementForPosition(position) {
|
|
480
485
|
if (position) {
|
|
481
486
|
return this.cache.getOrAdd(`namespaceStatementForPosition-${position.line}:${position.character}`, () => {
|
|
487
|
+
var _a;
|
|
482
488
|
for (const statement of this._cachedLookups.namespaceStatements) {
|
|
483
|
-
if (util_1.util.rangeContains(statement.range, position)) {
|
|
489
|
+
if (util_1.util.rangeContains((_a = statement.location) === null || _a === void 0 ? void 0 : _a.range, position)) {
|
|
484
490
|
return statement;
|
|
485
491
|
}
|
|
486
492
|
}
|
|
@@ -659,14 +665,15 @@ class BrsFile {
|
|
|
659
665
|
* Get the token closest to the position. if no token is found, the previous token is returned
|
|
660
666
|
*/
|
|
661
667
|
getClosestToken(position) {
|
|
668
|
+
var _a, _b;
|
|
662
669
|
let tokens = this.parser.tokens;
|
|
663
670
|
for (let i = 0; i < tokens.length; i++) {
|
|
664
671
|
let token = tokens[i];
|
|
665
|
-
if (util_1.util.rangeContains(token.range, position)) {
|
|
672
|
+
if (util_1.util.rangeContains((_a = token.location) === null || _a === void 0 ? void 0 : _a.range, position)) {
|
|
666
673
|
return token;
|
|
667
674
|
}
|
|
668
675
|
//if the position less than this token range, then this position touches no token,
|
|
669
|
-
if (util_1.util.positionIsGreaterThanRange(position, token.range) === false) {
|
|
676
|
+
if (util_1.util.positionIsGreaterThanRange(position, (_b = token.location) === null || _b === void 0 ? void 0 : _b.range) === false) {
|
|
670
677
|
let t = tokens[i - 1];
|
|
671
678
|
//return the token or the first token
|
|
672
679
|
return t ? t : tokens[0];
|
|
@@ -712,13 +719,15 @@ class BrsFile {
|
|
|
712
719
|
let results = [];
|
|
713
720
|
//get class fields and members
|
|
714
721
|
const statementHandler = (statement) => {
|
|
722
|
+
var _a;
|
|
715
723
|
if (statement.getName(file.parseMode).toLowerCase() === textToSearchFor) {
|
|
716
|
-
results.push(util_1.util.
|
|
724
|
+
results.push(util_1.util.createLocationFromRange(util_1.util.pathToUri(file.srcPath), (_a = statement.location) === null || _a === void 0 ? void 0 : _a.range));
|
|
717
725
|
}
|
|
718
726
|
};
|
|
719
727
|
const fieldStatementHandler = (statement) => {
|
|
728
|
+
var _a;
|
|
720
729
|
if (statement.tokens.name.text.toLowerCase() === textToSearchFor) {
|
|
721
|
-
results.push(util_1.util.
|
|
730
|
+
results.push(util_1.util.createLocationFromRange(util_1.util.pathToUri(file.srcPath), (_a = statement.location) === null || _a === void 0 ? void 0 : _a.range));
|
|
722
731
|
}
|
|
723
732
|
};
|
|
724
733
|
file.parser.ast.walk((0, visitors_1.createVisitor)({
|
|
@@ -792,7 +801,7 @@ class BrsFile {
|
|
|
792
801
|
* Convert the brightscript/brighterscript source code into valid brightscript
|
|
793
802
|
*/
|
|
794
803
|
transpile() {
|
|
795
|
-
var _a;
|
|
804
|
+
var _a, _b;
|
|
796
805
|
const state = new BrsTranspileState_1.BrsTranspileState(this);
|
|
797
806
|
state.editor = (_a = this.editor) !== null && _a !== void 0 ? _a : new Editor_1.Editor();
|
|
798
807
|
let transpileResult;
|
|
@@ -800,7 +809,7 @@ class BrsFile {
|
|
|
800
809
|
const astTranspile = this.ast.transpile(state);
|
|
801
810
|
const trailingComments = [];
|
|
802
811
|
if (util_1.util.hasLeadingComments(this.parser.eofToken)) {
|
|
803
|
-
if (util_1.util.isLeadingCommentOnSameLine(this.ast.statements[this.ast.statements.length - 1], this.parser.eofToken)) {
|
|
812
|
+
if (util_1.util.isLeadingCommentOnSameLine((_b = this.ast.statements[this.ast.statements.length - 1]) === null || _b === void 0 ? void 0 : _b.location, this.parser.eofToken)) {
|
|
804
813
|
trailingComments.push(' ');
|
|
805
814
|
}
|
|
806
815
|
else {
|
|
@@ -1085,6 +1094,7 @@ class BrsFile {
|
|
|
1085
1094
|
});
|
|
1086
1095
|
}
|
|
1087
1096
|
buildNamespaceLookup() {
|
|
1097
|
+
var _a;
|
|
1088
1098
|
const namespaceLookup = new Map();
|
|
1089
1099
|
for (let namespaceStatement of this._cachedLookups.namespaceStatements) {
|
|
1090
1100
|
let nameParts = namespaceStatement.getNameParts();
|
|
@@ -1113,7 +1123,7 @@ class BrsFile {
|
|
|
1113
1123
|
fullNameLower: lowerLoopName,
|
|
1114
1124
|
parentNameLower: parentNameLower,
|
|
1115
1125
|
nameParts: nameParts.slice(0, i),
|
|
1116
|
-
nameRange: namespaceStatement.nameExpression.range,
|
|
1126
|
+
nameRange: (_a = namespaceStatement.nameExpression.location) === null || _a === void 0 ? void 0 : _a.range,
|
|
1117
1127
|
lastPartName: part.text,
|
|
1118
1128
|
lastPartNameLower: lowerPartName,
|
|
1119
1129
|
functionStatements: new Map(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrsFile.js","sourceRoot":"","sources":["../../src/files/BrsFile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BrsFile.js","sourceRoot":"","sources":["../../src/files/BrsFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,6 @@ const IntegerType_1 = require("../types/IntegerType");
|
|
|
10
10
|
const StringType_1 = require("../types/StringType");
|
|
11
11
|
const BrsFile_1 = require("./BrsFile");
|
|
12
12
|
const source_map_1 = require("source-map");
|
|
13
|
-
const Lexer_1 = require("../lexer/Lexer");
|
|
14
13
|
const TokenKind_1 = require("../lexer/TokenKind");
|
|
15
14
|
const DiagnosticMessages_1 = require("../DiagnosticMessages");
|
|
16
15
|
const util_1 = require("../util");
|
|
@@ -1797,7 +1796,7 @@ describe('BrsFile', () => {
|
|
|
1797
1796
|
function doTest(source, expected = source) {
|
|
1798
1797
|
const file = program.setFile('source/main.bs', '');
|
|
1799
1798
|
//override the parser with our locationless parser
|
|
1800
|
-
file['_parser'] = Parser_1.Parser.parse(source, { mode: Parser_1.ParseMode.BrighterScript, trackLocations: false });
|
|
1799
|
+
file['_parser'] = Parser_1.Parser.parse(source, { mode: Parser_1.ParseMode.BrighterScript, trackLocations: false, srcPath: (0, util_1.standardizePath) `${testHelpers_spec_2.rootDir}/source/main.brs` });
|
|
1801
1800
|
program.getScopesForFile(file).forEach(x => x['cache'].clear());
|
|
1802
1801
|
program.validate();
|
|
1803
1802
|
(0, testHelpers_spec_1.expectZeroDiagnostics)(program);
|
|
@@ -2344,33 +2343,95 @@ describe('BrsFile', () => {
|
|
|
2344
2343
|
(0, chai_config_spec_1.expect)(location.line).to.eql(2);
|
|
2345
2344
|
(0, chai_config_spec_1.expect)(location.column).eql(4);
|
|
2346
2345
|
});
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2346
|
+
describe('sourcemap validation', () => {
|
|
2347
|
+
it('computes correct source and position in sourcemap', async () => {
|
|
2348
|
+
program.options.sourceMap = true;
|
|
2349
|
+
const file = program.setFile('source/main.bs', `function abc(name)\n firstName = name\nend function`);
|
|
2350
|
+
let i = 0;
|
|
2350
2351
|
//remove newlines and EOF
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2352
|
+
//set each token to a different file
|
|
2353
|
+
for (const token of file.parser.tokens) {
|
|
2354
|
+
token.location.uri = util_1.default.pathToUri((0, util_1.standardizePath) `${testHelpers_spec_2.rootDir}/source/file${i++}.bs`);
|
|
2355
|
+
}
|
|
2356
|
+
const result = await program.getTranspiledFileContents(file.srcPath);
|
|
2357
|
+
const tokens = file.parser.tokens.filter(x => x.kind !== TokenKind_1.TokenKind.Eof && x.kind !== TokenKind_1.TokenKind.Newline);
|
|
2358
|
+
//load the source map
|
|
2359
|
+
await source_map_1.SourceMapConsumer.with(result.map.toString(), null, (consumer) => {
|
|
2360
|
+
let sourcemapResult = tokens.map(token => {
|
|
2361
|
+
var _a, _b;
|
|
2362
|
+
let originalPosition = consumer.originalPositionFor({
|
|
2363
|
+
//convert token 0-based line to source-map 1-based line for the lookup
|
|
2364
|
+
line: ((_a = token.location) === null || _a === void 0 ? void 0 : _a.range.start.line) + 1,
|
|
2365
|
+
column: (_b = token.location) === null || _b === void 0 ? void 0 : _b.range.start.character
|
|
2366
|
+
});
|
|
2367
|
+
return {
|
|
2368
|
+
kind: token.kind,
|
|
2369
|
+
start: vscode_languageserver_1.Position.create(
|
|
2370
|
+
//convert source-map 1-based line to token 0-based line
|
|
2371
|
+
originalPosition.line - 1, originalPosition.column),
|
|
2372
|
+
source: originalPosition.source
|
|
2373
|
+
};
|
|
2365
2374
|
});
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2375
|
+
(0, chai_config_spec_1.expect)(sourcemapResult).to.eql(tokens.map(token => {
|
|
2376
|
+
var _a;
|
|
2377
|
+
return ({
|
|
2378
|
+
kind: token.kind,
|
|
2379
|
+
start: (_a = token.location) === null || _a === void 0 ? void 0 : _a.range.start,
|
|
2380
|
+
source: util_1.default.uriToPath(token.location.uri)
|
|
2381
|
+
});
|
|
2382
|
+
}));
|
|
2383
|
+
});
|
|
2384
|
+
});
|
|
2385
|
+
it('supports merging AST from one file into another', async () => {
|
|
2386
|
+
program.options.sourceMap = true;
|
|
2387
|
+
const alpha = program.setFile('source/alpha.bs', `
|
|
2388
|
+
function alpha()
|
|
2389
|
+
print "alpha"
|
|
2390
|
+
end function
|
|
2391
|
+
`);
|
|
2392
|
+
const beta = program.setFile('source/beta.bs', `
|
|
2393
|
+
function beta()
|
|
2394
|
+
print "beta"
|
|
2395
|
+
end function
|
|
2396
|
+
`);
|
|
2397
|
+
//merge alpha into beta
|
|
2398
|
+
beta.ast.statements.push(alpha.ast.statements[0]);
|
|
2399
|
+
const result = await program.getTranspiledFileContents(beta.srcPath);
|
|
2400
|
+
(0, chai_config_spec_1.expect)(result.code).to.eql((0, undent_1.default) `
|
|
2401
|
+
function beta()
|
|
2402
|
+
print "beta"
|
|
2403
|
+
end function
|
|
2404
|
+
|
|
2405
|
+
function alpha()
|
|
2406
|
+
print "alpha"
|
|
2407
|
+
end function
|
|
2408
|
+
'//# sourceMappingURL=./beta.brs.map
|
|
2409
|
+
`);
|
|
2410
|
+
//load the source map
|
|
2411
|
+
await source_map_1.SourceMapConsumer.with(result.map.toString(), null, (consumer) => {
|
|
2412
|
+
//prin|t "beta"
|
|
2413
|
+
doTest(1, 8, (0, util_1.standardizePath) `${testHelpers_spec_2.rootDir}/source/beta.bs`, 2, 24);
|
|
2414
|
+
//prin|t "alpha"
|
|
2415
|
+
doTest(5, 8, (0, util_1.standardizePath) `${testHelpers_spec_2.rootDir}/source/alpha.bs`, 2, 24);
|
|
2416
|
+
function doTest(destLine, destChar, srcPath, sourceLine, sourceChar) {
|
|
2417
|
+
let originalPosition = consumer.originalPositionFor({
|
|
2418
|
+
//convert token 0-based line to source-map 1-based line for the lookup
|
|
2419
|
+
line: destLine + 1,
|
|
2420
|
+
column: destChar
|
|
2421
|
+
});
|
|
2422
|
+
(0, chai_config_spec_1.expect)({
|
|
2423
|
+
start: vscode_languageserver_1.Position.create(
|
|
2424
|
+
//convert source-map 1-based line to token 0-based line
|
|
2425
|
+
originalPosition.line - 1, originalPosition.column),
|
|
2426
|
+
source: originalPosition.source
|
|
2427
|
+
}).to.eql({
|
|
2428
|
+
start: vscode_languageserver_1.Position.create(
|
|
2429
|
+
//convert source-map 1-based line to token 0-based line
|
|
2430
|
+
sourceLine, sourceChar),
|
|
2431
|
+
source: srcPath
|
|
2432
|
+
});
|
|
2433
|
+
}
|
|
2372
2434
|
});
|
|
2373
|
-
(0, chai_config_spec_1.expect)(sourcemapResult).to.eql(tokenResult);
|
|
2374
2435
|
});
|
|
2375
2436
|
});
|
|
2376
2437
|
it('handles empty if block', async () => {
|
|
@@ -3022,6 +3083,43 @@ describe('BrsFile', () => {
|
|
|
3022
3083
|
`);
|
|
3023
3084
|
});
|
|
3024
3085
|
});
|
|
3086
|
+
describe('leading and end trivia', () => {
|
|
3087
|
+
it('transpiles leading/end trivia', async () => {
|
|
3088
|
+
await testTranspile(`
|
|
3089
|
+
'comment before function
|
|
3090
|
+
sub test(x) 'comment end of line
|
|
3091
|
+
'comment at start of function
|
|
3092
|
+
print x 'comment at end of line
|
|
3093
|
+
'comment at end of function
|
|
3094
|
+
end sub
|
|
3095
|
+
'comment after function
|
|
3096
|
+
`);
|
|
3097
|
+
});
|
|
3098
|
+
it('allows editing leading trivia', async () => {
|
|
3099
|
+
const mainFile = program.setFile('source/amain.bs', `
|
|
3100
|
+
sub test(x)
|
|
3101
|
+
print x
|
|
3102
|
+
end sub
|
|
3103
|
+
`);
|
|
3104
|
+
program.validate();
|
|
3105
|
+
const funcStmt = mainFile.ast.statements[0];
|
|
3106
|
+
funcStmt.leadingTrivia.push((0, creators_1.createToken)(TokenKind_1.TokenKind.Comment, `'comment before function`), (0, creators_1.createToken)(TokenKind_1.TokenKind.Newline));
|
|
3107
|
+
funcStmt.func.body.statements[0].leadingTrivia.unshift((0, creators_1.createToken)(TokenKind_1.TokenKind.Comment, `'comment after func declaration`));
|
|
3108
|
+
funcStmt.func.body.statements[0].leadingTrivia.push((0, creators_1.createToken)(TokenKind_1.TokenKind.Comment, `'comment at start of function`), (0, creators_1.createToken)(TokenKind_1.TokenKind.Newline));
|
|
3109
|
+
funcStmt.func.endTrivia.push((0, creators_1.createToken)(TokenKind_1.TokenKind.Comment, `'comment at end of function`), (0, creators_1.createToken)(TokenKind_1.TokenKind.Newline));
|
|
3110
|
+
mainFile.parser.eofToken.leadingTrivia.push((0, creators_1.createToken)(TokenKind_1.TokenKind.Comment, `'comment at end of file`));
|
|
3111
|
+
await testTranspile(mainFile, `
|
|
3112
|
+
'comment before function
|
|
3113
|
+
sub test(x)
|
|
3114
|
+
'comment after func declaration
|
|
3115
|
+
'comment at start of function
|
|
3116
|
+
print x
|
|
3117
|
+
'comment at end of function
|
|
3118
|
+
end sub
|
|
3119
|
+
'comment at end of file
|
|
3120
|
+
`);
|
|
3121
|
+
});
|
|
3122
|
+
});
|
|
3025
3123
|
});
|
|
3026
3124
|
describe('callfunc operator', () => {
|
|
3027
3125
|
describe('transpile', () => {
|