@@ -2,6 +2,7 @@ import { default_extensions, complete_keymap } from '@nextjournal/clojure-mode';
22import { extension as eval_ext , cursor_node_string , top_level_string } from '@nextjournal/clojure-mode/extensions/eval-region' ;
33import { EditorView , drawSelection , keymap } from '@codemirror/view' ;
44import { EditorState } from '@codemirror/state' ;
5+ import { history , historyKeymap } from '@codemirror/commands' ;
56import { syntaxHighlighting , defaultHighlightStyle , foldGutter } from '@codemirror/language' ;
67import { compileStringEx } from 'squint-cljs' ;
78
@@ -89,10 +90,11 @@ let squintExtension = ( opts ) => {
8990 } ] ) }
9091
9192
92- let extensions = [ theme , foldGutter ( ) ,
93+ let extensions = [ history ( ) , theme , foldGutter ( ) ,
9394 syntaxHighlighting ( defaultHighlightStyle ) ,
9495 drawSelection ( ) ,
9596 keymap . of ( complete_keymap ) ,
97+ keymap . of ( historyKeymap ) ,
9698 ...default_extensions ,
9799 eval_ext ( { modifier : "Meta" } ) ,
98100 squintExtension ( { modifier : "Meta" } )
@@ -120,6 +122,8 @@ let doc = `(comment
120122 (+ 1 2 3))
121123` ;
122124
125+ // doc = `(do #_#_1 (+ 1 2 3) )`
126+
123127evalCode ( doc ) ;
124128
125129let state = EditorState . create ( { doc : doc ,
@@ -129,6 +133,7 @@ let editorElt = document.querySelector('#editor');
129133let editor = new EditorView ( { state : state ,
130134 parent : editorElt ,
131135 extensions : extensions } )
136+ globalThis . editor = editor ;
132137
133138let keys = { "ArrowUp" : "↑" ,
134139 "ArrowDown" : "↓" ,
0 commit comments