wip
This commit is contained in:
parent
86d4a7319f
commit
62bd498b12
3 changed files with 68 additions and 1 deletions
3
deps.edn
3
deps.edn
|
|
@ -35,7 +35,8 @@
|
||||||
babashka/clojure-lanterna {:mvn/version "0.9.8-SNAPSHOT"}
|
babashka/clojure-lanterna {:mvn/version "0.9.8-SNAPSHOT"}
|
||||||
org.clojure/core.match {:mvn/version "1.0.0"}
|
org.clojure/core.match {:mvn/version "1.0.0"}
|
||||||
hiccup/hiccup {:mvn/version "2.0.0-alpha2"}
|
hiccup/hiccup {:mvn/version "2.0.0-alpha2"}
|
||||||
rewrite-clj/rewrite-clj {:mvn/version "1.0.605-alpha"}}
|
rewrite-clj/rewrite-clj {:mvn/version "1.0.605-alpha"}
|
||||||
|
version-clj/version-clj {:mvn/version "2.0.1"}}
|
||||||
:aliases {:babashka/dev
|
:aliases {:babashka/dev
|
||||||
{:main-opts ["-m" "babashka.main"]}
|
{:main-opts ["-m" "babashka.main"]}
|
||||||
:profile
|
:profile
|
||||||
|
|
|
||||||
63
feature-version-clj/babashka/impl/version_clj.clj
Normal file
63
feature-version-clj/babashka/impl/version_clj.clj
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
(ns babashka.impl.rewrite-clj
|
||||||
|
{:no-doc true}
|
||||||
|
(:require [version-clj.core :as v]
|
||||||
|
[sci.core :as sci]))
|
||||||
|
|
||||||
|
(def nns (sci/create-ns 'rewrite-clj.node nil))
|
||||||
|
(def pens (sci/create-ns 'rewrite-clj.paredit nil))
|
||||||
|
(def pns (sci/create-ns 'rewrite-clj.parser nil))
|
||||||
|
(def zns (sci/create-ns 'rewrite-clj.zip nil))
|
||||||
|
(def zsns (sci/create-ns 'rewrite-clj.zip.subedit nil))
|
||||||
|
|
||||||
|
#_(defmacro copy-var
|
||||||
|
"Copies contents from var `sym` to a new sci var. The value `ns` is an
|
||||||
|
object created with `sci.core/create-ns`."
|
||||||
|
([sym ns]
|
||||||
|
`(let [ns# ~ns
|
||||||
|
var# (var ~sym)
|
||||||
|
val# (deref var#)
|
||||||
|
m# (-> var# meta)
|
||||||
|
ns-name# (vars/getName ns#)
|
||||||
|
name# (:name m#)
|
||||||
|
name-sym# (symbol (str ns-name#) (str name#))
|
||||||
|
new-m# {:doc (:doc m#)
|
||||||
|
:name name#
|
||||||
|
:arglists (:arglists m#)
|
||||||
|
:ns ns#}]
|
||||||
|
(cond (:dynamic m#)
|
||||||
|
(new-dynamic-var name# val# new-m#)
|
||||||
|
(:macro m#)
|
||||||
|
(new-macro-var name# val# new-m#)
|
||||||
|
:else (new-var name# val# new-m#)))))
|
||||||
|
|
||||||
|
(defn make-ns [ns sci-ns]
|
||||||
|
(reduce (fn [ns-map [var-name var]]
|
||||||
|
(let [m (meta var)
|
||||||
|
no-doc (:no-doc m)
|
||||||
|
doc (:doc m)
|
||||||
|
arglists (:arglists m)]
|
||||||
|
(if no-doc ns-map
|
||||||
|
(assoc ns-map var-name
|
||||||
|
(sci/new-var (symbol var-name) @var
|
||||||
|
(cond-> {:ns sci-ns
|
||||||
|
:name (:name m)}
|
||||||
|
(:macro m) (assoc :macro true)
|
||||||
|
doc (assoc :doc doc)
|
||||||
|
arglists (assoc :arglists arglists)))))))
|
||||||
|
{}
|
||||||
|
(ns-publics ns)))
|
||||||
|
|
||||||
|
(def node-namespace
|
||||||
|
(make-ns 'rewrite-clj.node nns))
|
||||||
|
|
||||||
|
(def parser-namespace
|
||||||
|
(make-ns 'rewrite-clj.parser pns))
|
||||||
|
|
||||||
|
(def paredit-namespace
|
||||||
|
(make-ns 'rewrite-clj.paredit pens))
|
||||||
|
|
||||||
|
(def zip-namespace
|
||||||
|
(make-ns 'rewrite-clj.zip zns))
|
||||||
|
|
||||||
|
(def subedit-namespace
|
||||||
|
(make-ns 'rewrite-clj.zip.subedit zsns))
|
||||||
|
|
@ -54,6 +54,8 @@
|
||||||
:feature/spec-alpha {:source-paths ["feature-spec-alpha"]}
|
:feature/spec-alpha {:source-paths ["feature-spec-alpha"]}
|
||||||
:feature/rewrite-clj {:source-paths ["feature-rewrite-clj"]
|
:feature/rewrite-clj {:source-paths ["feature-rewrite-clj"]
|
||||||
:dependencies [[rewrite-clj/rewrite-clj "1.0.605-alpha"]]}
|
:dependencies [[rewrite-clj/rewrite-clj "1.0.605-alpha"]]}
|
||||||
|
:feature/version-clj {:source-paths ["feature-version-clj"]
|
||||||
|
:dependencies [[version-clj/version-clj "2.0.1"]]}
|
||||||
:test [:feature/xml
|
:test [:feature/xml
|
||||||
:feature/lanterna
|
:feature/lanterna
|
||||||
:feature/yaml
|
:feature/yaml
|
||||||
|
|
@ -70,6 +72,7 @@
|
||||||
:feature/test-check
|
:feature/test-check
|
||||||
:feature/spec-alpha
|
:feature/spec-alpha
|
||||||
:feature/rewrite-clj
|
:feature/rewrite-clj
|
||||||
|
:feature/version-clj
|
||||||
{:dependencies [[com.clojure-goes-fast/clj-async-profiler "0.4.1"]
|
{:dependencies [[com.clojure-goes-fast/clj-async-profiler "0.4.1"]
|
||||||
[com.opentable.components/otj-pg-embedded "0.13.3"]]}]
|
[com.opentable.components/otj-pg-embedded "0.13.3"]]}]
|
||||||
:uberjar {:global-vars {*assert* false}
|
:uberjar {:global-vars {*assert* false}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue