UNPKG

greybel-languageserver-core

Version:
47 lines 1.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DocumentWorkspaceBuilder = exports.DocumentWorkspaceContext = void 0; class DocumentWorkspaceContext { constructor() { this.documents = []; this.refs = new Map(); this.dependencies = new Map(); } async loadDependencies() { await Promise.all(this.documents.map(async (item) => { const depUris = await item.getDependencies(); this.dependencies.set(item.textDocument.uri, depUris); })); } getDependencies(documentUri) { return this.dependencies.get(documentUri) || []; } getRefMap() { return this.refs; } getRef(uri) { return this.refs.get(uri) || null; } setRef(uri, document) { this.refs.set(uri, document); this.documents.push(document); } } exports.DocumentWorkspaceContext = DocumentWorkspaceContext; class DocumentWorkspaceBuilder { constructor(options) { this.context = options.context; } async build() { const workspaceContext = new DocumentWorkspaceContext(); const allFileUris = await this.context.fs.getWorkspaceRelatedFiles(); await Promise.all(allFileUris.map(async (uri) => { const textDocument = await this.context.documentManager.getOrOpen(uri.toString()); workspaceContext.setRef(textDocument.textDocument.uri, textDocument); return textDocument; })); return workspaceContext; } } exports.DocumentWorkspaceBuilder = DocumentWorkspaceBuilder; //# sourceMappingURL=document-workspace-builder.js.map