From f37a220a0560c7567548bfeef0fa44148574fed9 Mon Sep 17 00:00:00 2001 From: Roipoussiere Date: Thu, 15 Jun 2023 11:46:39 +0200 Subject: [PATCH] add checkbox in settings to enable line wrapping --- packages/react/src/components/CodeMirror6.jsx | 15 +++++++-------- website/src/repl/Footer.jsx | 17 +++++++++++++++-- website/src/repl/Repl.jsx | 11 ++++++++++- website/src/settings.mjs | 2 ++ 4 files changed, 34 insertions(+), 11 deletions(-) diff --git a/packages/react/src/components/CodeMirror6.jsx b/packages/react/src/components/CodeMirror6.jsx index 18306d31..36c7601b 100644 --- a/packages/react/src/components/CodeMirror6.jsx +++ b/packages/react/src/components/CodeMirror6.jsx @@ -88,13 +88,7 @@ const highlightField = StateField.define({ provide: (f) => EditorView.decorations.from(f), }); -const staticExtensions = [ - javascript(), - highlightField, - flashField, - javascriptLanguage.data.of({ autocomplete: strudelAutocomplete }), - EditorView.lineWrapping, -]; +const staticExtensions = [javascript(), highlightField, flashField]; export default function CodeMirror({ value, @@ -105,6 +99,7 @@ export default function CodeMirror({ keybindings, isLineNumbersDisplayed, isAutoCompletionEnabled, + isLineWrappingEnabled, fontSize = 18, fontFamily = 'monospace', options, @@ -150,8 +145,12 @@ export default function CodeMirror({ _extensions.push(autocompletion({ override: [] })); } + if (isLineWrappingEnabled) { + _extensions.push(EditorView.lineWrapping); + } + return _extensions; - }, [keybindings, isAutoCompletionEnabled]); + }, [keybindings, isAutoCompletionEnabled, isLineWrappingEnabled]); return (
diff --git a/website/src/repl/Footer.jsx b/website/src/repl/Footer.jsx index 30e2f3a1..acd5a682 100644 --- a/website/src/repl/Footer.jsx +++ b/website/src/repl/Footer.jsx @@ -364,7 +364,15 @@ const fontFamilyOptions = { }; function SettingsTab({ scheduler }) { - const { theme, keybindings, isLineNumbersDisplayed, isAutoCompletionEnabled, fontSize, fontFamily } = useSettings(); + const { + theme, + keybindings, + isLineNumbersDisplayed, + isAutoCompletionEnabled, + isLineWrappingEnabled, + fontSize, + fontFamily, + } = useSettings(); return (
@@ -407,7 +415,7 @@ function SettingsTab({ scheduler }) { />
-
+
settingsMap.setKey('isAutoCompletionEnabled', cbEvent.target.checked)} value={isAutoCompletionEnabled} /> + settingsMap.setKey('isLineWrappingEnabled', cbEvent.target.checked)} + value={isLineWrappingEnabled} + />