1import { 2 keymap, 3 highlightSpecialChars, 4 drawSelection, 5 highlightActiveLine, 6 dropCursor, 7 rectangularSelection, 8 crosshairCursor, 9 lineNumbers, 10 highlightActiveLineGutter, 11} from '@codemirror/view'; 12import { 13 defaultHighlightStyle, 14 syntaxHighlighting, 15 bracketMatching, 16 foldGutter, 17 foldKeymap, 18} from '@codemirror/language'; 19import { defaultKeymap, history, historyKeymap } from '@codemirror/commands'; 20import { searchKeymap, highlightSelectionMatches } from '@codemirror/search'; 21import { completionKeymap, closeBracketsKeymap } from '@codemirror/autocomplete';
Taken + slightly modified from https://github.com/codemirror/basic-setup/blob/main/src/codemirror.ts
25export const basicSetup = (() => [ 26 // lineNumbers(), 27 // highlightActiveLineGutter(), 28 highlightSpecialChars(), 29 history(), 30 // foldGutter(), 31 // drawSelection(), 32 dropCursor(), 33 // EditorState.allowMultipleSelections.of(true), 34 // indentOnInput(), 35 // syntaxHighlighting(defaultHighlightStyle, { fallback: true }), 36 // autocompletion(), 37 rectangularSelection(), 38 crosshairCursor(), 39 // highlightActiveLine(), 40 // highlightSelectionMatches(), 41 keymap.of([ 42 ...closeBracketsKeymap, 43 ...defaultKeymap, 44 // ...searchKeymap, 45 ...historyKeymap, 46 // ...foldKeymap, 47 // ...completionKeymap, 48 ]), 49])();
/ A minimal set of extensions to create a functional editor. Only / includes the default keymap, undo / history, special character / highlighting, custom selection / drawing, and default highlight / style.