index.ts 616 B

1234567891011121314151617
  1. import type { Extension } from '@codemirror/state';
  2. import { keymap } from '@codemirror/view';
  3. import type { KeyMapMode } from '../../consts';
  4. export const getKeymap = async(keyMapName?: KeyMapMode, onSave?: () => void): Promise<Extension> => {
  5. switch (keyMapName) {
  6. case 'vim':
  7. return (await import('./vim')).vimKeymap(onSave);
  8. case 'emacs':
  9. return (await import('@replit/codemirror-emacs')).emacs();
  10. case 'vscode':
  11. return keymap.of((await import('@replit/codemirror-vscode-keymap')).vscodeKeymap);
  12. }
  13. return keymap.of((await import('@codemirror/commands')).defaultKeymap);
  14. };