UNPKG

yaml-language-server

Version:
102 lines 5.75 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Red Hat, Inc. All rights reserved. * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { YAMLSchemaService } from './services/yamlSchemaService'; import { YAMLDocumentSymbols } from './services/documentSymbols'; import { YAMLHover } from './services/yamlHover'; import { YAMLValidation } from './services/yamlValidation'; import { YAMLFormatter } from './services/yamlFormatter'; import { YamlLinks } from './services/yamlLinks'; import { getFoldingRanges } from './services/yamlFolding'; import { YamlCodeActions } from './services/yamlCodeActions'; import { doDocumentOnTypeFormatting } from './services/yamlOnTypeFormatting'; import { YamlCodeLens } from './services/yamlCodeLens'; import { YamlCompletion } from './services/yamlCompletion'; import { yamlDocumentsCache } from './parser/yaml-documents'; import { JSONSchemaSelection } from '../languageserver/handlers/schemaSelectionHandlers'; import { YamlDefinition } from './services/yamlDefinition'; import { getSelectionRanges } from './services/yamlSelectionRanges'; import { YamlRename } from './services/yamlRename'; export var SchemaPriority; (function (SchemaPriority) { SchemaPriority[SchemaPriority["SchemaStore"] = 1] = "SchemaStore"; SchemaPriority[SchemaPriority["SchemaAssociation"] = 2] = "SchemaAssociation"; SchemaPriority[SchemaPriority["Settings"] = 3] = "Settings"; SchemaPriority[SchemaPriority["SchemaDetectionDisabled"] = 4] = "SchemaDetectionDisabled"; })(SchemaPriority || (SchemaPriority = {})); export function getLanguageService(params) { const schemaService = new YAMLSchemaService(params.schemaRequestService, params.workspaceContext, null, params.yamlSettings); const completer = new YamlCompletion(schemaService, params.clientCapabilities, yamlDocumentsCache, params.telemetry); const hover = new YAMLHover(schemaService, params.telemetry); const yamlDocumentSymbols = new YAMLDocumentSymbols(params.telemetry); const yamlValidation = new YAMLValidation(schemaService, params.telemetry); const formatter = new YAMLFormatter(); const yamlCodeActions = new YamlCodeActions(params.clientCapabilities); const yamlCodeLens = new YamlCodeLens(schemaService, params.telemetry); const yamlLinks = new YamlLinks(params.telemetry); const yamlDefinition = new YamlDefinition(params.telemetry); const yamlRename = new YamlRename(params.telemetry); new JSONSchemaSelection(schemaService, params.yamlSettings, params.connection); return { configure: (settings) => { schemaService.clearExternalSchemas(); if (settings.schemas) { schemaService.schemaPriorityMapping = new Map(); settings.schemas.forEach((settings) => { const currPriority = settings.priority ? settings.priority : 0; schemaService.addSchemaPriority(settings.uri, currPriority); schemaService.registerExternalSchema(settings.uri, settings.fileMatch, settings.schema, settings.name, settings.description, settings.versions); }); } yamlValidation.configure(settings); hover.configure(settings); completer.configure(settings, params.yamlSettings); formatter.configure(settings); yamlCodeActions.configure(settings, params?.yamlSettings?.yamlFormatterSettings?.printWidth || 80); }, registerCustomSchemaProvider: (schemaProvider) => { schemaService.registerCustomSchemaProvider(schemaProvider); }, findLinks: yamlLinks.findLinks.bind(yamlLinks), doComplete: completer.doComplete.bind(completer), doValidation: yamlValidation.doValidation.bind(yamlValidation), doHover: hover.doHover.bind(hover), findDocumentSymbols: yamlDocumentSymbols.findDocumentSymbols.bind(yamlDocumentSymbols), findDocumentSymbols2: yamlDocumentSymbols.findHierarchicalDocumentSymbols.bind(yamlDocumentSymbols), doDefinition: yamlDefinition.getDefinition.bind(yamlDefinition), resetSchema: (uri) => { return schemaService.onResourceChange(uri); }, doFormat: formatter.format.bind(formatter), doDocumentOnTypeFormatting, addSchema: (schemaID, schema) => { return schemaService.saveSchema(schemaID, schema); }, deleteSchema: (schemaID) => { return schemaService.deleteSchema(schemaID); }, modifySchemaContent: (schemaAdditions) => { return schemaService.addContent(schemaAdditions); }, deleteSchemaContent: (schemaDeletions) => { return schemaService.deleteContent(schemaDeletions); }, deleteSchemasWhole: (schemaDeletions) => { return schemaService.deleteSchemas(schemaDeletions); }, getFoldingRanges, getSelectionRanges, getCodeAction: (document, params) => { return yamlCodeActions.getCodeAction(document, params); }, getCodeLens: (document) => { return yamlCodeLens.getCodeLens(document); }, resolveCodeLens: (param) => yamlCodeLens.resolveCodeLens(param), prepareRename: (document, params) => yamlRename.prepareRename(document, params), doRename: (document, params) => yamlRename.doRename(document, params), }; } //# sourceMappingURL=yamlLanguageService.js.map