UNPKG

@atlaskit/editor-plugin-code-block

Version:

Code block plugin for @atlaskit/editor-core

35 lines (34 loc) 1.07 kB
export const BRACKET_MAP = { '{': '}', '[': ']', '(': ')' }; // when directly before a closing bracket // Ignored via go/ees005 // eslint-disable-next-line require-unicode-regexp const CLOSING_BRACKET_REGEX = /^[}\])]/; // exclusion: when directly before a non-whitespace character // Ignored via go/ees005 // eslint-disable-next-line require-unicode-regexp const NON_WHITESPACE_AFTER_REGEX = /^[^\s]/; export const shouldAutoCloseBracket = (before, after) => { // when directly before a closing bracket if (CLOSING_BRACKET_REGEX.test(after)) { return true; } // exclusion: when directly before a non-whitespace character if (NON_WHITESPACE_AFTER_REGEX.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 }; };