UNPKG

@unisnips/sublime

Version:

Utilities for converting sublime text in unisnips project

55 lines 2.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@unisnips/core"); function makeReplacements(placeholders) { var replacements = []; var maxIndex = 0; placeholders.forEach(function (placeholder) { if (placeholder.valueType === 'tabstop') { maxIndex = Math.max(maxIndex, placeholder.index); } }); var variableOffset = 0; placeholders.forEach(function (placeholder) { var valueType = placeholder.valueType, description = placeholder.description, index = placeholder.index; var newDesc; if (valueType === 'tabstop') { newDesc = "${" + index + (description ? ":" + description : '') + "}"; } else if (valueType === 'variable') { console.warn('[sublime] variable is not supported'); variableOffset++; var mockedIndex = variableOffset + maxIndex; newDesc = "${" + mockedIndex + (description ? ":" + description : '') + "}"; } else if (valueType === 'script') { console.warn('[sublime] script placeholder is not supported'); } var replacement = { type: 'string', placeholder: placeholder, replaceContent: newDesc, }; replacements.push(replacement); }); return replacements; } exports.generateSnippets = function (defs, opts) { if (opts === void 0) { opts = {}; } var results = []; defs.forEach(function (def) { var replacements = makeReplacements(def.placeholders); var newBody = core_1.applyReplacements(def, replacements); var sublimeSnippet = { tabTrigger: def.trigger, content: newBody, description: def.description, }; var str = "<snippet>\n\u00A0\u00A0<content><![CDATA[\n" + sublimeSnippet.content + "\n ]]></content>\n <tabTrigger>" + sublimeSnippet.tabTrigger + "</tabTrigger>\n <description>" + sublimeSnippet.description + "</description>\n</snippet>"; results.push(str); }); return { content: results.join('\n'), }; }; //# sourceMappingURL=generate.js.map