brighterscript 0.51.2 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WalkMode = exports.InternalWalkMode = exports.createVisitor = exports.walk = exports.walkStatements = void 0;
3
+ exports.WalkMode = exports.InternalWalkMode = exports.createVisitor = exports.walkArray = exports.walk = exports.walkStatements = void 0;
4
4
  const reflection_1 = require("./reflection");
5
5
  /**
6
6
  * Walks the statements of a block and descendent sub-blocks, and allow replacing statements
@@ -15,27 +15,27 @@ exports.walkStatements = walkStatements;
15
15
  /**
16
16
  * A helper function for Statement and Expression `walkAll` calls.
17
17
  */
18
- function walk(keyParent, key, visitor, options, parent) {
18
+ function walk(owner, key, visitor, options, parent) {
19
19
  var _a, _b;
20
20
  //stop processing if canceled
21
21
  if ((_a = options.cancel) === null || _a === void 0 ? void 0 : _a.isCancellationRequested) {
22
22
  return;
23
23
  }
24
24
  //the object we're visiting
25
- let element = keyParent[key];
25
+ let element = owner[key];
26
26
  if (!element) {
27
27
  return;
28
28
  }
29
29
  //notify the visitor of this element
30
30
  if (element.visitMode & options.walkMode) {
31
- const result = visitor(element, parent !== null && parent !== void 0 ? parent : keyParent);
31
+ const result = visitor(element, parent !== null && parent !== void 0 ? parent : owner, owner, key);
32
32
  //replace the value on the parent if the visitor returned a Statement or Expression (this is how visitors can edit AST)
33
33
  if (result && ((0, reflection_1.isExpression)(result) || (0, reflection_1.isStatement)(result))) {
34
34
  if (options.editor) {
35
- options.editor.setProperty(keyParent, key, result);
35
+ options.editor.setProperty(owner, key, result);
36
36
  }
37
37
  else {
38
- keyParent[key] = result;
38
+ owner[key] = result;
39
39
  //don't walk the new element
40
40
  return;
41
41
  }
@@ -46,12 +46,27 @@ function walk(keyParent, key, visitor, options, parent) {
46
46
  return;
47
47
  }
48
48
  if (!element.walk) {
49
- throw new Error(`${keyParent.constructor.name}["${String(key)}"]${parent ? ` for ${parent.constructor.name}` : ''} does not contain a "walk" method`);
49
+ throw new Error(`${owner.constructor.name}["${String(key)}"]${parent ? ` for ${parent.constructor.name}` : ''} does not contain a "walk" method`);
50
50
  }
51
51
  //walk the child expressions
52
52
  element.walk(visitor, options);
53
53
  }
54
54
  exports.walk = walk;
55
+ /**
56
+ * Helper for AST elements to walk arrays when visitors might change the array size (to delete/insert items).
57
+ * @param filter a function used to filter items from the array. return true if that item should be walked
58
+ */
59
+ function walkArray(array, visitor, options, parent, filter) {
60
+ for (let i = 0; i < array.length; i++) {
61
+ if (!filter || filter(array[i])) {
62
+ const startLength = array.length;
63
+ walk(array, i, visitor, options, parent);
64
+ //compensate for deleted or added items.
65
+ i += array.length - startLength;
66
+ }
67
+ }
68
+ }
69
+ exports.walkArray = walkArray;
55
70
  /**
56
71
  * Creates an optimized visitor function.
57
72
  * Conventional visitors will need to inspect each incoming Statement/Expression, leading to many if statements.
@@ -66,9 +81,9 @@ function createVisitor(visitor) {
66
81
  if (visitor.ClassMethodStatement) {
67
82
  visitor.MethodStatement = visitor.ClassMethodStatement;
68
83
  }
69
- return ((statement, parent) => {
84
+ return ((statement, parent, owner, key) => {
70
85
  var _a;
71
- return (_a = visitor[statement.constructor.name]) === null || _a === void 0 ? void 0 : _a.call(visitor, statement, parent);
86
+ return (_a = visitor[statement.constructor.name]) === null || _a === void 0 ? void 0 : _a.call(visitor, statement, parent, owner, key);
72
87
  });
73
88
  }
74
89
  exports.createVisitor = createVisitor;
@@ -1 +1 @@
1
- {"version":3,"file":"visitors.js","sourceRoot":"","sources":["../../src/astUtils/visitors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"visitors.js","sourceRoot":"","sources":["../../src/astUtils/visitors.ts"],"names":[],"mappings":";;;AAIA,6CAAyD;AAIzD;;GAEG;AACH,SAAgB,cAAc,CAC1B,SAAoB,EACpB,OAA+F,EAC/F,MAA0B;IAE1B,SAAS,CAAC,IAAI,CAAC,OAAc,EAAE;QAC3B,QAAQ,EAAE,QAAQ,CAAC,eAAe;QAClC,MAAM,EAAE,MAAM;KACjB,CAAC,CAAC;AACP,CAAC;AATD,wCASC;AAID;;GAEG;AACH,SAAgB,IAAI,CAAI,KAAQ,EAAE,GAAY,EAAE,OAAoB,EAAE,OAAoB,EAAE,MAA+B;;IACvH,6BAA6B;IAC7B,IAAI,MAAA,OAAO,CAAC,MAAM,0CAAE,uBAAuB,EAAE;QACzC,OAAO;KACV;IAED,2BAA2B;IAC3B,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,CAAkC,CAAC;IAC1D,IAAI,CAAC,OAAO,EAAE;QACV,OAAO;KACV;IAED,oCAAoC;IACpC,IAAI,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,KAAY,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAEpE,uHAAuH;QACvH,IAAI,MAAM,IAAI,CAAC,IAAA,yBAAY,EAAC,MAAM,CAAC,IAAI,IAAA,wBAAW,EAAC,MAAM,CAAC,CAAC,EAAE;YACzD,IAAI,OAAO,CAAC,MAAM,EAAE;gBAChB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,MAAa,CAAC,CAAC;aACzD;iBAAM;gBACF,KAAa,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBAC7B,4BAA4B;gBAC5B,OAAO;aACV;SACJ;KACJ;IAED,6BAA6B;IAC7B,IAAI,MAAA,OAAO,CAAC,MAAM,0CAAE,uBAAuB,EAAE;QACzC,OAAO;KACV;IAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,mCAAmC,CAAC,CAAC;KACrJ;IACD,4BAA4B;IAC5B,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAtCD,oBAsCC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAI,KAAe,EAAE,OAAoB,EAAE,OAAoB,EAAE,MAA+B,EAAE,MAAmC;IAC1J,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;YACjC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACzC,wCAAwC;YACxC,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;SACnC;KACJ;AACL,CAAC;AATD,8BASC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CACzB,OAyEC;IAED,4DAA4D;IAC5D,IAAI,OAAO,CAAC,mBAAmB,EAAE;QAC7B,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC;KACxD;IACD,IAAI,OAAO,CAAC,oBAAoB,EAAE;QAC9B,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC;KAC1D;IACD,OAAoB,CAAC,CAAC,SAAoB,EAAE,MAAkB,EAAE,KAAW,EAAE,GAAS,EAAoB,EAAE;;QACxG,OAAO,MAAA,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,wDAAG,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACP,CAAC;AAtFD,sCAsFC;AAkBD;;GAEG;AACH,IAAY,gBAqBX;AArBD,WAAY,gBAAgB;IACxB;;OAEG;IACH,2EAAkB,CAAA;IAClB;;OAEG;IACH,6EAAmB,CAAA;IACnB;;OAEG;IACH,6EAAmB,CAAA;IACnB;;OAEG;IACH,+EAAoB,CAAA;IACpB;;OAEG;IACH,0FAA0B,CAAA;AAC9B,CAAC,EArBW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAqB3B;AAED,kEAAkE;AAClE,IAAY,QA0CX;AA1CD,WAAY,QAAQ;IAChB;;OAEG;IACH,2DAAgD,CAAA;IAChD;;OAEG;IACH,6DAAoF,CAAA;IACpF;;OAEG;IACH,6DAAkD,CAAA;IAClD;;OAEG;IACH,0EAA4F,CAAA;IAC5F;;OAEG;IACH,gEAAyH,CAAA;IACzH;;OAEG;IACH,gDAAoJ,CAAA;IACpJ;;;OAGG;IACH,0EAAiG,CAAA;IACjG;;OAEG;IACH,gFAAyK,CAAA;IACzK;;OAEG;IACH,kFAA2K,CAAA;IAC3K;;OAEG;IACH,kEAAsM,CAAA;AAC1M,CAAC,EA1CW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QA0CnB"}
@@ -11,6 +11,7 @@ const reflection_1 = require("./reflection");
11
11
  const creators_1 = require("./creators");
12
12
  const stackedVisitor_1 = require("./stackedVisitor");
13
13
  const AstEditor_1 = require("./AstEditor");
14
+ const Parser_1 = require("../parser/Parser");
14
15
  describe('astUtils visitors', () => {
15
16
  const rootDir = process.cwd();
16
17
  let program;
@@ -869,6 +870,75 @@ describe('astUtils visitors', () => {
869
870
  'LiteralExpression'
870
871
  ], visitors_1.WalkMode.visitExpressionsRecursive);
871
872
  });
873
+ it('provides owner and key', () => {
874
+ const items = [];
875
+ const { ast } = Parser_1.Parser.parse(`
876
+ sub main()
877
+ log = sub(message)
878
+ print "hello " + message
879
+ end sub
880
+ log("hello" + " world")
881
+ end sub
882
+ `);
883
+ ast.walk((astNode, parent, owner, key) => {
884
+ items.push(astNode);
885
+ (0, chai_1.expect)(owner[key]).to.equal(astNode);
886
+ }, {
887
+ walkMode: visitors_1.WalkMode.visitAllRecursive
888
+ });
889
+ (0, chai_1.expect)(items).to.be.length(17);
890
+ });
891
+ it('can be used to delete statements', () => {
892
+ const { ast } = Parser_1.Parser.parse(`
893
+ sub main()
894
+ print 1
895
+ print 2
896
+ print 3
897
+ end sub
898
+ `);
899
+ let callCount = 0;
900
+ ast.walk((astNode, parent, owner, key) => {
901
+ if ((0, reflection_1.isPrintStatement)(astNode)) {
902
+ callCount++;
903
+ //delete the print statement (we know owner is an array based on this specific test)
904
+ owner.splice(key, 1);
905
+ }
906
+ }, {
907
+ walkMode: visitors_1.WalkMode.visitAllRecursive
908
+ });
909
+ //the visitor should have been called for every statement
910
+ (0, chai_1.expect)(callCount).to.eql(3);
911
+ (0, chai_1.expect)(ast.statements[0].func.body.statements).to.be.lengthOf(0);
912
+ });
913
+ it('can be used to insert statements', () => {
914
+ const { ast } = Parser_1.Parser.parse(`
915
+ sub main()
916
+ print 1
917
+ print 2
918
+ print 3
919
+ end sub
920
+ `);
921
+ let printStatementCount = 0;
922
+ let callExpressionCount = 0;
923
+ const calls = [];
924
+ ast.walk((0, visitors_1.createVisitor)({
925
+ PrintStatement: (astNode, parent, owner, key) => {
926
+ printStatementCount++;
927
+ //add another expression to the list every time. This should result in 1 the first time, 2 the second, 3 the third.
928
+ calls.push(new Statement_1.ExpressionStatement((0, creators_1.createCall)((0, creators_1.createVariableExpression)('doSomethingBeforePrint'))));
929
+ owner.splice(key, 0, ...calls);
930
+ },
931
+ CallExpression: () => {
932
+ callExpressionCount++;
933
+ }
934
+ }), {
935
+ walkMode: visitors_1.WalkMode.visitAllRecursive
936
+ });
937
+ //the visitor should have been called for every statement
938
+ (0, chai_1.expect)(printStatementCount).to.eql(3);
939
+ (0, chai_1.expect)(callExpressionCount).to.eql(0);
940
+ (0, chai_1.expect)(ast.statements[0].func.body.statements).to.be.lengthOf(9);
941
+ });
872
942
  });
873
943
  });
874
944
  //# sourceMappingURL=visitors.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"visitors.spec.js","sourceRoot":"","sources":["../../src/astUtils/visitors.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"visitors.spec.js","sourceRoot":"","sources":["../../src/astUtils/visitors.spec.ts"],"names":[],"mappings":"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"}
@@ -1551,6 +1551,25 @@ describe('BrsFile', () => {
1551
1551
  '```'
1552
1552
  ].join('\n'));
1553
1553
  });
1554
+ it('finds declared namespace function', () => {
1555
+ let file = program.setFile({ src: `${rootDir}/source/main.brs`, dest: 'source/main.brs' }, `
1556
+ namespace mySpace
1557
+ function Main(count = 1)
1558
+ firstName = "bob"
1559
+ age = 21
1560
+ shoeSize = 10
1561
+ end function
1562
+ end namespace
1563
+ `);
1564
+ let hover = file.getHover(vscode_languageserver_1.Position.create(2, 28));
1565
+ (0, chai_1.expect)(hover).to.exist;
1566
+ (0, chai_1.expect)(hover.range).to.eql(vscode_languageserver_1.Range.create(2, 25, 2, 29));
1567
+ (0, chai_1.expect)(hover.contents).to.equal([
1568
+ '```brightscript',
1569
+ 'function Main(count? as dynamic) as dynamic',
1570
+ '```'
1571
+ ].join('\n'));
1572
+ });
1554
1573
  it('finds variable function hover in same scope', () => {
1555
1574
  let file = program.setFile({ src: `${rootDir}/source/main.brs`, dest: 'source/main.brs' }, `
1556
1575
  sub Main()
@@ -1611,6 +1630,26 @@ describe('BrsFile', () => {
1611
1630
  '```'
1612
1631
  ].join('\n'));
1613
1632
  });
1633
+ it('finds namespace function hover in file scope', () => {
1634
+ let file = program.setFile({ src: `${rootDir}/source/main.brs`, dest: 'source/main.brs' }, `
1635
+ namespace mySpace
1636
+ sub Main()
1637
+ sayMyName()
1638
+ end sub
1639
+
1640
+ sub sayMyName()
1641
+
1642
+ end sub
1643
+ end namespace
1644
+ `);
1645
+ let hover = file.getHover(vscode_languageserver_1.Position.create(3, 25));
1646
+ (0, chai_1.expect)(hover.range).to.eql(vscode_languageserver_1.Range.create(3, 20, 3, 29));
1647
+ (0, chai_1.expect)(hover.contents).to.equal([
1648
+ '```brightscript',
1649
+ 'sub sayMyName() as void',
1650
+ '```'
1651
+ ].join('\n'));
1652
+ });
1614
1653
  it('finds function hover in scope', () => {
1615
1654
  let rootDir = process.cwd();
1616
1655
  program = new Program_1.Program({
@@ -1635,6 +1674,31 @@ describe('BrsFile', () => {
1635
1674
  '```'
1636
1675
  ].join('\n'));
1637
1676
  });
1677
+ it('finds namespace function hover in scope', () => {
1678
+ let rootDir = process.cwd();
1679
+ program = new Program_1.Program({
1680
+ rootDir: rootDir
1681
+ });
1682
+ let mainFile = program.setFile({ src: `${rootDir}/source/main.brs`, dest: 'source/main.brs' }, `
1683
+ sub Main()
1684
+ mySpace.sayMyName()
1685
+ end sub
1686
+ `);
1687
+ program.setFile({ src: `${rootDir}/source/lib.brs`, dest: 'source/lib.brs' }, `
1688
+ namespace mySpace
1689
+ sub sayMyName(name as string)
1690
+ end sub
1691
+ end namespace
1692
+ `);
1693
+ let hover = mainFile.getHover(vscode_languageserver_1.Position.create(2, 34));
1694
+ (0, chai_1.expect)(hover).to.exist;
1695
+ (0, chai_1.expect)(hover.range).to.eql(vscode_languageserver_1.Range.create(2, 28, 2, 37));
1696
+ (0, chai_1.expect)(hover.contents).to.equal([
1697
+ '```brightscript',
1698
+ 'sub sayMyName(name as string) as void',
1699
+ '```'
1700
+ ].join('\n'));
1701
+ });
1638
1702
  it('includes markdown comments in hover.', async () => {
1639
1703
  let rootDir = process.cwd();
1640
1704
  program = new Program_1.Program({