@atlaskit/editor-plugin-code-block
Version:
Code block plugin for @atlaskit/editor-core
31 lines (30 loc) • 858 B
JavaScript
export const BRACKET_MAP = {
'{': '}',
'[': ']',
'(': ')'
};
export const shouldAutoCloseBracket = (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;
}
return true;
};
export const getAutoClosingBracketInfo = (before, after) => {
const left = Object.keys(BRACKET_MAP).find(item => before.endsWith(item));
const right = left ? BRACKET_MAP[left] : undefined;
const hasTrailingMatchingBracket = right ? after.startsWith(right) : false;
return {
left,
right,
hasTrailingMatchingBracket
};
};