mirror of
https://codeberg.org/uzu/strudel
synced 2026-07-13 06:19:33 -04:00
64 lines
1.8 KiB
JavaScript
64 lines
1.8 KiB
JavaScript
import {
|
|
keymap,
|
|
highlightSpecialChars,
|
|
drawSelection,
|
|
highlightActiveLine,
|
|
dropCursor,
|
|
rectangularSelection,
|
|
crosshairCursor,
|
|
lineNumbers,
|
|
highlightActiveLineGutter,
|
|
} from '@codemirror/view';
|
|
import {
|
|
defaultHighlightStyle,
|
|
syntaxHighlighting,
|
|
bracketMatching,
|
|
foldGutter,
|
|
foldKeymap,
|
|
} from '@codemirror/language';
|
|
import { defaultKeymap, history, historyKeymap } from '@codemirror/commands';
|
|
import { searchKeymap, highlightSelectionMatches } from '@codemirror/search';
|
|
import { completionKeymap, closeBracketsKeymap } from '@codemirror/autocomplete';
|
|
|
|
// Taken + slightly modified from https://github.com/codemirror/basic-setup/blob/main/src/codemirror.ts
|
|
|
|
export const basicSetup = (() => [
|
|
lineNumbers(),
|
|
highlightActiveLineGutter(),
|
|
highlightSpecialChars(),
|
|
history(),
|
|
foldGutter(),
|
|
drawSelection(),
|
|
dropCursor(),
|
|
// EditorState.allowMultipleSelections.of(true),
|
|
// indentOnInput(),
|
|
syntaxHighlighting(defaultHighlightStyle, { fallback: true }),
|
|
// autocompletion(),
|
|
rectangularSelection(),
|
|
crosshairCursor(),
|
|
highlightActiveLine(),
|
|
highlightSelectionMatches(),
|
|
keymap.of([
|
|
...closeBracketsKeymap,
|
|
...defaultKeymap,
|
|
...searchKeymap,
|
|
...historyKeymap,
|
|
...foldKeymap,
|
|
...completionKeymap,
|
|
]),
|
|
])();
|
|
|
|
/// A minimal set of extensions to create a functional editor. Only
|
|
/// includes [the default keymap](#commands.defaultKeymap), [undo
|
|
/// history](#commands.history), [special character
|
|
/// highlighting](#view.highlightSpecialChars), [custom selection
|
|
/// drawing](#view.drawSelection), and [default highlight
|
|
/// style](#language.defaultHighlightStyle).
|
|
export const minimalSetup = (() => [
|
|
highlightSpecialChars(),
|
|
history(),
|
|
drawSelection(),
|
|
syntaxHighlighting(defaultHighlightStyle, { fallback: true }),
|
|
keymap.of([...defaultKeymap, ...historyKeymap]),
|
|
])();
|