mirror of
https://github.com/heyman/heynote.git
synced 2025-02-16 10:19:55 +01:00
implement vim keymap
This commit is contained in:
parent
d1ea17c197
commit
2d335cd607
@ -21,7 +21,7 @@ const schema = {
|
||||
settings: {
|
||||
type: "object",
|
||||
properties: {
|
||||
"keymap": { "enum": ["default", "emacs"], default:"default" },
|
||||
"keymap": { "enum": ["default", "emacs", "vim"], default:"default" },
|
||||
"emacsMetaKey": { "enum": [null, "alt", "meta"], default: null },
|
||||
"showLineNumberGutter": {type: "boolean", default:true},
|
||||
"showFoldGutter": {type: "boolean", default:true},
|
||||
|
34
package-lock.json
generated
34
package-lock.json
generated
@ -9,6 +9,7 @@
|
||||
"version": "1.4.2",
|
||||
"license": "Commons Clause MIT",
|
||||
"dependencies": {
|
||||
"@replit/codemirror-vim": "^6.1.0",
|
||||
"electron-log": "^5.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -266,7 +267,6 @@
|
||||
"version": "6.3.2",
|
||||
"resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.3.2.tgz",
|
||||
"integrity": "sha512-tjoi4MCWDNxgIpoLZ7+tezdS9OEB6pkiDKhfKx9ReJ/XBcs2G2RXIu+/FxXBlWsPTsz6C9q/r4gjzrsxpcnqCQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@codemirror/language": "^6.0.0",
|
||||
"@codemirror/state": "^6.2.0",
|
||||
@ -440,7 +440,6 @@
|
||||
"version": "6.9.3",
|
||||
"resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.9.3.tgz",
|
||||
"integrity": "sha512-qq48pYzoi6ldYWV/52+Z9Ou6QouVI+8YwvxFbUypI33NbjG2UeRHKENRyhwljTTiOqjQ33FjyZj6EREQ9apAOQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@codemirror/state": "^6.0.0",
|
||||
"@codemirror/view": "^6.0.0",
|
||||
@ -465,7 +464,6 @@
|
||||
"version": "6.5.5",
|
||||
"resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.5.tgz",
|
||||
"integrity": "sha512-PIEN3Ke1buPod2EHbJsoQwlbpkz30qGZKcnmH1eihq9+bPQx8gelauUwLYaY4vBOuBAuEhmpDLii4rj/uO0yMA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@codemirror/state": "^6.0.0",
|
||||
"@codemirror/view": "^6.0.0",
|
||||
@ -475,14 +473,12 @@
|
||||
"node_modules/@codemirror/state": {
|
||||
"version": "6.3.3",
|
||||
"resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.3.3.tgz",
|
||||
"integrity": "sha512-0wufKcTw2dEwEaADajjHf6hBy1sh3M6V0e+q4JKIhLuiMSe5td5HOWpUdvKth1fT1M9VYOboajoBHpkCd7PG7A==",
|
||||
"dev": true
|
||||
"integrity": "sha512-0wufKcTw2dEwEaADajjHf6hBy1sh3M6V0e+q4JKIhLuiMSe5td5HOWpUdvKth1fT1M9VYOboajoBHpkCd7PG7A=="
|
||||
},
|
||||
"node_modules/@codemirror/view": {
|
||||
"version": "6.22.2",
|
||||
"resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.22.2.tgz",
|
||||
"integrity": "sha512-cJp64cPXm7QfSBWEXK+76+hsZCGHupUgy8JAbSzMG6Lr0rfK73c1CaWITVW6hZVkOnAFxJTxd0PIuynNbzxYPw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@codemirror/state": "^6.1.4",
|
||||
"style-mod": "^4.1.0",
|
||||
@ -981,8 +977,7 @@
|
||||
"node_modules/@lezer/common": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.1.2.tgz",
|
||||
"integrity": "sha512-V+GqBsga5+cQJMfM0GdnHmg4DgWvLzgMWjbldBg0+jC3k9Gu6nJNZDLJxXEBT1Xj8KhRN4jmbC5CY7SIL++sVw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-V+GqBsga5+cQJMfM0GdnHmg4DgWvLzgMWjbldBg0+jC3k9Gu6nJNZDLJxXEBT1Xj8KhRN4jmbC5CY7SIL++sVw=="
|
||||
},
|
||||
"node_modules/@lezer/cpp": {
|
||||
"version": "1.1.1",
|
||||
@ -1021,7 +1016,6 @@
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.0.tgz",
|
||||
"integrity": "sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@lezer/common": "^1.0.0"
|
||||
}
|
||||
@ -1081,7 +1075,6 @@
|
||||
"version": "1.3.14",
|
||||
"resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.3.14.tgz",
|
||||
"integrity": "sha512-z5mY4LStlA3yL7aHT/rqgG614cfcvklS+8oFRFBYrs4YaWLJyKKM4+nN6KopToX0o9Hj6zmH6M5kinOYuy06ug==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@lezer/common": "^1.0.0"
|
||||
}
|
||||
@ -1209,6 +1202,18 @@
|
||||
"node": ">= 10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@replit/codemirror-vim": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@replit/codemirror-vim/-/codemirror-vim-6.1.0.tgz",
|
||||
"integrity": "sha512-XATcrMBYphSgTTDHaL5cTdBKA+/kwg8x0kHpX9xFHkI8c2G9+nXdkIzFCtk76x1VDYQSlT6orNhudNt+9H9zOA==",
|
||||
"peerDependencies": {
|
||||
"@codemirror/commands": "^6.0.0",
|
||||
"@codemirror/language": "^6.1.0",
|
||||
"@codemirror/search": "^6.2.0",
|
||||
"@codemirror/state": "^6.0.1",
|
||||
"@codemirror/view": "^6.0.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/plugin-node-resolve": {
|
||||
"version": "15.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz",
|
||||
@ -2698,8 +2703,7 @@
|
||||
"node_modules/crelt": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz",
|
||||
"integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==",
|
||||
"dev": true
|
||||
"integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g=="
|
||||
},
|
||||
"node_modules/cross-spawn": {
|
||||
"version": "7.0.3",
|
||||
@ -5519,8 +5523,7 @@
|
||||
"node_modules/style-mod": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.0.tgz",
|
||||
"integrity": "sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA=="
|
||||
},
|
||||
"node_modules/sumchecker": {
|
||||
"version": "3.0.1",
|
||||
@ -6304,8 +6307,7 @@
|
||||
"node_modules/w3c-keyname": {
|
||||
"version": "2.2.8",
|
||||
"resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz",
|
||||
"integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==",
|
||||
"dev": true
|
||||
"integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ=="
|
||||
},
|
||||
"node_modules/which": {
|
||||
"version": "2.0.2",
|
||||
|
@ -69,6 +69,7 @@
|
||||
"vue-tsc": "^1.0.16"
|
||||
},
|
||||
"dependencies": {
|
||||
"@replit/codemirror-vim": "^6.1.0",
|
||||
"electron-log": "^5.0.1"
|
||||
}
|
||||
}
|
||||
|
@ -15,6 +15,7 @@
|
||||
keymaps: [
|
||||
{ name: "Default", value: "default" },
|
||||
{ name: "Emacs", value: "emacs" },
|
||||
{ name: "Vim", value: "vim"},
|
||||
],
|
||||
keymap: this.initialSettings.keymap,
|
||||
metaKey: this.initialSettings.emacsMetaKey,
|
||||
|
@ -12,6 +12,7 @@ import { noteBlockExtension, blockLineNumbers } from "./block/block.js"
|
||||
import { changeCurrentBlockLanguage, triggerCurrenciesLoaded } from "./block/commands.js"
|
||||
import { formatBlockContent } from "./block/format-code.js"
|
||||
import { heynoteKeymap } from "./keymap.js"
|
||||
import { vimKeymap } from "./keymap.js"
|
||||
import { emacsKeymap } from "./emacs.js"
|
||||
import { heynoteCopyPaste } from "./copy-paste"
|
||||
import { languageDetection } from "./language-detection/autodetect.js"
|
||||
@ -24,6 +25,8 @@ export const LANGUAGE_SELECTOR_EVENT = "openLanguageSelector"
|
||||
function getKeymapExtensions(editor, keymap) {
|
||||
if (keymap === "emacs") {
|
||||
return emacsKeymap(editor)
|
||||
} else if (keymap === "vim") {
|
||||
return vimKeymap(editor)
|
||||
} else {
|
||||
return heynoteKeymap(editor)
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { keymap } from "@codemirror/view"
|
||||
import { Vim, vim } from "@replit/codemirror-vim"
|
||||
//import { EditorSelection, EditorState } from "@codemirror/state"
|
||||
import {
|
||||
indentLess, indentMore,
|
||||
@ -53,3 +54,12 @@ export function heynoteKeymap(editor) {
|
||||
{key:"Ctrl-ArrowDown", run:gotoNextParagraph, shift:selectNextParagraph},
|
||||
])
|
||||
}
|
||||
|
||||
export function vimKeymap(editor) {
|
||||
//Vim.defineEx("DeleteLineFix", (editor) => {
|
||||
//editor.view.cm.execCommand("deleteLine")
|
||||
//})
|
||||
|
||||
//Vim.map("\\\\", ":DeleteLineFix", "normal")
|
||||
return [heynoteKeymap(editor), vim()]
|
||||
}
|
Loading…
Reference in New Issue
Block a user