@atlaskit/editor-plugin-code-block
Version:
Code block plugin for @atlaskit/editor-core
48 lines (45 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.shouldAutoCloseQuote = exports.getAutoClosingQuoteInfo = exports.QUOTE_MAP = void 0;
var QUOTE_MAP = exports.QUOTE_MAP = {
"'": "'",
'"': '"',
'`': '`'
};
var shouldAutoCloseQuote = exports.shouldAutoCloseQuote = function shouldAutoCloseQuote(before, after) {
// when directly before a closing bracket
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
if (/^[}\])]/.test(after)) {
return true;
}
// exclusion: when directly before a non-whitespace character
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
if (/^[^\s]/.test(after)) {
return false;
}
// exclusion: when directly after a letter or quote
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
if (/[A-Za-z0-9]$/.test(before) || /[\'\"\`]$/.test(before)) {
return false;
}
return true;
};
var getAutoClosingQuoteInfo = exports.getAutoClosingQuoteInfo = function getAutoClosingQuoteInfo(before, after) {
var left = Object.keys(QUOTE_MAP).find(function (item) {
return before.endsWith(item);
});
var right = left ? QUOTE_MAP[left] : undefined;
var hasTrailingMatchingQuote = right ? after.startsWith(right) : false;
return {
left: left,
right: right,
hasTrailingMatchingQuote: hasTrailingMatchingQuote
};
};