1|
2|
3|
4|
5|
6|
7|
8|
9|
10|
11|
12|
13|
14|
15|
16|
17|
18|
19|
20|
21|
22|
23|
24|
25|
26|
27|
28|
29|
30|
31|
32|
33|
34|
35|
36|
37|
38|
39|
40|
41|
42|
43|
44|
45|
46|
47|
48|
49|
50|
51|
52|
53|
54|
55|
56|
57|
58|
59|
60|
61|
62|
63|
64|
65|
66|
67|
68|
69|
70|
71|
72|
73|
74|
75|
76|
77|
78|
79|
80|
81|
82|
83|
84|
85|
86|
87|
88|
89|
90|
91|
92|
93|
94|
95|
96|
97|
98|
99|
100|
101|
102|
103|
104|
105|
106|
107|
108|
109|
110|
111|
112|
113|
114|
115|
116|
117|
118|
119|
120|
121|
122|
123|
124|
125|
126|
127|
128|
129|
130|
131|
132|
133|
134|
135|
136|
137|
138|
139|
140|
141|
142|
143|
144|
145|
146|
147|
148|
149|
150|
151|
152|
153|
154|
155|
156|
157|
158|
159|
160|
161|
162|
163|
164|
165|
166|
167|
168|
169|
170|
171|
172|
173|
174|
175|
176|
177|
178|
179|
180|
181|
182|
183|
184|
185|
186|
187|
188|
189|
190|
191|
192|
193|
194|
195|
196|
197|
198|
199|
200|
201|
202|
203|
204|
205|
206|
207|
208|
209|
210|
211|
212|
213|
214|
215|
216|
217|
218|
219|
220|
221|
222|
223|
224|
225|
226|
227|
228|
229|
230|
231|
232|
233|
234|
235|
236|
237|
238|
239|
240|
241|
242|
243|
244|
245|
246|
247|
248|
249|
250|
251|
252|
253|
254|
255|
256|
257|
258|
259|
260|
261|
262|
263|
264|
265|
266|
267|
268|
269|
270|
271|
272|
273|
274|
275|
276|
277|
278|
279|
280|
281|
282|
283|
284|
285|
286|
287|
288|
289|
290|
291|
292|
293|
294|
295|
296|
297|
298|
299|
300|
301|
302|
303|
304|
305|
306|
307|
308|
309|
310|
311|
312|
313|
314|
315|
316|
317|
318|
319|
320|
321|
322|
323|
324|
325|
326|
327|
328|
329|
330|
331|
332|
333|
334|
335|
336|
337|
338|
339|
340|
341|
342|
343|
344|
345|
346|
347|
348|
349|
350|
351|
352|
353|
354|
355|
356|
357|
358|
359|
360|
361|
362|
363|
364|
365|
366|
367|
368|
369|
370|
371|
372|
373|
374|
375|
376|
377|
378|
379|
380|
381|
382|
383|
384|
385|
386|
387|
388|
389|
390|
391|
392|
393|
394|
395|
396|
397|
398|
399|
400|
401|
402|
403|
404|
405|
406|
407|
408|
409|
410|
411|
412|
413|
414|
415|
416|
417|
418|
419|
420|
421|
422|
423|
424|
425|
426|
427|
428|
429|
430|
431|
432|
433|
434|
435|
436|
437|
438|
439|
440|
441|
442|
443|
444|
445|
446|
447|
448|
449|
450|
451|
452|
453|
454|
455|
456|
457|
458|
459|
460|
461|
462|
463|
464|
465|
466|
467|
468|
469|
470|
471|
472|
473|
474|
475|
476|
477|
478|
479|
480|
481|
482|
483|
484|
485|
486|
487|
488|
489|
490|
491|
492|
493|
494|
495|
496|
497|
498|
499|
500|
501|
502|
503|
504|
505|
506|
507|
508|
509|
510|
511|
512|
513|
514|
515|
516|
517|
518|
519|
520|
521|
522|
523|
524|
525|
526|
527|
528|
529|
530|
531|
532|
533|
534|
535|
536|
537|
538|
539|
540|
541|
542|
543|
544|
545|
546|
547|
548|
549|
550|
551|
552|
553|
554|
555|
556|
557|
558|
559|
560|
561|
562|
563|
564|
565|
566|
567|
568|
569|
570|
571|
572|
573|
574|
575|
576|
577|
578|
579|
580|
581|
582|
583|
584|
585|
586|
587|
588|
589|
590|
591|
592|
593|
594|
595|
596|
597|
598|
599|
600|
601|
602|
603|
604|
605|
606|
607|
608|
609|
610|
611|
612|
613|
614|
615|
616|
617|
618|
619|
620|
621|
622|
623|
624|
625|
626|
627|
628|
629|
630|
631|
632|
633|
634|
635|
636|
637|
638|
639|
640|
641|
642|
643|
644|
645|
646|
647|
648|
649|
650|
651|
652|
653|
654|
655|
656|
657|
658|
659|
660|
661|
662|
663|
664|
665|
666|
667|
668|
669|
670|
671|
672|
673|
674|
675|
676|
677|
678|
679|
680|
681|
682|
683|
684|
685|
686|
687|
688|
689|
690|
691|
692|
693|
694|
695|
696|
697|
698|
699|
700|
701|
702|
703|
704|
705|
706|
707|
708|
709|
710|
711|
import * as lsp from 'vscode-languageserver-protocol';
export declare type Id = number | string;
export interface Element {
id: Id;
type: ElementTypes;
}
export declare enum ElementTypes {
vertex = "vertex",
edge = "edge"
}
export declare enum VertexLabels {
metaData = "metaData",
event = "$event",
project = "project",
range = "range",
location = "location",
document = "document",
moniker = "moniker",
packageInformation = "packageInformation",
resultSet = "resultSet",
documentSymbolResult = "documentSymbolResult",
foldingRangeResult = "foldingRangeResult",
documentLinkResult = "documentLinkResult",
diagnosticResult = "diagnosticResult",
declarationResult = "declarationResult",
definitionResult = "definitionResult",
typeDefinitionResult = "typeDefinitionResult",
hoverResult = "hoverResult",
referenceResult = "referenceResult",
implementationResult = "implementationResult"
}
export declare type Uri = string;
export interface V extends Element {
type: ElementTypes.vertex;
label: VertexLabels;
}
export declare enum EventKind {
begin = "begin",
end = "end"
}
export declare enum EventScope {
project = "project",
document = "document"
}
export interface Event extends V {
label: VertexLabels.event;
kind: EventKind;
scope: EventScope;
}
export interface ProjectEvent extends Event {
scope: EventScope.project;
data: Id;
}
export interface DocumentEvent extends Event {
scope: EventScope.document;
data: Id;
}
export interface ResultSet extends V {
label: VertexLabels.resultSet;
}
export declare enum RangeTagTypes {
declaration = "declaration",
definition = "definition",
reference = "reference",
unknown = "unknown"
}
export interface DeclarationTag {
type: RangeTagTypes.declaration;
text: string;
kind: lsp.SymbolKind;
deprecated?: boolean;
fullRange: lsp.Range;
detail?: string;
}
export interface DefinitionTag {
type: RangeTagTypes.definition;
text: string;
kind: lsp.SymbolKind;
deprecated?: boolean;
fullRange: lsp.Range;
detail?: string;
}
export interface ReferenceTag {
type: RangeTagTypes.reference;
text: string;
}
export interface UnknownTag {
type: RangeTagTypes.unknown;
text: string;
}
export declare type RangeTag = DefinitionTag | DeclarationTag | ReferenceTag | UnknownTag;
export interface Range extends V, lsp.Range {
label: VertexLabels.range;
tag?: RangeTag;
}
export declare type RangeId = Id;
export interface DefinitionRange extends Range {
tag: DefinitionTag;
}
export interface DeclarationRange extends Range {
tag: DeclarationTag;
}
export interface ReferenceRange extends Range {
tag: ReferenceTag;
}
export interface Location extends V {
label: VertexLabels.location;
range: lsp.Range;
}
export interface MetaData extends V {
label: VertexLabels.metaData;
version: string;
projectRoot: Uri;
positionEncoding: 'utf-16';
toolInfo?: {
name: string;
version?: string;
args?: string[];
};
}
export interface Project extends V {
label: VertexLabels.project;
kind: string;
resource?: Uri;
contents?: string;
}
export declare type DocumentId = Id;
export interface Document extends V {
label: VertexLabels.document;
uri: Uri;
languageId: string;
contents?: string;
}
export declare enum MonikerKind {
import = "import",
export = "export",
local = "local"
}
export interface Moniker extends V {
label: VertexLabels.moniker;
scheme: string;
identifier: string;
kind?: MonikerKind;
}
export interface PackageInformation extends V {
label: VertexLabels.packageInformation;
name: string;
manager: string;
uri?: Uri;
contents?: string;
version?: string;
repository?: {
type: string;
url: string;
commitId?: string;
};
}
export interface RangeBasedDocumentSymbol {
id: RangeId;
children?: RangeBasedDocumentSymbol[];
}
export interface DocumentSymbolResult extends V {
label: VertexLabels.documentSymbolResult;
result: lsp.DocumentSymbol[] | RangeBasedDocumentSymbol[];
}
export interface DiagnosticResult extends V {
label: VertexLabels.diagnosticResult;
result: lsp.Diagnostic[];
}
export interface FoldingRangeResult extends V {
label: VertexLabels.foldingRangeResult;
result: lsp.FoldingRange[];
}
export interface DocumentLinkResult extends V {
label: VertexLabels.documentLinkResult;
result: lsp.DocumentLink[];
}
export interface DeclarationResult extends V {
label: VertexLabels.declarationResult;
}
export interface DefinitionResult extends V {
label: VertexLabels.definitionResult;
}
export interface TypeDefinitionResult extends V {
label: VertexLabels.typeDefinitionResult;
}
export interface ReferenceResult extends V {
label: VertexLabels.referenceResult;
}
export interface ImplementationResult extends V {
label: VertexLabels.implementationResult;
}
export interface HoverResult extends V {
label: VertexLabels.hoverResult;
result: lsp.Hover;
}
export declare type Vertex = MetaData | ProjectEvent | DocumentEvent | Project | Document | Moniker | PackageInformation | ResultSet | Range | DocumentSymbolResult | FoldingRangeResult | DocumentLinkResult | DiagnosticResult | DefinitionResult | DeclarationResult | TypeDefinitionResult | HoverResult | ReferenceResult | ImplementationResult;
export declare enum EdgeLabels {
contains = "contains",
item = "item",
next = "next",
moniker = "moniker",
nextMoniker = "nextMoniker",
packageInformation = "packageInformation",
textDocument_documentSymbol = "textDocument/documentSymbol",
textDocument_foldingRange = "textDocument/foldingRange",
textDocument_documentLink = "textDocument/documentLink",
textDocument_diagnostic = "textDocument/diagnostic",
textDocument_definition = "textDocument/definition",
textDocument_declaration = "textDocument/declaration",
textDocument_typeDefinition = "textDocument/typeDefinition",
textDocument_hover = "textDocument/hover",
textDocument_references = "textDocument/references",
textDocument_implementation = "textDocument/implementation"
}
export interface E11<S extends V, T extends V, K extends EdgeLabels> extends Element {
_?: [S, T];
id: Id;
type: ElementTypes.edge;
label: K;
outV: Id;
inV: Id;
}
export interface E1N<S extends V, T extends V, K extends EdgeLabels> extends Element {
_?: [S, T];
id: Id;
type: ElementTypes.edge;
label: K;
outV: Id;
inVs: Id[];
}
export declare type E<S extends V, T extends V, K extends EdgeLabels> = E11<S, T, K> | E1N<S, T, K>;
export declare enum ItemEdgeProperties {
declarations = "declarations",
definitions = "definitions",
references = "references",
referenceResults = "referenceResults",
implementationResults = "implementationResults"
}
export interface ItemEdge<S extends V, T extends V> extends E1N<S, T, EdgeLabels.item> {
document: Id;
property?: ItemEdgeProperties;
}
export declare type contains = E1N<Project, Document, EdgeLabels.contains> | E1N<Document, Range, EdgeLabels.contains>;
export declare type next = E11<Range, ResultSet, EdgeLabels.next>;
export declare type item = ItemEdge<DeclarationResult, Range> | ItemEdge<DefinitionResult, Range> | ItemEdge<TypeDefinitionResult, Range> | ItemEdge<ReferenceResult, Range> | ItemEdge<ReferenceResult, ReferenceResult> | ItemEdge<ImplementationResult, Range> | ItemEdge<ImplementationResult, ImplementationResult>;
export declare type moniker = E11<Range, Moniker, EdgeLabels.moniker> | E11<ResultSet, Moniker, EdgeLabels.moniker> | E11<DeclarationResult, Moniker, EdgeLabels.moniker> | E11<DefinitionResult, Moniker, EdgeLabels.moniker> | E11<TypeDefinitionResult, Moniker, EdgeLabels.moniker> | E11<ReferenceResult, Moniker, EdgeLabels.moniker> | E11<ImplementationResult, Moniker, EdgeLabels.moniker>;
export declare type nextMoniker = E11<Moniker, Moniker, EdgeLabels.nextMoniker>;
export declare type packageInformation = E11<Moniker, PackageInformation, EdgeLabels.packageInformation>;
export declare type textDocument_documentSymbol = E11<Document, DocumentSymbolResult, EdgeLabels.textDocument_documentSymbol>;
export declare type textDocument_foldingRange = E11<Document, FoldingRangeResult, EdgeLabels.textDocument_foldingRange>;
export declare type textDocument_documentLink = E11<Document, DocumentLinkResult, EdgeLabels.textDocument_documentLink>;
export declare type textDocument_diagnostic = E11<Project, DiagnosticResult, EdgeLabels.textDocument_diagnostic> | E11<Document, DiagnosticResult, EdgeLabels.textDocument_diagnostic>;
export declare type textDocument_declaration = E11<Range, DeclarationResult, EdgeLabels.textDocument_declaration> | E11<ResultSet, DeclarationResult, EdgeLabels.textDocument_declaration>;
export declare type textDocument_definition = E11<Range, DefinitionResult, EdgeLabels.textDocument_definition> | E11<ResultSet, DefinitionResult, EdgeLabels.textDocument_definition>;
export declare type textDocument_typeDefinition = E11<Range, TypeDefinitionResult, EdgeLabels.textDocument_typeDefinition> | E11<ResultSet, TypeDefinitionResult, EdgeLabels.textDocument_typeDefinition>;
export declare type textDocument_hover = E11<Range, HoverResult, EdgeLabels.textDocument_hover> | E11<ResultSet, HoverResult, EdgeLabels.textDocument_hover>;
export declare type textDocument_references = E11<Range, ReferenceResult, EdgeLabels.textDocument_references> | E11<ResultSet, ReferenceResult, EdgeLabels.textDocument_references>;
export declare type textDocument_implementation = E11<Range, ImplementationResult, EdgeLabels.textDocument_implementation> | E11<ResultSet, ImplementationResult, EdgeLabels.textDocument_implementation>;
export declare type Edge = contains | item | next | moniker | nextMoniker | packageInformation | textDocument_documentSymbol | textDocument_foldingRange | textDocument_documentLink | textDocument_diagnostic | textDocument_declaration | textDocument_definition | textDocument_typeDefinition | textDocument_hover | textDocument_references | textDocument_implementation;
export declare namespace Edge {
function is11(edge: Edge): edge is (Edge & {
inV: Id;
});
function is1N(edge: Edge): edge is (Edge & {
inVs: Id[];
});
}