UNPKG

wix-storybook-utils

Version:

Utilities for automated component documentation within Storybook

49 lines 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleIndentation = exports.completeIfInTagNewAttribute = exports.completeIfInTag = exports.completeAfter = void 0; var tslib_1 = require("tslib"); var CodeMirror = tslib_1.__importStar(require("codemirror")); var completeAfter = function (codemirror, predicate) { if (!predicate || predicate()) { setTimeout(function () { if (!codemirror.state.completionActive) { codemirror.showHint({ completeSingle: false }); } }, 100); } return CodeMirror.Pass; }; exports.completeAfter = completeAfter; var completeIfInTag = function (codemirror, ignoreAutocomplete) { return (0, exports.completeAfter)(codemirror, function () { var token = codemirror.getTokenAt(codemirror.getCursor()); if (ignoreAutocomplete || (token.type === 'string' && (!/['"]/.test(token.string.charAt(token.string.length - 1)) || token.string.length === 1))) { return false; } var inner = CodeMirror.innerMode(codemirror.getMode(), token.state).state; return inner.tagName; }); }; exports.completeIfInTag = completeIfInTag; var completeIfInTagNewAttribute = function (codemirror) { var _a = codemirror.getCursor(), line = _a.line, ch = _a.ch; var nextChar = codemirror.getRange({ line: line, ch: ch }, { line: line, ch: ch + 1 }); var enableAutocomplete = !nextChar || /[\s>]/.test(nextChar); return (0, exports.completeIfInTag)(codemirror, !enableAutocomplete); }; exports.completeIfInTagNewAttribute = completeIfInTagNewAttribute; var handleIndentation = function (codemirror) { if (codemirror.somethingSelected()) { codemirror.indentSelection('add'); } else { var indent = codemirror.getOption('indentUnit'); var spaces = Array(indent + 1).join(' '); codemirror.replaceSelection(spaces); } }; exports.handleIndentation = handleIndentation; //# sourceMappingURL=autocomplete-utils.js.map