56 lines
1.5 KiB
TypeScript
56 lines
1.5 KiB
TypeScript
import type { Extension } from "@codemirror/state";
|
|
import {
|
|
lineNumbers,
|
|
highlightSpecialChars,
|
|
drawSelection,
|
|
rectangularSelection,
|
|
crosshairCursor,
|
|
keymap
|
|
} from "@codemirror/view";
|
|
import { EditorView } from "@codemirror/view";
|
|
import { EditorState } from "@codemirror/state";
|
|
import {
|
|
foldGutter,
|
|
indentOnInput,
|
|
syntaxHighlighting,
|
|
defaultHighlightStyle,
|
|
foldKeymap
|
|
} from "@codemirror/language";
|
|
import { history, defaultKeymap, historyKeymap } from "@codemirror/commands";
|
|
import {
|
|
closeBrackets,
|
|
closeBracketsKeymap,
|
|
completionKeymap
|
|
} from "@codemirror/autocomplete";
|
|
import { lintKeymap } from "@codemirror/lint";
|
|
import {
|
|
type CompletionSource, autocompletion, CompletionContext, startCompletion,
|
|
currentCompletions, completionStatus, completeFromList, acceptCompletion
|
|
} from "@codemirror/autocomplete"
|
|
import DanbooruTags from "$lib/DanbooruTags";
|
|
|
|
export const basicSetup: Extension = /*@__PURE__*/ (() => [
|
|
lineNumbers(),
|
|
highlightSpecialChars(),
|
|
history(),
|
|
foldGutter(),
|
|
drawSelection(),
|
|
EditorState.allowMultipleSelections.of(true),
|
|
indentOnInput(),
|
|
syntaxHighlighting(defaultHighlightStyle, { fallback: true }),
|
|
closeBrackets(),
|
|
rectangularSelection(),
|
|
crosshairCursor(),
|
|
EditorView.lineWrapping,
|
|
DanbooruTags.getCompletionExt(),
|
|
|
|
keymap.of([
|
|
...closeBracketsKeymap,
|
|
...defaultKeymap,
|
|
...historyKeymap,
|
|
...foldKeymap,
|
|
...completionKeymap,
|
|
...lintKeymap
|
|
])
|
|
])();
|