mirror of
https://codeberg.org/uzu/strudel
synced 2026-07-26 15:19:38 -04:00
1d65f09f3c
- keybindings - line numbers - line wrapping - highlighting (new) - flashing (new) - autocomplete not working yet - move themes to codemirror package (currently duplicated) - generally simplify settings handling
30 lines
680 B
JavaScript
30 lines
680 B
JavaScript
import { Prec } from '@codemirror/state';
|
|
import { keymap, ViewPlugin } from '@codemirror/view';
|
|
import { emacs } from '@replit/codemirror-emacs';
|
|
import { vim } from '@replit/codemirror-vim';
|
|
import { vscodeKeymap } from '@replit/codemirror-vscode-keymap';
|
|
|
|
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 keymap = keymaps[name];
|
|
return keymap ? keymap() : [];
|
|
}
|