-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(),
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