diff --git a/packages/codemirror/codemirror.mjs b/packages/codemirror/codemirror.mjs index 25639a72..bbcf0792 100644 --- a/packages/codemirror/codemirror.mjs +++ b/packages/codemirror/codemirror.mjs @@ -12,7 +12,7 @@ import { highlightMiniLocations, isPatternHighlightingEnabled, updateMiniLocatio import { keybindings } from './keybindings.mjs'; import { initTheme, activateTheme, theme } from './themes.mjs'; import { updateWidgets, sliderPlugin } from './slider.mjs'; -import { persistentMap } from '@nanostores/persistent'; +import { persistentAtom } from '@nanostores/persistent'; const extensions = { isLineWrappingEnabled: (on) => (on ? EditorView.lineWrapping : []), @@ -40,7 +40,10 @@ export const defaultSettings = { fontSize: 18, }; -export const codemirrorSettings = persistentMap('codemirror-settings', defaultSettings); +export const codemirrorSettings = persistentAtom('codemirror-settings', defaultSettings, { + encode: JSON.stringify, + decode: JSON.parse, +}); // https://codemirror.net/docs/guide/ export function initEditor({ initialCode = '', onChange, onEvaluate, onStop, root }) { @@ -254,7 +257,8 @@ export class StrudelMirror { for (let key in extensions) { this.reconfigureExtension(key, settings[key]); } - codemirrorSettings.set({ ...codemirrorSettings.get(), ...settings }); + const updated = { ...codemirrorSettings.get(), ...settings }; + codemirrorSettings.set(updated); } changeSetting(key, value) { if (extensions[key]) { diff --git a/website/src/pages/vanilla/mini.astro b/website/src/pages/vanilla/mini.astro index 989582aa..e0d44a29 100644 --- a/website/src/pages/vanilla/mini.astro +++ b/website/src/pages/vanilla/mini.astro @@ -21,7 +21,7 @@

This is another REPL:

-