clarity-pattern-parser 6.0.0 → 6.0.2

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.
Files changed (46) hide show
  1. package/TODO.md +9 -7
  2. package/dist/index.browser.js +72 -22
  3. package/dist/index.browser.js.map +1 -1
  4. package/dist/index.esm.js +72 -22
  5. package/dist/index.esm.js.map +1 -1
  6. package/dist/index.js +72 -22
  7. package/dist/index.js.map +1 -1
  8. package/dist/intellisense/AutoComplete.d.ts +12 -6
  9. package/dist/intellisense/Suggestion.d.ts +1 -2
  10. package/dist/patterns/And.d.ts +1 -0
  11. package/dist/patterns/Literal.d.ts +1 -0
  12. package/dist/patterns/Not.d.ts +1 -0
  13. package/dist/patterns/Or.d.ts +1 -0
  14. package/dist/patterns/Pattern.d.ts +2 -1
  15. package/dist/patterns/Reference.d.ts +1 -0
  16. package/dist/patterns/Regex.d.ts +1 -0
  17. package/dist/patterns/Repeat.d.ts +1 -0
  18. package/package.json +1 -1
  19. package/src/ast/Node.test.ts +6 -0
  20. package/src/intellisense/AutoComplete.test.ts +104 -37
  21. package/src/intellisense/AutoComplete.ts +51 -24
  22. package/src/intellisense/Suggestion.ts +1 -1
  23. package/src/intellisense/javascript/Javascript.test.ts +35 -11
  24. package/src/intellisense/javascript/{expressionStatement.ts → assignment.ts} +7 -8
  25. package/src/intellisense/javascript/expression.ts +44 -26
  26. package/src/intellisense/javascript/infixOperator.ts +6 -2
  27. package/src/intellisense/javascript/keywords.ts +3 -0
  28. package/src/intellisense/javascript/objectAccess.ts +9 -0
  29. package/src/intellisense/javascript/objectLiteral.ts +3 -3
  30. package/src/intellisense/javascript/propertyAccess.ts +8 -3
  31. package/src/intellisense/javascript/stringLiteral.ts +16 -8
  32. package/src/patterns/And.test.ts +13 -0
  33. package/src/patterns/And.ts +14 -0
  34. package/src/patterns/Literal.test.ts +9 -0
  35. package/src/patterns/Literal.ts +4 -0
  36. package/src/patterns/Not.test.ts +11 -0
  37. package/src/patterns/Not.ts +4 -0
  38. package/src/patterns/Or.test.ts +11 -0
  39. package/src/patterns/Or.ts +10 -0
  40. package/src/patterns/Pattern.ts +2 -1
  41. package/src/patterns/Reference.test.ts +10 -0
  42. package/src/patterns/Reference.ts +4 -0
  43. package/src/patterns/Regex.test.ts +9 -0
  44. package/src/patterns/Regex.ts +4 -0
  45. package/src/patterns/Repeat.test.ts +9 -0
  46. package/src/patterns/Repeat.ts +4 -0
package/dist/index.js CHANGED
@@ -453,6 +453,9 @@ class Regex {
453
453
  }
454
454
  return this.parent.getTokensAfter(this);
455
455
  }
456
+ getPatterns() {
457
+ return [this];
458
+ }
456
459
  getPatternsAfter(_childReference) {
457
460
  return [];
458
461
  }
@@ -677,6 +680,16 @@ class And {
677
680
  }
678
681
  return this.parent.getTokensAfter(this);
679
682
  }
683
+ getPatterns() {
684
+ const patterns = [];
685
+ for (const pattern of this._children) {
686
+ patterns.push(...pattern.getPatterns());
687
+ if (!pattern.isOptional) {
688
+ break;
689
+ }
690
+ }
691
+ return patterns;
692
+ }
680
693
  getPatternsAfter(childReference) {
681
694
  let nextSibling = null;
682
695
  let nextSiblingIndex = -1;
@@ -835,6 +848,9 @@ class Literal {
835
848
  }
836
849
  return this.parent.getTokensAfter(this);
837
850
  }
851
+ getPatterns() {
852
+ return [this];
853
+ }
838
854
  getPatternsAfter() {
839
855
  return [];
840
856
  }
@@ -926,6 +942,9 @@ class Not {
926
942
  }
927
943
  return this.parent.getTokensAfter(this);
928
944
  }
945
+ getPatterns() {
946
+ return [...this.getNextPatterns().map(p => p.getPatterns()).flat()];
947
+ }
929
948
  getPatternsAfter(_childReference) {
930
949
  const parent = this._parent;
931
950
  if (parent != null) {
@@ -1039,6 +1058,13 @@ class Or {
1039
1058
  }
1040
1059
  return this._parent.getTokensAfter(this);
1041
1060
  }
1061
+ getPatterns() {
1062
+ const patterns = [];
1063
+ for (const pattern of this._children) {
1064
+ patterns.push(...pattern.getPatterns());
1065
+ }
1066
+ return patterns;
1067
+ }
1042
1068
  getPatternsAfter(_childReference) {
1043
1069
  if (this._parent === null) {
1044
1070
  return [];
@@ -1215,6 +1241,9 @@ class Repeat {
1215
1241
  }
1216
1242
  return this.parent.getTokensAfter(this);
1217
1243
  }
1244
+ getPatterns() {
1245
+ return this._pattern.getPatterns();
1246
+ }
1218
1247
  getPatternsAfter(childReference) {
1219
1248
  let index = -1;
1220
1249
  const patterns = [];
@@ -1348,6 +1377,9 @@ class Reference {
1348
1377
  }
1349
1378
  return this.parent.getTokensAfter(this);
1350
1379
  }
1380
+ getPatterns() {
1381
+ return this._getPatternSafely().getPatterns();
1382
+ }
1351
1383
  getPatternsAfter(_childReference) {
1352
1384
  if (this._parent == null) {
1353
1385
  return [];
@@ -1375,12 +1407,19 @@ class AutoComplete {
1375
1407
  this._options = options;
1376
1408
  this._text = "";
1377
1409
  }
1410
+ /**
1411
+ * @deprecated Use suggestFor instead.
1412
+ * @param text The text to suggest for.
1413
+ */
1378
1414
  suggest(text) {
1415
+ return this.suggestFor(text);
1416
+ }
1417
+ suggestFor(text) {
1379
1418
  if (text.length === 0) {
1380
1419
  return {
1381
1420
  isComplete: false,
1382
- options: this.createSuggestionsFromRoot(),
1383
- nextPatterns: [this._pattern],
1421
+ options: this._createSuggestionsFromRoot(),
1422
+ errorAtIndex: 0,
1384
1423
  cursor: null,
1385
1424
  ast: null
1386
1425
  };
@@ -1390,34 +1429,38 @@ class AutoComplete {
1390
1429
  const ast = this._pattern.parse(this._cursor);
1391
1430
  const leafPattern = this._cursor.leafMatch.pattern;
1392
1431
  const isComplete = (ast === null || ast === void 0 ? void 0 : ast.value) === text;
1393
- const options = this.createSuggestionsFromTokens();
1394
- let nextPatterns = [this._pattern];
1432
+ const options = this._createSuggestionsFromTokens();
1433
+ [this._pattern];
1434
+ let errorAtIndex = null;
1395
1435
  if (leafPattern != null) {
1396
- nextPatterns = leafPattern.getNextPatterns();
1436
+ leafPattern.getNextPatterns();
1437
+ }
1438
+ if (this._cursor.hasError && this._cursor.furthestError != null) {
1439
+ errorAtIndex = this._cursor.furthestError.index;
1440
+ errorAtIndex = options.reduce((errorAtIndex, option) => Math.max(errorAtIndex, option.startIndex), errorAtIndex);
1397
1441
  }
1398
1442
  return {
1399
1443
  isComplete: isComplete,
1400
1444
  options: options,
1401
- nextPatterns,
1445
+ errorAtIndex,
1402
1446
  cursor: this._cursor,
1403
1447
  ast,
1404
1448
  };
1405
1449
  }
1406
- createSuggestionsFromRoot() {
1450
+ _createSuggestionsFromRoot() {
1407
1451
  const suggestions = [];
1408
1452
  const tokens = this._pattern.getTokens();
1409
1453
  for (const token of tokens) {
1410
- suggestions.push(this.createSuggestion("", token));
1454
+ suggestions.push(this._createSuggestion("", token));
1411
1455
  }
1412
1456
  return suggestions;
1413
1457
  }
1414
- createSuggestionsFromTokens() {
1458
+ _createSuggestionsFromTokens() {
1415
1459
  const leafMatch = this._cursor.leafMatch;
1416
1460
  if (!leafMatch.pattern) {
1417
- return this.createSuggestions(-1, this._getTokensForPattern(this._pattern));
1461
+ return this._createSuggestions(-1, this._getTokensForPattern(this._pattern));
1418
1462
  }
1419
1463
  const leafPattern = leafMatch.pattern;
1420
- leafMatch.node;
1421
1464
  const parent = leafMatch.pattern.parent;
1422
1465
  if (parent !== null && leafMatch.node != null) {
1423
1466
  const patterns = leafPattern.getNextPatterns();
@@ -1425,22 +1468,22 @@ class AutoComplete {
1425
1468
  acc.push(...this._getTokensForPattern(pattern));
1426
1469
  return acc;
1427
1470
  }, []);
1428
- return this.createSuggestions(leafMatch.node.lastIndex, tokens);
1471
+ return this._createSuggestions(leafMatch.node.lastIndex, tokens);
1429
1472
  }
1430
1473
  else {
1431
1474
  return [];
1432
1475
  }
1433
1476
  }
1434
1477
  _getTokensForPattern(pattern) {
1435
- if (this._options.greedyPatternNames.includes(pattern.name)) {
1436
- const greedyTokens = pattern.getTokens();
1478
+ const augmentedTokens = this._getAugmentedTokens(pattern);
1479
+ if (this._options.greedyPatternNames != null && this._options.greedyPatternNames.includes(pattern.name)) {
1437
1480
  const nextPatterns = pattern.getNextPatterns();
1438
1481
  const tokens = [];
1439
1482
  const nextPatternTokens = nextPatterns.reduce((acc, pattern) => {
1440
1483
  acc.push(...this._getTokensForPattern(pattern));
1441
1484
  return acc;
1442
1485
  }, []);
1443
- for (let token of greedyTokens) {
1486
+ for (let token of augmentedTokens) {
1444
1487
  for (let nextPatternToken of nextPatternTokens) {
1445
1488
  tokens.push(token + nextPatternToken);
1446
1489
  }
@@ -1448,13 +1491,20 @@ class AutoComplete {
1448
1491
  return tokens;
1449
1492
  }
1450
1493
  else {
1451
- const tokens = pattern.getTokens();
1452
- const customTokens = this._options.customTokens[pattern.name] || [];
1453
- tokens.push(...customTokens);
1454
- return tokens;
1494
+ return augmentedTokens;
1455
1495
  }
1456
1496
  }
1457
- createSuggestions(lastIndex, tokens) {
1497
+ _getAugmentedTokens(pattern) {
1498
+ const customTokensMap = this._options.customTokens || {};
1499
+ const leafPatterns = pattern.getPatterns();
1500
+ const tokens = customTokensMap[pattern.name] || [];
1501
+ leafPatterns.forEach(p => {
1502
+ const augmentedTokens = customTokensMap[p.name] || [];
1503
+ tokens.push(...p.getTokens(), ...augmentedTokens);
1504
+ });
1505
+ return tokens;
1506
+ }
1507
+ _createSuggestions(lastIndex, tokens) {
1458
1508
  let substring = lastIndex === -1 ? "" : this._cursor.getChars(0, lastIndex);
1459
1509
  const suggestionStrings = [];
1460
1510
  const options = [];
@@ -1465,14 +1515,14 @@ class AutoComplete {
1465
1515
  const isSameAsText = suggestion === this._text;
1466
1516
  if (startsWith && !alreadyExist && !isSameAsText) {
1467
1517
  suggestionStrings.push(suggestion);
1468
- options.push(this.createSuggestion(this._cursor.text, suggestion));
1518
+ options.push(this._createSuggestion(this._cursor.text, suggestion));
1469
1519
  }
1470
1520
  }
1471
1521
  const reducedOptions = getFurthestOptions(options);
1472
1522
  reducedOptions.sort((a, b) => a.text.localeCompare(b.text));
1473
1523
  return reducedOptions;
1474
1524
  }
1475
- createSuggestion(fullText, suggestion) {
1525
+ _createSuggestion(fullText, suggestion) {
1476
1526
  const furthestMatch = findMatchIndex(suggestion, fullText);
1477
1527
  const text = suggestion.slice(furthestMatch);
1478
1528
  return {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/ast/Node.ts","../src/patterns/ParseError.ts","../src/patterns/CursorHistory.ts","../src/patterns/Cursor.ts","../src/patterns/Regex.ts","../src/patterns/clonePatterns.ts","../src/patterns/filterOutNull.ts","../src/patterns/findPattern.ts","../src/patterns/And.ts","../src/patterns/Literal.ts","../src/patterns/Not.ts","../src/patterns/Or.ts","../src/patterns/Repeat.ts","../src/patterns/Reference.ts","../src/intellisense/AutoComplete.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/ast/Node.ts","../src/patterns/ParseError.ts","../src/patterns/CursorHistory.ts","../src/patterns/Cursor.ts","../src/patterns/Regex.ts","../src/patterns/clonePatterns.ts","../src/patterns/filterOutNull.ts","../src/patterns/findPattern.ts","../src/patterns/And.ts","../src/patterns/Literal.ts","../src/patterns/Not.ts","../src/patterns/Or.ts","../src/patterns/Repeat.ts","../src/patterns/Reference.ts","../src/intellisense/AutoComplete.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
@@ -6,12 +6,12 @@ export interface AutoCompleteOptions {
6
6
  * Be very careful, this can explode to infinity pretty quick. Usually useful
7
7
  * for dividers and spaces.
8
8
  */
9
- greedyPatternNames: string[];
9
+ greedyPatternNames?: string[];
10
10
  /**
11
11
  * Allows for custom suggestions for patterns. The key is the name of the pattern
12
12
  * and the string array are the tokens suggested for that pattern.
13
13
  */
14
- customTokens: Record<string, string[]>;
14
+ customTokens?: Record<string, string[]>;
15
15
  }
16
16
  export declare class AutoComplete {
17
17
  private _pattern;
@@ -19,10 +19,16 @@ export declare class AutoComplete {
19
19
  private _cursor;
20
20
  private _text;
21
21
  constructor(pattern: Pattern, options?: AutoCompleteOptions);
22
+ /**
23
+ * @deprecated Use suggestFor instead.
24
+ * @param text The text to suggest for.
25
+ */
22
26
  suggest(text: string): Suggestion;
23
- private createSuggestionsFromRoot;
24
- private createSuggestionsFromTokens;
27
+ suggestFor(text: string): Suggestion;
28
+ private _createSuggestionsFromRoot;
29
+ private _createSuggestionsFromTokens;
25
30
  private _getTokensForPattern;
26
- private createSuggestions;
27
- private createSuggestion;
31
+ private _getAugmentedTokens;
32
+ private _createSuggestions;
33
+ private _createSuggestion;
28
34
  }
@@ -1,11 +1,10 @@
1
1
  import { Node } from "../ast/Node";
2
2
  import { Cursor } from "../patterns/Cursor";
3
- import { Pattern } from "../patterns/Pattern";
4
3
  import { SuggestionOption } from "./SuggestionOption";
5
4
  export interface Suggestion {
6
5
  isComplete: boolean;
7
6
  options: SuggestionOption[];
8
- nextPatterns: Pattern[];
7
+ errorAtIndex: number | null;
9
8
  cursor: Cursor | null;
10
9
  ast: Node | null;
11
10
  }
@@ -30,6 +30,7 @@ export declare class And implements Pattern {
30
30
  getTokens(): string[];
31
31
  getTokensAfter(childReference: Pattern): string[];
32
32
  getNextTokens(): string[];
33
+ getPatterns(): Pattern[];
33
34
  getPatternsAfter(childReference: Pattern): Pattern[];
34
35
  getNextPatterns(): Pattern[];
35
36
  findPattern(predicate: (p: Pattern) => boolean): Pattern | null;
@@ -29,6 +29,7 @@ export declare class Literal implements Pattern {
29
29
  getTokens(): string[];
30
30
  getTokensAfter(_lastMatched: Pattern): string[];
31
31
  getNextTokens(): string[];
32
+ getPatterns(): Pattern[];
32
33
  getPatternsAfter(): Pattern[];
33
34
  getNextPatterns(): Pattern[];
34
35
  findPattern(_predicate: (p: Pattern) => boolean): Pattern | null;
@@ -23,6 +23,7 @@ export declare class Not implements Pattern {
23
23
  getTokens(): string[];
24
24
  getTokensAfter(_childReference: Pattern): string[];
25
25
  getNextTokens(): string[];
26
+ getPatterns(): Pattern[];
26
27
  getPatternsAfter(_childReference: Pattern): Pattern[];
27
28
  getNextPatterns(): Pattern[];
28
29
  findPattern(predicate: (p: Pattern) => boolean): Pattern | null;
@@ -26,6 +26,7 @@ export declare class Or implements Pattern {
26
26
  getTokens(): string[];
27
27
  getTokensAfter(_childReference: Pattern): string[];
28
28
  getNextTokens(): string[];
29
+ getPatterns(): Pattern[];
29
30
  getPatternsAfter(_childReference: Pattern): Pattern[];
30
31
  getNextPatterns(): Pattern[];
31
32
  findPattern(predicate: (p: Pattern) => boolean): Pattern | null;
@@ -13,8 +13,9 @@ export interface Pattern {
13
13
  clone(name?: string, isOptional?: boolean): Pattern;
14
14
  getTokens(): string[];
15
15
  getTokensAfter(childReference: Pattern): string[];
16
+ getNextTokens(): string[];
17
+ getPatterns(): Pattern[];
16
18
  getPatternsAfter(childReference: Pattern): Pattern[];
17
19
  getNextPatterns(): Pattern[];
18
- getNextTokens(): string[];
19
20
  findPattern(predicate: (p: Pattern) => boolean): Pattern | null;
20
21
  }
@@ -27,6 +27,7 @@ export declare class Reference implements Pattern {
27
27
  getTokens(): string[];
28
28
  getTokensAfter(_lastMatched: Pattern): string[];
29
29
  getNextTokens(): string[];
30
+ getPatterns(): Pattern[];
30
31
  getPatternsAfter(_childReference: Pattern): Pattern[];
31
32
  getNextPatterns(): Pattern[];
32
33
  findPattern(_predicate: (p: Pattern) => boolean): Pattern | null;
@@ -34,6 +34,7 @@ export declare class Regex implements Pattern {
34
34
  getTokens(): string[];
35
35
  getTokensAfter(_childReference: Pattern): string[];
36
36
  getNextTokens(): string[];
37
+ getPatterns(): Pattern[];
37
38
  getPatternsAfter(_childReference: Pattern): Pattern[];
38
39
  getNextPatterns(): Pattern[];
39
40
  findPattern(_predicate: (p: Pattern) => boolean): Pattern | null;
@@ -31,6 +31,7 @@ export declare class Repeat implements Pattern {
31
31
  getTokens(): string[];
32
32
  getTokensAfter(childReference: Pattern): string[];
33
33
  getNextTokens(): string[];
34
+ getPatterns(): Pattern[];
34
35
  getPatternsAfter(childReference: Pattern): Pattern[];
35
36
  getNextPatterns(): Pattern[];
36
37
  findPattern(predicate: (p: Pattern) => boolean): Pattern | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clarity-pattern-parser",
3
- "version": "6.0.0",
3
+ "version": "6.0.2",
4
4
  "description": "Parsing Library for Typescript and Javascript.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.esm.js",
@@ -361,4 +361,10 @@ describe("Node", () => {
361
361
  expect(result).toBe(grandParent)
362
362
  });
363
363
 
364
+ test("Find Ancester Without Parent", () => {
365
+ const child = new Node("child", "child", 0, 0, []);
366
+ const result = child.findAncester(p => p.name === "parent")
367
+ expect(result).toBeNull()
368
+ });
369
+
364
370
  });