dot-language-support 1.7.0 → 2.0.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.
- package/.github/workflows/CD.yml +3 -3
- package/.github/workflows/CI.yml +2 -2
- package/README.md +5 -4
- package/jest.config.mjs +19 -0
- package/lib/{binder.d.ts → cjs/binder.d.ts} +1 -1
- package/lib/{binder.js → cjs/binder.js} +34 -34
- package/lib/{checker.d.ts → cjs/checker.d.ts} +1 -1
- package/lib/{checker.js → cjs/checker.js} +28 -28
- package/lib/{core.d.ts → cjs/core.d.ts} +0 -0
- package/lib/{core.js → cjs/core.js} +0 -0
- package/lib/{error.d.ts → cjs/error.d.ts} +1 -1
- package/lib/{error.js → cjs/error.js} +0 -0
- package/lib/cjs/index.d.ts +5 -0
- package/lib/{index.js → cjs/index.js} +5 -5
- package/lib/{parser.d.ts → cjs/parser.d.ts} +1 -1
- package/lib/{parser.js → cjs/parser.js} +11 -11
- package/lib/{scanner.d.ts → cjs/scanner.d.ts} +1 -1
- package/lib/{scanner.js → cjs/scanner.js} +67 -67
- package/lib/{service → cjs/service}/codeAction.d.ts +2 -2
- package/lib/{service → cjs/service}/codeAction.js +34 -34
- package/lib/{service → cjs/service}/colorProvider.d.ts +3 -3
- package/lib/{service → cjs/service}/colorProvider.js +3 -3
- package/lib/{service → cjs/service}/command/ChangeAllOtherEdgeOpsAndFixGraphCommand.d.ts +3 -3
- package/lib/{service → cjs/service}/command/ChangeAllOtherEdgeOpsAndFixGraphCommand.js +6 -6
- package/lib/{service → cjs/service}/command/ChangeEdgeOpCommand.d.ts +3 -3
- package/lib/{service → cjs/service}/command/ChangeEdgeOpCommand.js +3 -3
- package/lib/{service → cjs/service}/command/ConsolidateDescendantsCommand.d.ts +3 -3
- package/lib/{service → cjs/service}/command/ConsolidateDescendantsCommand.js +7 -7
- package/lib/{service → cjs/service}/command/RemoveSemicolons.d.ts +3 -3
- package/lib/{service → cjs/service}/command/RemoveSemicolons.js +4 -4
- package/lib/{service → cjs/service}/command/common.d.ts +2 -2
- package/lib/{service → cjs/service}/command/common.js +6 -6
- package/lib/{service → cjs/service}/completion.d.ts +2 -2
- package/lib/{service → cjs/service}/completion.js +25 -25
- package/lib/{service → cjs/service}/hover.d.ts +2 -2
- package/lib/{service → cjs/service}/hover.js +38 -38
- package/lib/{service → cjs/service}/languageFacts.d.ts +0 -0
- package/lib/{service → cjs/service}/languageFacts.js +0 -0
- package/lib/{service → cjs/service}/polyfill.d.ts +0 -0
- package/lib/{service → cjs/service}/polyfill.js +0 -0
- package/lib/{service → cjs/service}/reference.d.ts +2 -2
- package/lib/{service → cjs/service}/reference.js +9 -9
- package/lib/{service → cjs/service}/rename.d.ts +2 -2
- package/lib/{service → cjs/service}/rename.js +11 -11
- package/lib/{service → cjs/service}/service.d.ts +2 -2
- package/lib/cjs/service/service.js +39 -0
- package/lib/{service → cjs/service}/util.d.ts +2 -2
- package/lib/{service → cjs/service}/util.js +5 -5
- package/lib/{service → cjs/service}/validation.d.ts +2 -2
- package/lib/{service → cjs/service}/validation.js +3 -3
- package/lib/cjs/tester.d.ts +1 -0
- package/lib/cjs/tester.js +23 -0
- package/lib/{types.d.ts → cjs/types.d.ts} +0 -0
- package/lib/{types.js → cjs/types.js} +0 -0
- package/lib/{visitor.d.ts → cjs/visitor.d.ts} +1 -1
- package/lib/{visitor.js → cjs/visitor.js} +17 -17
- package/lib/esm/binder.d.ts +2 -0
- package/lib/esm/binder.js +296 -0
- package/lib/esm/checker.d.ts +14 -0
- package/lib/esm/checker.js +169 -0
- package/lib/esm/core.d.ts +1 -0
- package/lib/esm/core.js +10 -0
- package/lib/esm/error.d.ts +3 -0
- package/lib/esm/error.js +10 -0
- package/lib/esm/index.d.ts +5 -0
- package/lib/esm/index.js +6 -0
- package/lib/esm/parser.d.ts +84 -0
- package/lib/esm/parser.js +700 -0
- package/lib/esm/scanner.d.ts +52 -0
- package/lib/esm/scanner.js +581 -0
- package/lib/esm/service/codeAction.d.ts +12 -0
- package/lib/esm/service/codeAction.js +208 -0
- package/lib/esm/service/colorProvider.d.ts +6 -0
- package/lib/esm/service/colorProvider.js +69 -0
- package/lib/esm/service/command/ChangeAllOtherEdgeOpsAndFixGraphCommand.d.ts +10 -0
- package/lib/esm/service/command/ChangeAllOtherEdgeOpsAndFixGraphCommand.js +38 -0
- package/lib/esm/service/command/ChangeEdgeOpCommand.d.ts +10 -0
- package/lib/esm/service/command/ChangeEdgeOpCommand.js +32 -0
- package/lib/esm/service/command/ConsolidateDescendantsCommand.d.ts +10 -0
- package/lib/esm/service/command/ConsolidateDescendantsCommand.js +83 -0
- package/lib/esm/service/command/RemoveSemicolons.d.ts +10 -0
- package/lib/esm/service/command/RemoveSemicolons.js +37 -0
- package/lib/esm/service/command/common.d.ts +31 -0
- package/lib/esm/service/command/common.js +22 -0
- package/lib/esm/service/completion.d.ts +4 -0
- package/lib/esm/service/completion.js +137 -0
- package/lib/esm/service/hover.d.ts +4 -0
- package/lib/esm/service/hover.js +119 -0
- package/lib/esm/service/languageFacts.d.ts +683 -0
- package/lib/esm/service/languageFacts.js +997 -0
- package/lib/esm/service/polyfill.d.ts +16 -0
- package/lib/esm/service/polyfill.js +2 -0
- package/lib/esm/service/reference.d.ts +5 -0
- package/lib/esm/service/reference.js +66 -0
- package/lib/esm/service/rename.d.ts +4 -0
- package/lib/esm/service/rename.js +45 -0
- package/lib/esm/service/service.d.ts +28 -0
- package/lib/esm/service/service.js +35 -0
- package/lib/esm/service/util.d.ts +11 -0
- package/lib/esm/service/util.js +44 -0
- package/lib/esm/service/validation.d.ts +4 -0
- package/lib/esm/service/validation.js +20 -0
- package/lib/esm/tester.d.ts +1 -0
- package/lib/esm/tester.js +21 -0
- package/lib/esm/types.d.ts +396 -0
- package/lib/esm/types.js +71 -0
- package/lib/esm/visitor.d.ts +2 -0
- package/lib/esm/visitor.js +74 -0
- package/package.json +13 -10
- package/lib/index.d.ts +0 -5
- package/lib/service/service.js +0 -39
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
export declare const enum ErrorSource {
|
|
2
|
+
Scan = 1,
|
|
3
|
+
Parse = 2,
|
|
4
|
+
Check = 4
|
|
5
|
+
}
|
|
6
|
+
export declare type ErrorCode = ParseErrorCode | ScanErrorCode | CheckErrorCode;
|
|
7
|
+
export interface ParseErrorCode {
|
|
8
|
+
source: ErrorSource.Parse;
|
|
9
|
+
sub: ParseError;
|
|
10
|
+
}
|
|
11
|
+
export interface ScanErrorCode {
|
|
12
|
+
source: ErrorSource.Scan;
|
|
13
|
+
sub: ScanError;
|
|
14
|
+
}
|
|
15
|
+
export interface CheckErrorCode {
|
|
16
|
+
source: ErrorSource.Check;
|
|
17
|
+
sub: CheckError;
|
|
18
|
+
}
|
|
19
|
+
export declare const enum ParseError {
|
|
20
|
+
ExpectationFailed = 0,
|
|
21
|
+
TrailingData = 1,
|
|
22
|
+
FailedListParsing = 2
|
|
23
|
+
}
|
|
24
|
+
export declare const enum ScanError {
|
|
25
|
+
ExpectationFailed = 0,
|
|
26
|
+
Unterminated = 1
|
|
27
|
+
}
|
|
28
|
+
export declare const enum CheckError {
|
|
29
|
+
InvalidEdgeOperation = 0
|
|
30
|
+
}
|
|
31
|
+
export interface DiagnosticMessage {
|
|
32
|
+
message: string;
|
|
33
|
+
code: ErrorCode;
|
|
34
|
+
category: DiagnosticCategory;
|
|
35
|
+
start: number;
|
|
36
|
+
end: number;
|
|
37
|
+
}
|
|
38
|
+
export declare enum DiagnosticCategory {
|
|
39
|
+
Error = 1,
|
|
40
|
+
Warning = 2,
|
|
41
|
+
Message = 3,
|
|
42
|
+
Suggestion = 4
|
|
43
|
+
}
|
|
44
|
+
export declare type ID = string;
|
|
45
|
+
export interface SourceFile {
|
|
46
|
+
content: string;
|
|
47
|
+
graph?: Graph;
|
|
48
|
+
identifiers: Set<ID>;
|
|
49
|
+
diagnostics: DiagnosticMessage[];
|
|
50
|
+
symbols?: SymbolTable;
|
|
51
|
+
colors?: ColorTable;
|
|
52
|
+
}
|
|
53
|
+
export interface HtmlIdentifier extends SyntaxNode {
|
|
54
|
+
kind: SyntaxKind.HtmlIdentifier;
|
|
55
|
+
htmlContent: string;
|
|
56
|
+
}
|
|
57
|
+
export interface TextIdentifier extends SyntaxNode {
|
|
58
|
+
kind: SyntaxKind.TextIdentifier;
|
|
59
|
+
text: string;
|
|
60
|
+
}
|
|
61
|
+
export interface QuotedTextIdentifier extends SyntaxNode {
|
|
62
|
+
kind: SyntaxKind.QuotedTextIdentifier;
|
|
63
|
+
values: SyntaxNodeArray<StringLiteral>;
|
|
64
|
+
concatenation?: string;
|
|
65
|
+
}
|
|
66
|
+
export interface StringLiteral extends SyntaxNode {
|
|
67
|
+
kind: SyntaxKind.StringLiteral;
|
|
68
|
+
text: string;
|
|
69
|
+
}
|
|
70
|
+
export interface NumericIdentifier extends SyntaxNode {
|
|
71
|
+
kind: SyntaxKind.NumericIdentifier;
|
|
72
|
+
text: string;
|
|
73
|
+
value: number;
|
|
74
|
+
}
|
|
75
|
+
export declare type Identifier = TextIdentifier | QuotedTextIdentifier | HtmlIdentifier | NumericIdentifier;
|
|
76
|
+
export interface Graph extends SyntaxNode {
|
|
77
|
+
kind: SyntaxKind.DirectedGraph | SyntaxKind.UndirectedGraph;
|
|
78
|
+
keyword: Token<SyntaxKind.GraphKeyword | SyntaxKind.DigraphKeyword>;
|
|
79
|
+
strict?: Token<SyntaxKind.StrictKeyword>;
|
|
80
|
+
id?: Identifier;
|
|
81
|
+
statements: SyntaxNodeArray<Statement>;
|
|
82
|
+
}
|
|
83
|
+
export interface StatementBase {
|
|
84
|
+
terminator?: StatementSeparator;
|
|
85
|
+
}
|
|
86
|
+
export declare type StatementSeparator = Token<SyntaxKind.SemicolonToken>;
|
|
87
|
+
export declare type Statement = NodeStatement | EdgeStatement | AttributeStatement | IdEqualsIdStatement | SubGraphStatement;
|
|
88
|
+
export interface NodeStatement extends SyntaxNode, StatementBase {
|
|
89
|
+
kind: SyntaxKind.NodeStatement;
|
|
90
|
+
id: NodeId;
|
|
91
|
+
attributes: SyntaxNodeArray<AttributeContainer>;
|
|
92
|
+
}
|
|
93
|
+
export interface NodeId extends SyntaxNode {
|
|
94
|
+
kind: SyntaxKind.NodeId;
|
|
95
|
+
id: Identifier;
|
|
96
|
+
port?: PortDeclaration;
|
|
97
|
+
}
|
|
98
|
+
export declare type EdgeSourceOrTarget = NodeId | SubGraph;
|
|
99
|
+
export interface EdgeStatement extends SyntaxNode, StatementBase {
|
|
100
|
+
kind: SyntaxKind.EdgeStatement;
|
|
101
|
+
source: EdgeSourceOrTarget;
|
|
102
|
+
rhs: SyntaxNodeArray<EdgeRhs>;
|
|
103
|
+
attributes: SyntaxNodeArray<AttributeContainer>;
|
|
104
|
+
}
|
|
105
|
+
export interface AttributeStatement extends SyntaxNode, StatementBase {
|
|
106
|
+
kind: SyntaxKind.AttributeStatement;
|
|
107
|
+
subject: Token<SyntaxKind.GraphKeyword> | Token<SyntaxKind.NodeKeyword> | Token<SyntaxKind.EdgeKeyword>;
|
|
108
|
+
attributes: SyntaxNodeArray<AttributeContainer>;
|
|
109
|
+
}
|
|
110
|
+
export interface IdEqualsIdStatement extends SyntaxNode, StatementBase {
|
|
111
|
+
kind: SyntaxKind.IdEqualsIdStatement;
|
|
112
|
+
leftId: Identifier;
|
|
113
|
+
rightId: Identifier;
|
|
114
|
+
}
|
|
115
|
+
export interface SubGraph extends SyntaxNode {
|
|
116
|
+
kind: SyntaxKind.SubGraph;
|
|
117
|
+
id?: Identifier;
|
|
118
|
+
statements: SyntaxNodeArray<Statement>;
|
|
119
|
+
}
|
|
120
|
+
export interface SubGraphStatement extends SyntaxNode, StatementBase {
|
|
121
|
+
kind: SyntaxKind.SubGraphStatement;
|
|
122
|
+
subgraph: SubGraph;
|
|
123
|
+
}
|
|
124
|
+
export interface EdgeRhs extends SyntaxNode {
|
|
125
|
+
kind: SyntaxKind.EdgeRhs;
|
|
126
|
+
operation: EdgeOp;
|
|
127
|
+
target: EdgeSourceOrTarget;
|
|
128
|
+
}
|
|
129
|
+
export interface AttributeContainer extends SyntaxNode {
|
|
130
|
+
kind: SyntaxKind.AttributeContainer;
|
|
131
|
+
openBracket: Token<SyntaxKind.OpenBracketToken>;
|
|
132
|
+
assignments: SyntaxNodeArray<Assignment>;
|
|
133
|
+
closeBracket: Token<SyntaxKind.CloseBracketToken>;
|
|
134
|
+
}
|
|
135
|
+
export interface Assignment extends SyntaxNode {
|
|
136
|
+
kind: SyntaxKind.Assignment;
|
|
137
|
+
leftId: Identifier;
|
|
138
|
+
rightId: Identifier;
|
|
139
|
+
terminator?: AssignmentSeparator;
|
|
140
|
+
}
|
|
141
|
+
export declare type AssignmentSeparator = Token<SyntaxKind.SemicolonToken> | Token<SyntaxKind.CommaToken>;
|
|
142
|
+
export declare type PortDeclaration = NormalPortDeclaration | CompassPortDeclaration;
|
|
143
|
+
export interface NormalPortDeclaration extends SyntaxNode {
|
|
144
|
+
kind: SyntaxKind.NormalPortDeclaration;
|
|
145
|
+
colon: Token<SyntaxKind.ColonToken>;
|
|
146
|
+
id: Identifier;
|
|
147
|
+
compassPt?: CompassPortDeclaration;
|
|
148
|
+
}
|
|
149
|
+
export interface CompassPortDeclaration extends SyntaxNode {
|
|
150
|
+
kind: SyntaxKind.CompassPortDeclaration;
|
|
151
|
+
colon: Token<SyntaxKind.ColonToken>;
|
|
152
|
+
compassPt: CompassPort;
|
|
153
|
+
}
|
|
154
|
+
export declare type CompassPort = Token<SyntaxKind.CompassNorthToken> | Token<SyntaxKind.CompassNorthEastToken> | Token<SyntaxKind.CompassEastToken> | Token<SyntaxKind.CompassSouthEastToken> | Token<SyntaxKind.CompassSouthToken> | Token<SyntaxKind.CompassSouthWestToken> | Token<SyntaxKind.CompassWestToken> | Token<SyntaxKind.CompassNorthWestToken> | Token<SyntaxKind.CompassCenterToken> | Token<SyntaxKind.UnderscoreToken>;
|
|
155
|
+
export declare type EdgeOp = Token<SyntaxKind.DirectedEdgeOp> | Token<SyntaxKind.UndirectedEdgeOp>;
|
|
156
|
+
export interface TextRange {
|
|
157
|
+
pos: number;
|
|
158
|
+
end: number;
|
|
159
|
+
}
|
|
160
|
+
export declare enum SyntaxKind {
|
|
161
|
+
Unknown = 0,
|
|
162
|
+
EndOfFileToken = 1,
|
|
163
|
+
NewLineTrivia = 2,
|
|
164
|
+
WhitespaceTrivia = 3,
|
|
165
|
+
HashCommentTrivia = 4,
|
|
166
|
+
SingleLineCommentTrivia = 5,
|
|
167
|
+
MultiLineCommentTrivia = 6,
|
|
168
|
+
CommaToken = 7,
|
|
169
|
+
SemicolonToken = 8,
|
|
170
|
+
PlusToken = 9,
|
|
171
|
+
OpenBraceToken = 10,
|
|
172
|
+
CloseBraceToken = 11,
|
|
173
|
+
OpenBracketToken = 12,
|
|
174
|
+
CloseBracketToken = 13,
|
|
175
|
+
ColonToken = 14,
|
|
176
|
+
EqualsToken = 15,
|
|
177
|
+
LessThan = 16,
|
|
178
|
+
GreaterThan = 17,
|
|
179
|
+
CompassNorthToken = 18,
|
|
180
|
+
CompassNorthEastToken = 19,
|
|
181
|
+
CompassEastToken = 20,
|
|
182
|
+
CompassSouthEastToken = 21,
|
|
183
|
+
CompassSouthToken = 22,
|
|
184
|
+
CompassSouthWestToken = 23,
|
|
185
|
+
CompassWestToken = 24,
|
|
186
|
+
CompassNorthWestToken = 25,
|
|
187
|
+
CompassCenterToken = 26,
|
|
188
|
+
UnderscoreToken = 27,
|
|
189
|
+
StringLiteral = 28,
|
|
190
|
+
HtmlIdentifier = 29,
|
|
191
|
+
TextIdentifier = 30,
|
|
192
|
+
QuotedTextIdentifier = 31,
|
|
193
|
+
NumericIdentifier = 32,
|
|
194
|
+
GraphKeyword = 33,
|
|
195
|
+
DigraphKeyword = 34,
|
|
196
|
+
NodeKeyword = 35,
|
|
197
|
+
EdgeKeyword = 36,
|
|
198
|
+
SubgraphKeyword = 37,
|
|
199
|
+
StrictKeyword = 38,
|
|
200
|
+
DirectedEdgeOp = 39,
|
|
201
|
+
UndirectedEdgeOp = 40,
|
|
202
|
+
DirectedGraph = 41,
|
|
203
|
+
UndirectedGraph = 42,
|
|
204
|
+
NodeStatement = 43,
|
|
205
|
+
EdgeStatement = 44,
|
|
206
|
+
AttributeStatement = 45,
|
|
207
|
+
IdEqualsIdStatement = 46,
|
|
208
|
+
SubGraph = 47,
|
|
209
|
+
SubGraphStatement = 48,
|
|
210
|
+
EdgeRhs = 49,
|
|
211
|
+
AttributeContainer = 50,
|
|
212
|
+
Assignment = 51,
|
|
213
|
+
NormalPortDeclaration = 52,
|
|
214
|
+
CompassPortDeclaration = 53,
|
|
215
|
+
NodeId = 54,
|
|
216
|
+
Count = 55,
|
|
217
|
+
FirstNode = 41,
|
|
218
|
+
CompassBegin = 18,
|
|
219
|
+
CompassEnd = 27,
|
|
220
|
+
LastKeyword = 38
|
|
221
|
+
}
|
|
222
|
+
export interface SyntaxNode extends TextRange {
|
|
223
|
+
kind: SyntaxKind;
|
|
224
|
+
flags: SyntaxNodeFlags;
|
|
225
|
+
graphContext?: GraphContext;
|
|
226
|
+
parent?: SyntaxNode;
|
|
227
|
+
symbol?: TypeSymbol;
|
|
228
|
+
}
|
|
229
|
+
export interface Token<TKind extends SyntaxKind> extends SyntaxNode {
|
|
230
|
+
kind: TKind;
|
|
231
|
+
}
|
|
232
|
+
export interface SyntaxNodeArray<T extends SyntaxNode> extends ReadonlyArray<T>, TextRange {
|
|
233
|
+
hasTrailingComma?: boolean;
|
|
234
|
+
}
|
|
235
|
+
export declare type MutableSyntaxNodeArray<T extends SyntaxNode> = SyntaxNodeArray<T> & T[];
|
|
236
|
+
export declare const enum SyntaxNodeFlags {
|
|
237
|
+
None = 0,
|
|
238
|
+
ContainsErrors = 2,
|
|
239
|
+
Synthesized = 4
|
|
240
|
+
}
|
|
241
|
+
export declare const enum GraphContext {
|
|
242
|
+
None = 0,
|
|
243
|
+
Strict = 2,
|
|
244
|
+
Directed = 4,
|
|
245
|
+
Undirected = 8
|
|
246
|
+
}
|
|
247
|
+
export declare const enum TokenFlags {
|
|
248
|
+
None = 0,
|
|
249
|
+
Unterminated = 2,
|
|
250
|
+
PrecedingLineBreak = 4
|
|
251
|
+
}
|
|
252
|
+
export declare const enum CharacterCodes {
|
|
253
|
+
nullCharacter = 0,
|
|
254
|
+
maxAsciiCharacter = 127,
|
|
255
|
+
lineFeed = 10,
|
|
256
|
+
carriageReturn = 13,
|
|
257
|
+
lineSeparator = 8232,
|
|
258
|
+
paragraphSeparator = 8233,
|
|
259
|
+
nextLine = 133,
|
|
260
|
+
space = 32,
|
|
261
|
+
nonBreakingSpace = 160,
|
|
262
|
+
enQuad = 8192,
|
|
263
|
+
emQuad = 8193,
|
|
264
|
+
enSpace = 8194,
|
|
265
|
+
emSpace = 8195,
|
|
266
|
+
threePerEmSpace = 8196,
|
|
267
|
+
fourPerEmSpace = 8197,
|
|
268
|
+
sixPerEmSpace = 8198,
|
|
269
|
+
figureSpace = 8199,
|
|
270
|
+
punctuationSpace = 8200,
|
|
271
|
+
thinSpace = 8201,
|
|
272
|
+
hairSpace = 8202,
|
|
273
|
+
zeroWidthSpace = 8203,
|
|
274
|
+
narrowNoBreakSpace = 8239,
|
|
275
|
+
ideographicSpace = 12288,
|
|
276
|
+
mathematicalSpace = 8287,
|
|
277
|
+
ogham = 5760,
|
|
278
|
+
_ = 95,
|
|
279
|
+
$ = 36,
|
|
280
|
+
_0 = 48,
|
|
281
|
+
_1 = 49,
|
|
282
|
+
_2 = 50,
|
|
283
|
+
_3 = 51,
|
|
284
|
+
_4 = 52,
|
|
285
|
+
_5 = 53,
|
|
286
|
+
_6 = 54,
|
|
287
|
+
_7 = 55,
|
|
288
|
+
_8 = 56,
|
|
289
|
+
_9 = 57,
|
|
290
|
+
a = 97,
|
|
291
|
+
b = 98,
|
|
292
|
+
c = 99,
|
|
293
|
+
d = 100,
|
|
294
|
+
e = 101,
|
|
295
|
+
f = 102,
|
|
296
|
+
g = 103,
|
|
297
|
+
h = 104,
|
|
298
|
+
i = 105,
|
|
299
|
+
j = 106,
|
|
300
|
+
k = 107,
|
|
301
|
+
l = 108,
|
|
302
|
+
m = 109,
|
|
303
|
+
n = 110,
|
|
304
|
+
o = 111,
|
|
305
|
+
p = 112,
|
|
306
|
+
q = 113,
|
|
307
|
+
r = 114,
|
|
308
|
+
s = 115,
|
|
309
|
+
t = 116,
|
|
310
|
+
u = 117,
|
|
311
|
+
v = 118,
|
|
312
|
+
w = 119,
|
|
313
|
+
x = 120,
|
|
314
|
+
y = 121,
|
|
315
|
+
z = 122,
|
|
316
|
+
A = 65,
|
|
317
|
+
B = 66,
|
|
318
|
+
C = 67,
|
|
319
|
+
D = 68,
|
|
320
|
+
E = 69,
|
|
321
|
+
F = 70,
|
|
322
|
+
G = 71,
|
|
323
|
+
H = 72,
|
|
324
|
+
I = 73,
|
|
325
|
+
J = 74,
|
|
326
|
+
K = 75,
|
|
327
|
+
L = 76,
|
|
328
|
+
M = 77,
|
|
329
|
+
N = 78,
|
|
330
|
+
O = 79,
|
|
331
|
+
P = 80,
|
|
332
|
+
Q = 81,
|
|
333
|
+
R = 82,
|
|
334
|
+
S = 83,
|
|
335
|
+
T = 84,
|
|
336
|
+
U = 85,
|
|
337
|
+
V = 86,
|
|
338
|
+
W = 87,
|
|
339
|
+
X = 88,
|
|
340
|
+
Y = 89,
|
|
341
|
+
Z = 90,
|
|
342
|
+
ampersand = 38,
|
|
343
|
+
asterisk = 42,
|
|
344
|
+
at = 64,
|
|
345
|
+
backslash = 92,
|
|
346
|
+
backtick = 96,
|
|
347
|
+
bar = 124,
|
|
348
|
+
caret = 94,
|
|
349
|
+
closeBrace = 125,
|
|
350
|
+
closeBracket = 93,
|
|
351
|
+
closeParen = 41,
|
|
352
|
+
colon = 58,
|
|
353
|
+
comma = 44,
|
|
354
|
+
dot = 46,
|
|
355
|
+
doubleQuote = 34,
|
|
356
|
+
equals = 61,
|
|
357
|
+
exclamation = 33,
|
|
358
|
+
greaterThan = 62,
|
|
359
|
+
hash = 35,
|
|
360
|
+
lessThan = 60,
|
|
361
|
+
minus = 45,
|
|
362
|
+
openBrace = 123,
|
|
363
|
+
openBracket = 91,
|
|
364
|
+
openParen = 40,
|
|
365
|
+
percent = 37,
|
|
366
|
+
plus = 43,
|
|
367
|
+
question = 63,
|
|
368
|
+
semicolon = 59,
|
|
369
|
+
singleQuote = 39,
|
|
370
|
+
slash = 47,
|
|
371
|
+
tilde = 126,
|
|
372
|
+
backspace = 8,
|
|
373
|
+
formFeed = 12,
|
|
374
|
+
byteOrderMark = 65279,
|
|
375
|
+
tab = 9,
|
|
376
|
+
verticalTab = 11
|
|
377
|
+
}
|
|
378
|
+
export declare type SymbolTable = Map<string, TypeSymbol>;
|
|
379
|
+
export declare type ColorTable = Map<string, ColorInfo>;
|
|
380
|
+
export interface TypeSymbol {
|
|
381
|
+
name: string;
|
|
382
|
+
firstMention: SyntaxNode;
|
|
383
|
+
references?: SyntaxNode[];
|
|
384
|
+
members?: SymbolTable;
|
|
385
|
+
}
|
|
386
|
+
export interface ColorInfo {
|
|
387
|
+
node: SyntaxNode;
|
|
388
|
+
}
|
|
389
|
+
export interface Color {
|
|
390
|
+
readonly red: number;
|
|
391
|
+
readonly green: number;
|
|
392
|
+
readonly blue: number;
|
|
393
|
+
readonly alpha: number;
|
|
394
|
+
}
|
|
395
|
+
export declare type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
|
396
|
+
export declare type StatementOf<T extends Statement["kind"]> = T extends SyntaxKind.SubGraphStatement ? SubGraphStatement : T extends SyntaxKind.AttributeStatement ? AttributeStatement : T extends SyntaxKind.EdgeStatement ? EdgeStatement : T extends SyntaxKind.IdEqualsIdStatement ? IdEqualsIdStatement : T extends SyntaxKind.NodeStatement ? NodeStatement : never;
|
package/lib/esm/types.js
ADDED
|
@@ -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,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": "
|
|
3
|
+
"version": "2.0.0",
|
|
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
|
-
"
|
|
7
|
+
"main": "./lib/cjs/index.js",
|
|
8
|
+
"module": "./lib/esm/index.js",
|
|
9
|
+
"types": "./lib/esm/index.d.ts",
|
|
9
10
|
"scripts": {
|
|
10
|
-
"test": "
|
|
11
|
+
"test": "jest --rootDir=tests",
|
|
11
12
|
"clean": "rimraf lib",
|
|
12
|
-
"compile": "tsc",
|
|
13
|
-
"
|
|
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",
|
|
@@ -29,10 +32,10 @@
|
|
|
29
32
|
"vscode-languageserver-types": "^3.16.0"
|
|
30
33
|
},
|
|
31
34
|
"devDependencies": {
|
|
32
|
-
"@types/
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
35
|
+
"@types/jest": "^27.5.0",
|
|
36
|
+
"jest": "^28.0.3",
|
|
37
|
+
"rimraf": "^3.0.2",
|
|
38
|
+
"ts-jest": "^28.0.1",
|
|
36
39
|
"ts-node": "^10.7.0",
|
|
37
40
|
"typescript": "^4.6.4"
|
|
38
41
|
},
|
package/lib/index.d.ts
DELETED
package/lib/service/service.js
DELETED
|
@@ -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
|