feat: support keyboard shortcuts on Mac (#248)

Co-authored-by: hoollyzhang <hoollyzhang@tencent.com>
This commit is contained in:
brzhang Group 2023-10-31 19:04:16 +08:00 committed by GitHub
parent aed86de910
commit 806c4c086d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -88,6 +88,9 @@ export const useStore = defineStore(`store`, {
editorDom.value =
localStorage.getItem(`__editor_content`) || formatDoc(DEFAULT_CONTENT)
}
const defaultKeyMap = CodeMirror.keyMap[`default`]
const modPrefix =
defaultKeyMap === CodeMirror.keyMap[`macDefault`] ? `Cmd` : `Ctrl`
this.editor = CodeMirror.fromTextArea(editorDom, {
mode: `text/x-markdown`,
theme: `xq-light`,
@ -96,24 +99,27 @@ export const useStore = defineStore(`store`, {
styleActiveLine: true,
autoCloseBrackets: true,
extraKeys: {
'Ctrl-F': function autoFormat(editor) {
[`${modPrefix}-F`]: function autoFormat(editor) {
const doc = formatDoc(editor.getValue(0))
localStorage.setItem(`__editor_content`, doc)
editor.setValue(doc)
},
'Ctrl-S': function save(editor) {},
'Ctrl-B': function bold(editor) {
[[`${modPrefix}-B`]]: function bold(editor) {
const selected = editor.getSelection()
editor.replaceSelection(`**${selected}**`)
},
'Ctrl-D': function del(editor) {
[`${modPrefix}-D`]: function del(editor) {
const selected = editor.getSelection()
editor.replaceSelection(`~~${selected}~~`)
},
'Ctrl-I': function italic(editor) {
[`${modPrefix}-I`]: function italic(editor) {
const selected = editor.getSelection()
editor.replaceSelection(`*${selected}*`)
},
[`${modPrefix}-L`]: function code(editor) {
const selected = editor.getSelection()
editor.replaceSelection(`\`${selected}\``)
},
},
})
},