]> BookStack Code Mirror - bookstack/blobdiff - resources/js/code/setups.js
Addressed existing cm6 todos
[bookstack] / resources / js / code / setups.js
index 45cc9c317624c7e5ef51cd9abe457a986b5c47ab..b061bb3fe9fa93e545f72578dfa33fc04ba6413f 100644 (file)
@@ -1,11 +1,13 @@
 
-import {keymap, highlightSpecialChars, drawSelection, highlightActiveLine, dropCursor,
+import {EditorView, keymap, highlightSpecialChars, drawSelection, highlightActiveLine, dropCursor,
     rectangularSelection, lineNumbers, highlightActiveLineGutter} from "@codemirror/view"
-import {defaultHighlightStyle, syntaxHighlighting, bracketMatching,
-     foldKeymap} from "@codemirror/language"
+import {syntaxHighlighting, bracketMatching} from "@codemirror/language"
 import {defaultKeymap, history, historyKeymap} from "@codemirror/commands"
 import {EditorState} from "@codemirror/state"
 
+import {defaultLight} from "./themes";
+import {getLanguageExtension} from "./languages";
+
 export function viewer() {
     return [
         lineNumbers(),
@@ -14,15 +16,35 @@ export function viewer() {
         history(),
         drawSelection(),
         dropCursor(),
-        syntaxHighlighting(defaultHighlightStyle, {fallback: true}),
+        syntaxHighlighting(defaultLight, {fallback: true}),
         bracketMatching(),
         rectangularSelection(),
         highlightActiveLine(),
         keymap.of([
             ...defaultKeymap,
             ...historyKeymap,
-            ...foldKeymap,
         ]),
         EditorState.readOnly.of(true),
     ];
+}
+
+export function editor(language) {
+    return [
+        lineNumbers(),
+        highlightActiveLineGutter(),
+        highlightSpecialChars(),
+        history(),
+        drawSelection(),
+        dropCursor(),
+        syntaxHighlighting(defaultLight, {fallback: true}),
+        bracketMatching(),
+        rectangularSelection(),
+        highlightActiveLine(),
+        keymap.of([
+            ...defaultKeymap,
+            ...historyKeymap,
+        ]),
+        getLanguageExtension(language, ''),
+        EditorView.lineWrapping,
+    ];
 }
\ No newline at end of file