chore(code): reintroduce placeholder

This commit is contained in:
Elian Doran
2025-05-11 11:27:27 +03:00
parent 7cd4bce5b0
commit d29286f9e3
2 changed files with 7 additions and 2 deletions

View File

@@ -1,5 +1,5 @@
import { defaultKeymap, indentWithTab } from "@codemirror/commands";
import { EditorView, keymap, lineNumbers, ViewUpdate, type EditorViewConfig, type KeyBinding } from "@codemirror/view";
import { EditorView, keymap, lineNumbers, placeholder, ViewUpdate, type EditorViewConfig, type KeyBinding } from "@codemirror/view";
import { defaultHighlightStyle, StreamLanguage, syntaxHighlighting } from "@codemirror/language";
import { Compartment } from "@codemirror/state";
import byMimeType from "./syntax_highlighting.js";
@@ -7,6 +7,7 @@ import byMimeType from "./syntax_highlighting.js";
type ContentChangedListener = () => void;
export interface EditorConfig extends EditorViewConfig {
placeholder?: string;
onContentChanged?: ContentChangedListener;
}
@@ -31,6 +32,10 @@ export default class CodeMirror extends EditorView {
extensions = [...extensions, ...config.extensions];
}
if (config.placeholder) {
extensions.push(placeholder(config.placeholder));
}
if (config.onContentChanged) {
extensions.push(EditorView.updateListener.of((v) => this.#onDocumentUpdated(v)));
}