wix-storybook-utils
Version:
Utilities for automated component documentation within Storybook
41 lines • 1.63 kB
JavaScript
import * as CodeMirror from 'codemirror';
export var completeAfter = function (codemirror, predicate) {
if (!predicate || predicate()) {
setTimeout(function () {
if (!codemirror.state.completionActive) {
codemirror.showHint({ completeSingle: false });
}
}, 100);
}
return CodeMirror.Pass;
};
export var completeIfInTag = function (codemirror, ignoreAutocomplete) {
return 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;
});
};
export 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 completeIfInTag(codemirror, !enableAutocomplete);
};
export 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);
}
};
//# sourceMappingURL=autocomplete-utils.js.map