UNPKG

coc.nvim

Version:

LSP based intellisense engine for neovim & vim8.

44 lines 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const fs_1 = tslib_1.__importDefault(require("fs")); const path_1 = tslib_1.__importDefault(require("path")); const jsonc_parser_1 = require("jsonc-parser"); const vscode_uri_1 = require("vscode-uri"); const logger = require('../util/logger')('configuration-shape'); class ConfigurationProxy { constructor(workspace) { this.workspace = workspace; } get nvim() { return this.workspace.nvim; } async modifyConfiguration(target, key, value) { let { nvim, workspace } = this; let file = workspace.getConfigFile(target); if (!file) return; let formattingOptions = { tabSize: 2, insertSpaces: true }; let content = fs_1.default.readFileSync(file, 'utf8'); value = value == null ? undefined : value; let edits = jsonc_parser_1.modify(content, [key], value, { formattingOptions }); content = jsonc_parser_1.applyEdits(content, edits); fs_1.default.writeFileSync(file, content, 'utf8'); let doc = workspace.getDocument(vscode_uri_1.URI.file(file).toString()); if (doc) nvim.command('checktime', true); return; } get workspaceConfigFile() { let folder = path_1.default.join(this.workspace.root, '.vim'); return path_1.default.join(folder, 'coc-settings.json'); } $updateConfigurationOption(target, key, value) { this.modifyConfiguration(target, key, value); // tslint:disable-line } $removeConfigurationOption(target, key) { this.modifyConfiguration(target, key); // tslint:disable-line } } exports.default = ConfigurationProxy; //# sourceMappingURL=shape.js.map