[#351] exit REPL on ctrl-D
This commit is contained in:
parent
3ec5e1806d
commit
ffcbfa02b8
4 changed files with 9 additions and 13 deletions
2
deps.edn
2
deps.edn
|
|
@ -1,7 +1,7 @@
|
||||||
{:paths ["src" "sci/src" "babashka.curl/src" "resources" "sci/resources"],
|
{:paths ["src" "sci/src" "babashka.curl/src" "resources" "sci/resources"],
|
||||||
:deps {org.clojure/clojure {:mvn/version "1.10.2-alpha1"},
|
:deps {org.clojure/clojure {:mvn/version "1.10.2-alpha1"},
|
||||||
org.clojure/tools.reader {:mvn/version "1.3.2"},
|
org.clojure/tools.reader {:mvn/version "1.3.2"},
|
||||||
borkdude/edamame {:mvn/version "0.0.11-alpha.6"},
|
borkdude/edamame {:mvn/version "0.0.11-alpha.8"},
|
||||||
borkdude/graal.locking {:mvn/version "0.0.2"},
|
borkdude/graal.locking {:mvn/version "0.0.2"},
|
||||||
borkdude/sci.impl.reflector {:mvn/version "0.0.1"}
|
borkdude/sci.impl.reflector {:mvn/version "0.0.1"}
|
||||||
org.clojure/core.async {:mvn/version "1.0.567"},
|
org.clojure/core.async {:mvn/version "1.0.567"},
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
:resource-paths ["resources" "sci/resources"]
|
:resource-paths ["resources" "sci/resources"]
|
||||||
:dependencies [[org.clojure/clojure "1.10.2-alpha1"]
|
:dependencies [[org.clojure/clojure "1.10.2-alpha1"]
|
||||||
[org.clojure/tools.reader "1.3.2"]
|
[org.clojure/tools.reader "1.3.2"]
|
||||||
[borkdude/edamame "0.0.11-alpha.6"]
|
[borkdude/edamame "0.0.11-alpha.8"]
|
||||||
[borkdude/graal.locking "0.0.2"]
|
[borkdude/graal.locking "0.0.2"]
|
||||||
[borkdude/sci.impl.reflector "0.0.1"]
|
[borkdude/sci.impl.reflector "0.0.1"]
|
||||||
[org.clojure/core.async "1.0.567"]
|
[org.clojure/core.async "1.0.567"]
|
||||||
|
|
|
||||||
2
sci
2
sci
|
|
@ -1 +1 @@
|
||||||
Subproject commit b425eedeebd8612d42befa92b800a25c824b8c49
|
Subproject commit 22bd92211c82b885b079b94d175eb821edb2e9b4
|
||||||
|
|
@ -38,16 +38,12 @@
|
||||||
(eval-form sci-ctx '(use 'clojure.repl))))
|
(eval-form sci-ctx '(use 'clojure.repl))))
|
||||||
:read (or read
|
:read (or read
|
||||||
(fn [_request-prompt request-exit]
|
(fn [_request-prompt request-exit]
|
||||||
;; (prn "PEEK" @sci/in (r/peek-char @sci/in))
|
(let [v (parser/parse-next sci-ctx in)]
|
||||||
;; (prn "PEEK" @sci/in (r/peek-char @sci/in)) this works fine
|
(if (or (identical? :repl/quit v)
|
||||||
(if (r/peek-char in) ;; if this is nil, we reached EOF
|
(identical? :repl/exit v)
|
||||||
(let [v (parser/parse-next sci-ctx in)]
|
(identical? :edamame.impl.parser/eof v))
|
||||||
(if (or (identical? :repl/quit v)
|
request-exit
|
||||||
(identical? :repl/exit v)
|
v))))
|
||||||
(identical? :edamame.impl.parser/eof v))
|
|
||||||
request-exit
|
|
||||||
v))
|
|
||||||
request-exit)))
|
|
||||||
:eval (or eval
|
:eval (or eval
|
||||||
(fn [expr]
|
(fn [expr]
|
||||||
(let [ret (eval-form (update sci-ctx
|
(let [ret (eval-form (update sci-ctx
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue