dot-language-support 1.7.0 → 2.0.3

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 (110) hide show
  1. package/.github/workflows/CD.yml +3 -3
  2. package/.github/workflows/CI.yml +2 -2
  3. package/README.md +5 -4
  4. package/jest.config.mjs +19 -0
  5. package/lib/{binder.d.ts → cjs/binder.d.ts} +1 -1
  6. package/lib/{binder.js → cjs/binder.js} +34 -34
  7. package/lib/{checker.d.ts → cjs/checker.d.ts} +1 -1
  8. package/lib/{checker.js → cjs/checker.js} +28 -28
  9. package/lib/{core.d.ts → cjs/core.d.ts} +0 -0
  10. package/lib/{core.js → cjs/core.js} +0 -0
  11. package/lib/{error.d.ts → cjs/error.d.ts} +1 -1
  12. package/lib/{error.js → cjs/error.js} +0 -0
  13. package/lib/cjs/index.d.ts +5 -0
  14. package/lib/{index.js → cjs/index.js} +5 -5
  15. package/lib/{parser.d.ts → cjs/parser.d.ts} +1 -1
  16. package/lib/{parser.js → cjs/parser.js} +11 -11
  17. package/lib/{scanner.d.ts → cjs/scanner.d.ts} +1 -1
  18. package/lib/{scanner.js → cjs/scanner.js} +67 -67
  19. package/lib/{service → cjs/service}/codeAction.d.ts +2 -2
  20. package/lib/{service → cjs/service}/codeAction.js +34 -34
  21. package/lib/cjs/service/colorProvider.d.ts +5 -0
  22. package/lib/{service → cjs/service}/colorProvider.js +7 -12
  23. package/lib/{service → cjs/service}/command/ChangeAllOtherEdgeOpsAndFixGraphCommand.d.ts +3 -3
  24. package/lib/{service → cjs/service}/command/ChangeAllOtherEdgeOpsAndFixGraphCommand.js +6 -6
  25. package/lib/{service → cjs/service}/command/ChangeEdgeOpCommand.d.ts +3 -3
  26. package/lib/{service → cjs/service}/command/ChangeEdgeOpCommand.js +3 -3
  27. package/lib/{service → cjs/service}/command/ConsolidateDescendantsCommand.d.ts +3 -3
  28. package/lib/{service → cjs/service}/command/ConsolidateDescendantsCommand.js +7 -7
  29. package/lib/{service → cjs/service}/command/RemoveSemicolons.d.ts +3 -3
  30. package/lib/{service → cjs/service}/command/RemoveSemicolons.js +4 -4
  31. package/lib/{service → cjs/service}/command/common.d.ts +2 -2
  32. package/lib/{service → cjs/service}/command/common.js +6 -6
  33. package/lib/{service → cjs/service}/completion.d.ts +2 -2
  34. package/lib/{service → cjs/service}/completion.js +25 -25
  35. package/lib/{service → cjs/service}/hover.d.ts +2 -2
  36. package/lib/{service → cjs/service}/hover.js +38 -38
  37. package/lib/{service → cjs/service}/languageFacts.d.ts +0 -0
  38. package/lib/{service → cjs/service}/languageFacts.js +0 -0
  39. package/lib/{service → cjs/service}/reference.d.ts +2 -2
  40. package/lib/{service → cjs/service}/reference.js +9 -9
  41. package/lib/{service → cjs/service}/rename.d.ts +2 -2
  42. package/lib/{service → cjs/service}/rename.js +11 -11
  43. package/lib/{service → cjs/service}/service.d.ts +2 -2
  44. package/lib/cjs/service/service.js +39 -0
  45. package/lib/{service → cjs/service}/util.d.ts +2 -2
  46. package/lib/{service → cjs/service}/util.js +5 -5
  47. package/lib/{service → cjs/service}/validation.d.ts +2 -2
  48. package/lib/{service → cjs/service}/validation.js +3 -3
  49. package/lib/cjs/tester.d.ts +1 -0
  50. package/lib/cjs/tester.js +23 -0
  51. package/lib/{types.d.ts → cjs/types.d.ts} +0 -0
  52. package/lib/{types.js → cjs/types.js} +0 -0
  53. package/lib/{visitor.d.ts → cjs/visitor.d.ts} +1 -1
  54. package/lib/{visitor.js → cjs/visitor.js} +17 -17
  55. package/lib/esm/binder.d.ts +2 -0
  56. package/lib/esm/binder.js +296 -0
  57. package/lib/esm/checker.d.ts +14 -0
  58. package/lib/esm/checker.js +169 -0
  59. package/lib/esm/core.d.ts +1 -0
  60. package/lib/esm/core.js +10 -0
  61. package/lib/esm/error.d.ts +3 -0
  62. package/lib/esm/error.js +10 -0
  63. package/lib/esm/index.d.ts +5 -0
  64. package/lib/esm/index.js +6 -0
  65. package/lib/esm/parser.d.ts +84 -0
  66. package/lib/esm/parser.js +700 -0
  67. package/lib/esm/scanner.d.ts +52 -0
  68. package/lib/esm/scanner.js +581 -0
  69. package/lib/esm/service/codeAction.d.ts +12 -0
  70. package/lib/esm/service/codeAction.js +208 -0
  71. package/lib/esm/service/colorProvider.d.ts +5 -0
  72. package/lib/esm/service/colorProvider.js +64 -0
  73. package/lib/esm/service/command/ChangeAllOtherEdgeOpsAndFixGraphCommand.d.ts +10 -0
  74. package/lib/esm/service/command/ChangeAllOtherEdgeOpsAndFixGraphCommand.js +38 -0
  75. package/lib/esm/service/command/ChangeEdgeOpCommand.d.ts +10 -0
  76. package/lib/esm/service/command/ChangeEdgeOpCommand.js +32 -0
  77. package/lib/esm/service/command/ConsolidateDescendantsCommand.d.ts +10 -0
  78. package/lib/esm/service/command/ConsolidateDescendantsCommand.js +83 -0
  79. package/lib/esm/service/command/RemoveSemicolons.d.ts +10 -0
  80. package/lib/esm/service/command/RemoveSemicolons.js +37 -0
  81. package/lib/esm/service/command/common.d.ts +31 -0
  82. package/lib/esm/service/command/common.js +22 -0
  83. package/lib/esm/service/completion.d.ts +4 -0
  84. package/lib/esm/service/completion.js +137 -0
  85. package/lib/esm/service/hover.d.ts +4 -0
  86. package/lib/esm/service/hover.js +119 -0
  87. package/lib/esm/service/languageFacts.d.ts +683 -0
  88. package/lib/esm/service/languageFacts.js +997 -0
  89. package/lib/esm/service/reference.d.ts +5 -0
  90. package/lib/esm/service/reference.js +66 -0
  91. package/lib/esm/service/rename.d.ts +4 -0
  92. package/lib/esm/service/rename.js +45 -0
  93. package/lib/esm/service/service.d.ts +28 -0
  94. package/lib/esm/service/service.js +35 -0
  95. package/lib/esm/service/util.d.ts +11 -0
  96. package/lib/esm/service/util.js +44 -0
  97. package/lib/esm/service/validation.d.ts +4 -0
  98. package/lib/esm/service/validation.js +20 -0
  99. package/lib/esm/tester.d.ts +1 -0
  100. package/lib/esm/tester.js +21 -0
  101. package/lib/esm/types.d.ts +396 -0
  102. package/lib/esm/types.js +71 -0
  103. package/lib/esm/visitor.d.ts +2 -0
  104. package/lib/esm/visitor.js +74 -0
  105. package/package.json +14 -12
  106. package/lib/index.d.ts +0 -5
  107. package/lib/service/colorProvider.d.ts +0 -6
  108. package/lib/service/polyfill.d.ts +0 -16
  109. package/lib/service/polyfill.js +0 -3
  110. package/lib/service/service.js +0 -39
@@ -0,0 +1,71 @@
1
+ export var DiagnosticCategory;
2
+ (function (DiagnosticCategory) {
3
+ DiagnosticCategory[DiagnosticCategory["Error"] = 1] = "Error";
4
+ DiagnosticCategory[DiagnosticCategory["Warning"] = 2] = "Warning";
5
+ DiagnosticCategory[DiagnosticCategory["Message"] = 3] = "Message";
6
+ DiagnosticCategory[DiagnosticCategory["Suggestion"] = 4] = "Suggestion";
7
+ })(DiagnosticCategory || (DiagnosticCategory = {}));
8
+ export var SyntaxKind;
9
+ (function (SyntaxKind) {
10
+ SyntaxKind[SyntaxKind["Unknown"] = 0] = "Unknown";
11
+ SyntaxKind[SyntaxKind["EndOfFileToken"] = 1] = "EndOfFileToken";
12
+ SyntaxKind[SyntaxKind["NewLineTrivia"] = 2] = "NewLineTrivia";
13
+ SyntaxKind[SyntaxKind["WhitespaceTrivia"] = 3] = "WhitespaceTrivia";
14
+ SyntaxKind[SyntaxKind["HashCommentTrivia"] = 4] = "HashCommentTrivia";
15
+ SyntaxKind[SyntaxKind["SingleLineCommentTrivia"] = 5] = "SingleLineCommentTrivia";
16
+ SyntaxKind[SyntaxKind["MultiLineCommentTrivia"] = 6] = "MultiLineCommentTrivia";
17
+ SyntaxKind[SyntaxKind["CommaToken"] = 7] = "CommaToken";
18
+ SyntaxKind[SyntaxKind["SemicolonToken"] = 8] = "SemicolonToken";
19
+ SyntaxKind[SyntaxKind["PlusToken"] = 9] = "PlusToken";
20
+ SyntaxKind[SyntaxKind["OpenBraceToken"] = 10] = "OpenBraceToken";
21
+ SyntaxKind[SyntaxKind["CloseBraceToken"] = 11] = "CloseBraceToken";
22
+ SyntaxKind[SyntaxKind["OpenBracketToken"] = 12] = "OpenBracketToken";
23
+ SyntaxKind[SyntaxKind["CloseBracketToken"] = 13] = "CloseBracketToken";
24
+ SyntaxKind[SyntaxKind["ColonToken"] = 14] = "ColonToken";
25
+ SyntaxKind[SyntaxKind["EqualsToken"] = 15] = "EqualsToken";
26
+ SyntaxKind[SyntaxKind["LessThan"] = 16] = "LessThan";
27
+ SyntaxKind[SyntaxKind["GreaterThan"] = 17] = "GreaterThan";
28
+ SyntaxKind[SyntaxKind["CompassNorthToken"] = 18] = "CompassNorthToken";
29
+ SyntaxKind[SyntaxKind["CompassNorthEastToken"] = 19] = "CompassNorthEastToken";
30
+ SyntaxKind[SyntaxKind["CompassEastToken"] = 20] = "CompassEastToken";
31
+ SyntaxKind[SyntaxKind["CompassSouthEastToken"] = 21] = "CompassSouthEastToken";
32
+ SyntaxKind[SyntaxKind["CompassSouthToken"] = 22] = "CompassSouthToken";
33
+ SyntaxKind[SyntaxKind["CompassSouthWestToken"] = 23] = "CompassSouthWestToken";
34
+ SyntaxKind[SyntaxKind["CompassWestToken"] = 24] = "CompassWestToken";
35
+ SyntaxKind[SyntaxKind["CompassNorthWestToken"] = 25] = "CompassNorthWestToken";
36
+ SyntaxKind[SyntaxKind["CompassCenterToken"] = 26] = "CompassCenterToken";
37
+ SyntaxKind[SyntaxKind["UnderscoreToken"] = 27] = "UnderscoreToken";
38
+ SyntaxKind[SyntaxKind["StringLiteral"] = 28] = "StringLiteral";
39
+ SyntaxKind[SyntaxKind["HtmlIdentifier"] = 29] = "HtmlIdentifier";
40
+ SyntaxKind[SyntaxKind["TextIdentifier"] = 30] = "TextIdentifier";
41
+ SyntaxKind[SyntaxKind["QuotedTextIdentifier"] = 31] = "QuotedTextIdentifier";
42
+ SyntaxKind[SyntaxKind["NumericIdentifier"] = 32] = "NumericIdentifier";
43
+ SyntaxKind[SyntaxKind["GraphKeyword"] = 33] = "GraphKeyword";
44
+ SyntaxKind[SyntaxKind["DigraphKeyword"] = 34] = "DigraphKeyword";
45
+ SyntaxKind[SyntaxKind["NodeKeyword"] = 35] = "NodeKeyword";
46
+ SyntaxKind[SyntaxKind["EdgeKeyword"] = 36] = "EdgeKeyword";
47
+ SyntaxKind[SyntaxKind["SubgraphKeyword"] = 37] = "SubgraphKeyword";
48
+ SyntaxKind[SyntaxKind["StrictKeyword"] = 38] = "StrictKeyword";
49
+ SyntaxKind[SyntaxKind["DirectedEdgeOp"] = 39] = "DirectedEdgeOp";
50
+ SyntaxKind[SyntaxKind["UndirectedEdgeOp"] = 40] = "UndirectedEdgeOp";
51
+ SyntaxKind[SyntaxKind["DirectedGraph"] = 41] = "DirectedGraph";
52
+ SyntaxKind[SyntaxKind["UndirectedGraph"] = 42] = "UndirectedGraph";
53
+ SyntaxKind[SyntaxKind["NodeStatement"] = 43] = "NodeStatement";
54
+ SyntaxKind[SyntaxKind["EdgeStatement"] = 44] = "EdgeStatement";
55
+ SyntaxKind[SyntaxKind["AttributeStatement"] = 45] = "AttributeStatement";
56
+ SyntaxKind[SyntaxKind["IdEqualsIdStatement"] = 46] = "IdEqualsIdStatement";
57
+ SyntaxKind[SyntaxKind["SubGraph"] = 47] = "SubGraph";
58
+ SyntaxKind[SyntaxKind["SubGraphStatement"] = 48] = "SubGraphStatement";
59
+ SyntaxKind[SyntaxKind["EdgeRhs"] = 49] = "EdgeRhs";
60
+ SyntaxKind[SyntaxKind["AttributeContainer"] = 50] = "AttributeContainer";
61
+ SyntaxKind[SyntaxKind["Assignment"] = 51] = "Assignment";
62
+ SyntaxKind[SyntaxKind["NormalPortDeclaration"] = 52] = "NormalPortDeclaration";
63
+ SyntaxKind[SyntaxKind["CompassPortDeclaration"] = 53] = "CompassPortDeclaration";
64
+ SyntaxKind[SyntaxKind["NodeId"] = 54] = "NodeId";
65
+ SyntaxKind[SyntaxKind["Count"] = 55] = "Count";
66
+ SyntaxKind[SyntaxKind["FirstNode"] = 41] = "FirstNode";
67
+ SyntaxKind[SyntaxKind["CompassBegin"] = 18] = "CompassBegin";
68
+ SyntaxKind[SyntaxKind["CompassEnd"] = 27] = "CompassEnd";
69
+ SyntaxKind[SyntaxKind["LastKeyword"] = 38] = "LastKeyword";
70
+ })(SyntaxKind || (SyntaxKind = {}));
71
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,2 @@
1
+ import { SyntaxNode, SyntaxNodeArray } from "./types.js";
2
+ export declare function forEachChild<TReturn>(node: SyntaxNode, cbNode: (node: SyntaxNode) => TReturn, cbNodes?: (nodes: SyntaxNodeArray<SyntaxNode>) => TReturn): TReturn | undefined;
@@ -0,0 +1,74 @@
1
+ import { SyntaxKind } from "./types.js";
2
+ function visitNode(cbNode, node) {
3
+ return node && cbNode(node);
4
+ }
5
+ function visitNodes(cbNode, cbNodes, nodes) {
6
+ if (nodes) {
7
+ if (cbNodes)
8
+ return cbNodes(nodes);
9
+ for (const node of nodes) {
10
+ const result = cbNode(node);
11
+ if (result)
12
+ return result;
13
+ }
14
+ }
15
+ return undefined;
16
+ }
17
+ export function forEachChild(node, cbNode, cbNodes) {
18
+ if (!node || node.kind <= SyntaxKind.LastKeyword)
19
+ return;
20
+ switch (node.kind) {
21
+ case SyntaxKind.DirectedGraph:
22
+ case SyntaxKind.UndirectedGraph:
23
+ return visitNodes(cbNode, cbNodes, node.statements)
24
+ || visitNode(cbNode, node.strict)
25
+ || visitNode(cbNode, node.id);
26
+ case SyntaxKind.AttributeStatement:
27
+ return visitNodes(cbNode, cbNodes, node.attributes)
28
+ || visitNode(cbNode, node.subject)
29
+ || visitNode(cbNode, node.terminator);
30
+ case SyntaxKind.EdgeStatement:
31
+ return visitNodes(cbNode, cbNodes, node.attributes)
32
+ || visitNodes(cbNode, cbNodes, node.rhs)
33
+ || visitNode(cbNode, node.source)
34
+ || visitNode(cbNode, node.terminator);
35
+ case SyntaxKind.NodeStatement:
36
+ return visitNodes(cbNode, cbNodes, node.attributes)
37
+ || visitNode(cbNode, node.id)
38
+ || visitNode(cbNode, node.terminator);
39
+ case SyntaxKind.SubGraph:
40
+ return visitNodes(cbNode, cbNodes, node.statements)
41
+ || visitNode(cbNode, node.id);
42
+ case SyntaxKind.SubGraphStatement:
43
+ return visitNode(cbNode, node.subgraph)
44
+ || visitNode(cbNode, node.terminator);
45
+ case SyntaxKind.IdEqualsIdStatement:
46
+ return visitNode(cbNode, node.leftId)
47
+ || visitNode(cbNode, node.rightId)
48
+ || visitNode(cbNode, node.terminator);
49
+ case SyntaxKind.QuotedTextIdentifier:
50
+ return visitNodes(cbNode, cbNodes, node.values);
51
+ case SyntaxKind.EdgeRhs:
52
+ return visitNode(cbNode, node.operation)
53
+ || visitNode(cbNode, node.target);
54
+ case SyntaxKind.AttributeContainer:
55
+ return visitNodes(cbNode, cbNodes, node.assignments);
56
+ case SyntaxKind.Assignment:
57
+ return visitNode(cbNode, node.leftId)
58
+ || visitNode(cbNode, node.rightId)
59
+ || visitNode(cbNode, node.terminator);
60
+ case SyntaxKind.NormalPortDeclaration:
61
+ return visitNode(cbNode, node.colon)
62
+ || visitNode(cbNode, node.id)
63
+ || visitNode(cbNode, node.compassPt);
64
+ case SyntaxKind.CompassPortDeclaration:
65
+ return visitNode(cbNode, node.colon)
66
+ || visitNode(cbNode, node.compassPt);
67
+ case SyntaxKind.NodeId:
68
+ return visitNode(cbNode, node.port)
69
+ || visitNode(cbNode, node.id);
70
+ default:
71
+ return undefined;
72
+ }
73
+ }
74
+ //# sourceMappingURL=visitor.js.map
package/package.json CHANGED
@@ -1,16 +1,19 @@
1
1
  {
2
2
  "name": "dot-language-support",
3
- "version": "1.7.0",
3
+ "version": "2.0.3",
4
4
  "description": "Parser and language service for graphviz (dot) files",
5
5
  "author": "Niklas Mollenhauer",
6
6
  "license": "MIT",
7
- "main": "lib/index.js",
8
- "types": "lib/index.d.ts",
7
+ "main": "./lib/cjs/index.js",
8
+ "module": "./lib/esm/index.js",
9
+ "types": "./lib/esm/index.d.ts",
9
10
  "scripts": {
10
- "test": "mocha -r ts-node/register tests/**/*.spec.ts tests/*.spec.ts",
11
+ "test": "jest --rootDir=tests",
11
12
  "clean": "rimraf lib",
12
- "compile": "tsc",
13
- "prepare": "npm run compile"
13
+ "compile:esm": "tsc --target esnext --module esnext --outDir lib/esm",
14
+ "compile:cjs": "tsc --target es2017 --module commonjs --outDir lib/cjs",
15
+ "compile": "npm run compile:esm && npm run compile:cjs",
16
+ "prepare": "npm run clean && npm run compile"
14
17
  },
15
18
  "keywords": [
16
19
  "graphviz",
@@ -26,14 +29,13 @@
26
29
  },
27
30
  "dependencies": {
28
31
  "vscode-languageserver-textdocument": "^1.0.4",
29
- "vscode-languageserver-types": "^3.16.0"
32
+ "vscode-languageserver-types": "^3.17.1"
30
33
  },
31
34
  "devDependencies": {
32
- "@types/chai": "^4.3.1",
33
- "@types/mocha": "^9.1.1",
34
- "chai": "^4.3.6",
35
- "mocha": "^10.0.0",
36
- "ts-node": "^10.7.0",
35
+ "@types/jest": "^27.5.1",
36
+ "jest": "^28.1.0",
37
+ "rimraf": "^3.0.2",
38
+ "ts-jest": "^28.0.2",
37
39
  "typescript": "^4.6.4"
38
40
  },
39
41
  "engines": {
package/lib/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export * from "./types";
2
- export * from "./scanner";
3
- export * from "./parser";
4
- export * from "./visitor";
5
- export * from "./service/service";
@@ -1,6 +0,0 @@
1
- import type * as lst from "vscode-languageserver-types";
2
- import { ColorInformation, Color, ColorPresentation } from "./polyfill";
3
- import { SourceFile } from "../types";
4
- import { DocumentLike } from "../";
5
- export declare function getDocumentColors(doc: DocumentLike, sourceFile: SourceFile): ColorInformation[] | undefined;
6
- export declare function getColorRepresentations(_doc: DocumentLike, _sourceFile: SourceFile, color: Color, range: lst.Range): ColorPresentation[] | undefined;
@@ -1,16 +0,0 @@
1
- import type { Range, TextEdit } from "vscode-languageserver-types";
2
- export interface ColorInformation {
3
- range: Range;
4
- color: Color;
5
- }
6
- export interface Color {
7
- readonly red: number;
8
- readonly green: number;
9
- readonly blue: number;
10
- readonly alpha: number;
11
- }
12
- export interface ColorPresentation {
13
- label: string;
14
- textEdit?: TextEdit;
15
- additionalTextEdits?: TextEdit[];
16
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=polyfill.js.map
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createService = void 0;
4
- const __1 = require("../");
5
- const binder_1 = require("../binder");
6
- const hover_1 = require("./hover");
7
- const validation_1 = require("./validation");
8
- const reference_1 = require("./reference");
9
- const rename_1 = require("./rename");
10
- const completion_1 = require("./completion");
11
- const checker_1 = require("../checker");
12
- const codeAction_1 = require("./codeAction");
13
- const colorProvider_1 = require("./colorProvider");
14
- function parseDocument(doc) {
15
- const parser = new __1.Parser();
16
- const content = typeof doc === "string" ? doc : doc.getText();
17
- const sourceFile = parser.parse(content);
18
- (0, binder_1.bindSourceFile)(sourceFile);
19
- (0, checker_1.checkSourceFile)(sourceFile);
20
- return sourceFile;
21
- }
22
- function createService() {
23
- return {
24
- parseDocument,
25
- validateDocument: validation_1.validateDocument,
26
- hover: hover_1.hover,
27
- findReferences: reference_1.findReferences,
28
- findDefinition: reference_1.findDefinition,
29
- renameSymbol: rename_1.renameSymbol,
30
- getCompletions: completion_1.getCompletions,
31
- getDocumentColors: colorProvider_1.getDocumentColors,
32
- getColorRepresentations: colorProvider_1.getColorRepresentations,
33
- getCodeActions: codeAction_1.getCodeActions,
34
- executeCommand: codeAction_1.executeCommand,
35
- getAvailableCommands: codeAction_1.getAvailableCommands,
36
- };
37
- }
38
- exports.createService = createService;
39
- //# sourceMappingURL=service.js.map