import { keymap, highlightSpecialChars, drawSelection, highlightActiveLine, dropCursor, // rectangularSelection, // crosshairCursor, highlightActiveLineGutter, } from "@codemirror/view"; import { Extension, EditorState } from "@codemirror/state"; import { defaultHighlightStyle, syntaxHighlighting, indentOnInput, bracketMatching, } from "@codemirror/language"; import { defaultKeymap, historyKeymap, history } from "@codemirror/commands"; import { highlightSelectionMatches } from "@codemirror/search"; import { autocompletion, closeBrackets, closeBracketsKeymap, } from "@codemirror/autocomplete"; import { lintKeymap } from "@codemirror/lint"; export const editorSetup: Extension = (() => [ highlightActiveLineGutter(), highlightSpecialChars(), history(), drawSelection(), dropCursor(), EditorState.allowMultipleSelections.of(true), indentOnInput(), syntaxHighlighting(defaultHighlightStyle, { fallback: true }), bracketMatching(), closeBrackets(), autocompletion(), // rectangularSelection(), // crosshairCursor(), highlightActiveLine(), highlightSelectionMatches(), keymap.of([ ...closeBracketsKeymap, ...defaultKeymap, ...historyKeymap, ...lintKeymap, ]), ])();