mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-11 13:48:34 +00:00
32 lines
886 B
JavaScript
32 lines
886 B
JavaScript
import { Prec } from '@codemirror/state';
|
|
import { keymap, ViewPlugin } from '@codemirror/view';
|
|
// import { searchKeymap } from '@codemirror/search';
|
|
import { emacs } from '@replit/codemirror-emacs';
|
|
import { vim } from '@replit/codemirror-vim';
|
|
import { vscodeKeymap } from '@replit/codemirror-vscode-keymap';
|
|
import { defaultKeymap, historyKeymap } from '@codemirror/commands';
|
|
|
|
const vscodePlugin = ViewPlugin.fromClass(
|
|
class {
|
|
constructor() {}
|
|
},
|
|
{
|
|
provide: () => {
|
|
return Prec.highest(keymap.of([...vscodeKeymap]));
|
|
},
|
|
},
|
|
);
|
|
const vscodeExtension = (options) => [vscodePlugin].concat(options ?? []);
|
|
|
|
const keymaps = {
|
|
vim,
|
|
emacs,
|
|
vscode: vscodeExtension,
|
|
};
|
|
|
|
export function keybindings(name) {
|
|
const active = keymaps[name];
|
|
return [keymap.of(defaultKeymap), keymap.of(historyKeymap), active ? active() : []];
|
|
// keymap.of(searchKeymap),
|
|
}
|