Files
continuwuity/packages/website/src/lib/editorExtensions.ts
T
Jade Ellis 0dfe8c4c8a Comments
2024-06-16 18:09:04 +01:00

31 lines
1.0 KiB
TypeScript

import { type LanguageSupport, indentUnit } from "@codemirror/language";
import { type Extension, EditorState } from "@codemirror/state";
import { EditorView, keymap } from "@codemirror/view";
import { indentWithTab } from "@codemirror/commands";
import { basicSetup } from "codemirror";
export function get_base_extensions(
useTab: boolean,
tabSize: number,
lineWrapping: boolean,
placeholder: string | HTMLElement | null | undefined,
editable: boolean,
readonly: boolean,
lang: LanguageSupport | null | undefined
): Extension[] {
const extensions: Extension[] = [
indentUnit.of(" ".repeat(tabSize)),
EditorView.editable.of(editable),
EditorState.readOnly.of(readonly),
basicSetup
];
// @ts-ignore
if (useTab) extensions.push(keymap.of([indentWithTab]));
// if (placeholder) extensions.push(placeholderExt(placeholder));
if (lang) extensions.push(lang);
if (lineWrapping) extensions.push(EditorView.lineWrapping);
return extensions;
}