wix-storybook-utils
Version:
Utilities for automated component documentation within Storybook
49 lines • 2.08 kB
JavaScript
;
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