Line data Source code
1 :
2 : import { EditorView, crosshairCursor, drawSelection, dropCursor, highlightActiveLine,
3 : highlightActiveLineGutter, highlightSpecialChars, keymap,
4 : lineNumbers, rectangularSelection } from "@codemirror/view";
5 : import { Compartment, EditorState } from "@codemirror/state";
6 : import { bracketMatching, defaultHighlightStyle, foldGutter, foldKeymap,
7 : indentOnInput, syntaxHighlighting } from "@codemirror/language";
8 : import { defaultKeymap, history, historyKeymap } from "@codemirror/commands";
9 : import { highlightSelectionMatches, searchKeymap } from "@codemirror/search";
10 : import { autocompletion, closeBrackets, closeBracketsKeymap, completionKeymap } from "@codemirror/autocomplete";
11 : import { lintGutter, lintKeymap } from "@codemirror/lint";
12 :
13 1 : export const bracketConf = new Compartment();
14 :
15 1 : export const basicSetup = [
16 : lineNumbers(),
17 : highlightActiveLineGutter(),
18 : highlightSpecialChars(),
19 : history(),
20 : foldGutter(),
21 : lintGutter(),
22 : drawSelection(),
23 : dropCursor(),
24 : EditorState.allowMultipleSelections.of(true),
25 : indentOnInput(),
26 : syntaxHighlighting(defaultHighlightStyle, { fallback: true }),
27 : bracketConf.of([ bracketMatching(), closeBrackets() ]),
28 : autocompletion(),
29 : rectangularSelection(),
30 : crosshairCursor(),
31 : highlightActiveLine(),
32 : highlightSelectionMatches(),
33 : keymap.of([
34 : ...closeBracketsKeymap,
35 : ...defaultKeymap,
36 : ...searchKeymap,
37 : ...historyKeymap,
38 : ...foldKeymap,
39 : ...completionKeymap,
40 : ...lintKeymap
41 : ]),
42 : EditorView.baseTheme({
43 : ".cm-diagnosticText": {
44 : "font-family": 'SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace'
45 : }
46 : })
47 : ];
|