UNPKG

coc.nvim

Version:

LSP based intellisense engine for neovim & vim8.

62 lines 2.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const path = tslib_1.__importStar(require("path")); const workspace_1 = tslib_1.__importDefault(require("../workspace")); const vscode_uri_1 = require("vscode-uri"); const logger = require('../util/logger')('snippets-variable'); class SnippetVariableResolver { constructor() { this._variableToValue = {}; const currentDate = new Date(); this._variableToValue = { CURRENT_YEAR: currentDate.getFullYear().toString(), CURRENT_YEAR_SHORT: currentDate .getFullYear() .toString() .slice(-2), CURRENT_MONTH: (currentDate.getMonth() + 1).toString(), CURRENT_DATE: currentDate.getDate().toString(), CURRENT_HOUR: currentDate.getHours().toString(), CURRENT_MINUTE: currentDate.getMinutes().toString(), CURRENT_SECOND: currentDate.getSeconds().toString(), CURRENT_DAY_NAME: currentDate.toLocaleString("en-US", { weekday: "long" }), CURRENT_DAY_NAME_SHORT: currentDate.toLocaleString("en-US", { weekday: "short" }), CURRENT_MONTH_NAME: currentDate.toLocaleString("en-US", { month: "long" }), CURRENT_MONTH_NAME_SHORT: currentDate.toLocaleString("en-US", { month: "short" }) }; } get nvim() { return workspace_1.default.nvim; } async init(document) { let { nvim } = this; let filepath = vscode_uri_1.URI.parse(document.uri).fsPath; let [lnum, line, cword, selected, clipboard, yank] = await this.nvim.eval(`[line('.'),getline('.'),expand('<cword>'),get(g:,'coc_selected_text', ''),getreg('+'),getreg('"')]`); Object.assign(this._variableToValue, { YANK: yank || undefined, CLIPBOARD: clipboard || undefined, TM_CURRENT_LINE: line, TM_SELECTED_TEXT: selected || undefined, TM_CURRENT_WORD: cword, TM_LINE_INDEX: (lnum - 1).toString(), TM_LINE_NUMBER: lnum.toString(), TM_FILENAME: path.basename(filepath), TM_FILENAME_BASE: path.basename(filepath, path.extname(filepath)), TM_DIRECTORY: path.dirname(filepath), TM_FILEPATH: filepath, }); } resolve(variable) { const variableName = variable.name; if (this._variableToValue.hasOwnProperty(variableName)) { return this._variableToValue[variableName] || ''; } if (variable.children && variable.children.length) { return variable.toString(); } return variableName; } } exports.SnippetVariableResolver = SnippetVariableResolver; //# sourceMappingURL=variableResolve.js.map