]> BookStack Code Mirror - bookstack/blob - resources/js/code/setups.js
00366ee5eaaf599b648fbc0b5ba73ec511f6dfb0
[bookstack] / resources / js / code / setups.js
1
2 import {EditorView, keymap, highlightSpecialChars, drawSelection, highlightActiveLine, dropCursor,
3     rectangularSelection, lineNumbers, highlightActiveLineGutter} from "@codemirror/view"
4 import {syntaxHighlighting, bracketMatching} from "@codemirror/language"
5 import {defaultKeymap, history, historyKeymap} from "@codemirror/commands"
6 import {EditorState} from "@codemirror/state"
7
8 import {defaultLight} from "./themes";
9 import {getLanguageExtension} from "./languages";
10
11 export function viewer() {
12     return [
13         lineNumbers(),
14         highlightActiveLineGutter(),
15         highlightSpecialChars(),
16         history(),
17         drawSelection(),
18         dropCursor(),
19         syntaxHighlighting(defaultLight, {fallback: true}),
20         bracketMatching(),
21         rectangularSelection(),
22         highlightActiveLine(),
23         keymap.of([
24             ...defaultKeymap,
25             ...historyKeymap,
26         ]),
27         EditorState.readOnly.of(true),
28     ];
29 }
30
31 export function editor(language) {
32     return [
33         lineNumbers(),
34         highlightActiveLineGutter(),
35         highlightSpecialChars(),
36         history(),
37         drawSelection(),
38         dropCursor(),
39         syntaxHighlighting(defaultLight, {fallback: true}),
40         bracketMatching(),
41         rectangularSelection(),
42         highlightActiveLine(),
43         keymap.of([
44             ...defaultKeymap,
45             ...historyKeymap,
46         ]),
47         getLanguageExtension(language, ''),
48     ];
49 }