diff --git a/apps/client/src/widgets/type_widgets/abstract_code_type_widget.ts b/apps/client/src/widgets/type_widgets/abstract_code_type_widget.ts index 4cd477eba..30684bdc5 100644 --- a/apps/client/src/widgets/type_widgets/abstract_code_type_widget.ts +++ b/apps/client/src/widgets/type_widgets/abstract_code_type_widget.ts @@ -1,3 +1,4 @@ +import options from "../../services/options.js"; import TypeWidget from "./type_widget.js"; import CodeMirror, { type EditorConfig } from "@triliumnext/codemirror"; @@ -26,6 +27,7 @@ export default class AbstractCodeTypeWidget extends TypeWidget { async #initEditor() { this.codeEditor = new CodeMirror({ parent: this.$editor[0], + lineWrapping: options.is("codeLineWrapEnabled"), ...this.getExtraOpts() }); } diff --git a/packages/codemirror/src/index.ts b/packages/codemirror/src/index.ts index 3555fd30c..a56829a1e 100644 --- a/packages/codemirror/src/index.ts +++ b/packages/codemirror/src/index.ts @@ -8,6 +8,7 @@ type ContentChangedListener = () => void; export interface EditorConfig extends EditorViewConfig { placeholder?: string; + lineWrapping?: boolean; onContentChanged?: ContentChangedListener; } @@ -37,6 +38,10 @@ export default class CodeMirror extends EditorView { extensions.push(placeholder(config.placeholder)); } + if (config.lineWrapping) { + extensions.push(EditorView.lineWrapping); + } + if (config.onContentChanged) { extensions.push(EditorView.updateListener.of((v) => this.#onDocumentUpdated(v))); }