codess
Version:
vscode代码片段管理器,通过 本地包(本地某个文件夹) 或官网的 远程包(代码片段集合) 生成本地项目的 vscode 代码片段配置。
39 lines (38 loc) • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.apiSnippetsToTree = apiSnippetsToTree;
exports.parseApiSnippets = parseApiSnippets;
const snippet_1 = require("../snippet");
function apiSnippetsToTree(snippets) {
snippets.forEach((_) => {
if (_.parentIdU) {
let p = snippets.find((__) => __.idU == _.parentIdU);
if (p) {
p.children || (p.children = []);
p.children.findIndex((__) => __.idU == _.idU) == -1 && p.children.push(_);
}
}
});
return snippets.filter((_) => !_.parentIdU);
}
function parseApiSnippets(items = []) {
let s = [];
for (let o of items) {
switch (o.type) {
case 'group':
s.push({
type: 'group',
prefix: o.name,
children: parseApiSnippets(o.children || []),
});
break;
case 'snippet':
s.push(...(0, snippet_1.parseSnippet)({
type: 'snippet',
prefix: o.name,
}, o.body || '').snippets);
break;
}
}
return s;
}