UNPKG

codess

Version:

vscode代码片段管理器,通过 本地包(本地某个文件夹) 或官网的 远程包(代码片段集合) 生成本地项目的 vscode 代码片段配置。

65 lines (64 loc) 2.31 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.byJsonGenSnippts = byJsonGenSnippts; const fs_1 = __importDefault(require("fs")); const is_1 = require("../yayaluoya-tool/is"); const path_1 = __importDefault(require("path")); const web_i_1 = require("../web_i"); const reservedName_1 = require("../utils/reservedName"); function byJsonGenSnippts(filePaths) { let snippets = []; for (let filePath of filePaths) { let fileName = path_1.default.parse(filePath).name; let item = JSON.parse(fs_1.default.readFileSync(filePath).toString()); for (let i in item) { let scope = item[i].scope || ''; let prefix = item[i].prefix; let body = item[i].body; let description = item[i].description; snippets.push({ type: 'snippet', scope: [ (0, web_i_1.languageIds)() .filter((_) => !['snippets'].includes(_)) .find((_) => _ == fileName), ...scope.slice(','), ].filter(Boolean), name: i, body: (0, is_1.isArray)(body) ? body.join('\n') : body, prefix, description, }); } } let contents = []; snippets.forEach((_) => { var _a; let prefix = (0, reservedName_1.reservedName)(_.prefix) ? (0, reservedName_1.resetReservedName)(_.prefix) : _.prefix; let item = contents.find((__) => __.name == prefix); if (!item) { item = { name: prefix, content: '', }; contents.push(item); } item.content += [ `## ${_.prefix}`, `#### ${_.name || ''}`, `${_.description || ''}`, `\`\`\`${((_a = _.scope) === null || _a === void 0 ? void 0 : _a.join(',')) || ''}`, `${(_.body || '').trim()}`, `\`\`\``, '', '', ].join('\n'); }); return contents.map((_) => { _.content = _.content.trim(); return _; }); }