-
Notifications
You must be signed in to change notification settings - Fork 330
Expand file tree
/
Copy pathyamlDefinition.ts
More file actions
18 lines (16 loc) · 893 Bytes
/
yamlDefinition.ts
File metadata and controls
18 lines (16 loc) · 893 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { JSONSchemaRef, JSONSchema } from '../jsonSchema';
import { TextDocument, Position, DefinitionLink } from 'vscode-languageserver-types';
import { parse as parseYAML } from '../parser/yamlParser07';
import { matchOffsetToDocument } from '../utils/arrUtils';
import { findDefinition as JSONFindDefinition } from 'vscode-json-languageservice/lib/umd/services/jsonDefinition';
export function findDefinition(document: TextDocument, position: Position): Thenable<DefinitionLink[]> {
const doc = parseYAML(document.getText());
const offset = document.offsetAt(position);
const currentDoc = matchOffsetToDocument(offset, doc);
if (currentDoc === null) {
return Promise.resolve([]);
}
const currentDocIndex = doc.documents.indexOf(currentDoc);
currentDoc.currentDocIndex = currentDocIndex;
return JSONFindDefinition(document, position, currentDoc);
}