From ca16a31e75e2bba01896870a5bfce8f1db03cfdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Mon, 13 Apr 2020 12:27:29 +0200 Subject: [PATCH] revert some magic --- packages/core/src/Extension.ts | 2 +- packages/core/src/ExtensionManager.ts | 12 +------ packages/extension-bold/index.ts | 52 +++++++++++++-------------- packages/extension-code/index.ts | 52 +++++++++++++-------------- packages/extension-italic/index.ts | 52 +++++++++++++-------------- 5 files changed, 80 insertions(+), 90 deletions(-) diff --git a/packages/core/src/Extension.ts b/packages/core/src/Extension.ts index 6b22e043..16ac342e 100644 --- a/packages/core/src/Extension.ts +++ b/packages/core/src/Extension.ts @@ -39,7 +39,7 @@ export default abstract class Extension { return [] } - keys(): string | { [key: string]: Function } { + keys(): { [key: string]: Function } { return {} } diff --git a/packages/core/src/ExtensionManager.ts b/packages/core/src/ExtensionManager.ts index 0e7645cc..9b81746f 100644 --- a/packages/core/src/ExtensionManager.ts +++ b/packages/core/src/ExtensionManager.ts @@ -79,17 +79,7 @@ export default class ExtensionManager { get keymaps() { return collect(this.extensions) - .map(extension => { - const keys = extension.keys() - - if (typeof keys === 'string') { - return { - [keys]: () => this.editor.command(extension.name) - } - } - - return keys - }) + .map(extension => extension.keys()) .filter(keys => !!Object.keys(keys).length) .map(keys => keymap(keys)) .toArray() diff --git a/packages/extension-bold/index.ts b/packages/extension-bold/index.ts index 349a9c2e..88d633f8 100644 --- a/packages/extension-bold/index.ts +++ b/packages/extension-bold/index.ts @@ -42,41 +42,41 @@ export default class Bold extends Mark { } keys() { - return 'Mod-b' + return { + 'Mod-b': () => this.editor.bold() + } } inputRules() { return ['**', '__'].map(character => { - return markInputRule( - VerEx() - .add('(?:^|\\s)') - .beginCapture() - .find(character) - .beginCapture() - .somethingBut(character) - .endCapture() - .find(character) - .endCapture() - .endOfLine(), - this.type, - ) + const regex = VerEx() + .add('(?:^|\\s)') + .beginCapture() + .find(character) + .beginCapture() + .somethingBut(character) + .endCapture() + .find(character) + .endCapture() + .endOfLine() + + return markInputRule(regex, this.type) }) } pasteRules() { return ['**', '__'].map(character => { - return markPasteRule( - VerEx() - .add('(?:^|\\s)') - .beginCapture() - .find(character) - .beginCapture() - .somethingBut(character) - .endCapture() - .find(character) - .endCapture(), - this.type, - ) + const regex = VerEx() + .add('(?:^|\\s)') + .beginCapture() + .find(character) + .beginCapture() + .somethingBut(character) + .endCapture() + .find(character) + .endCapture() + + return markPasteRule(regex, this.type) }) } diff --git a/packages/extension-code/index.ts b/packages/extension-code/index.ts index b9375007..821eccfc 100644 --- a/packages/extension-code/index.ts +++ b/packages/extension-code/index.ts @@ -33,38 +33,38 @@ export default class Code extends Mark { } keys() { - return 'Mod-`' + return { + 'Mod-`': () => this.editor.code() + } } inputRules() { - return markInputRule( - VerEx() - .add('(?:^|\\s)') - .beginCapture() - .find('`') - .beginCapture() - .somethingBut('`') - .endCapture() - .find('`') - .endCapture() - .endOfLine(), - this.type, - ) + const regex = VerEx() + .add('(?:^|\\s)') + .beginCapture() + .find('`') + .beginCapture() + .somethingBut('`') + .endCapture() + .find('`') + .endCapture() + .endOfLine() + + return markInputRule(regex, this.type) } pasteRules() { - return markPasteRule( - VerEx() - .add('(?:^|\\s)') - .beginCapture() - .find('`') - .beginCapture() - .somethingBut('`') - .endCapture() - .find('`') - .endCapture(), - this.type, - ) + const regex = VerEx() + .add('(?:^|\\s)') + .beginCapture() + .find('`') + .beginCapture() + .somethingBut('`') + .endCapture() + .find('`') + .endCapture() + + return markPasteRule(regex, this.type) } } \ No newline at end of file diff --git a/packages/extension-italic/index.ts b/packages/extension-italic/index.ts index 4bedfb58..fd1acdf2 100644 --- a/packages/extension-italic/index.ts +++ b/packages/extension-italic/index.ts @@ -34,41 +34,41 @@ export default class Italic extends Mark { } keys() { - return 'Mod-i' + return { + 'Mod-i': () => this.editor.italic() + } } inputRules() { return ['*', '_'].map(character => { - return markInputRule( - VerEx() - .add('(?:^|\\s)') - .beginCapture() - .find(character) - .beginCapture() - .somethingBut(character) - .endCapture() - .find(character) - .endCapture() - .endOfLine(), - this.type, - ) + const regex = VerEx() + .add('(?:^|\\s)') + .beginCapture() + .find(character) + .beginCapture() + .somethingBut(character) + .endCapture() + .find(character) + .endCapture() + .endOfLine() + + return markInputRule(regex, this.type) }) } pasteRules() { return ['*', '_'].map(character => { - return markPasteRule( - VerEx() - .add('(?:^|\\s)') - .beginCapture() - .find(character) - .beginCapture() - .somethingBut(character) - .endCapture() - .find(character) - .endCapture(), - this.type, - ) + const regex = VerEx() + .add('(?:^|\\s)') + .beginCapture() + .find(character) + .beginCapture() + .somethingBut(character) + .endCapture() + .find(character) + .endCapture() + + return markPasteRule(regex, this.type) }) }