From bf306bb407e2e353997967072a5c8066266635d1 Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Fri, 23 Jun 2023 11:22:59 +0200 Subject: [PATCH] Fix #1579: add clojure.tools.reader/resolve-symbol --- CHANGELOG.md | 4 ++++ src/babashka/impl/clojure/tools/reader.clj | 9 +++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc121d40..effe510e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ A preview of the next release can be installed from [Babashka](https://github.com/babashka/babashka): Native, fast starting Clojure interpreter for scripting +## Unreleased + +- [#1579](https://github.com/babashka/babashka/issues/1579): add `clojure.tools.reader/resolve-symbol` + ## 1.3.181 (2023-06-13) - [#1575](https://github.com/babashka/babashka/issues/1575): fix command line parsing problem with `-e` + `*command-line-args*` diff --git a/src/babashka/impl/clojure/tools/reader.clj b/src/babashka/impl/clojure/tools/reader.clj index 29f67289..5f834177 100644 --- a/src/babashka/impl/clojure/tools/reader.clj +++ b/src/babashka/impl/clojure/tools/reader.clj @@ -3,7 +3,8 @@ (:require [edamame.core :as e] [sci.core :as sci] - [clojure.tools.reader.reader-types :as rt])) + [sci.ctx-store :as ctx] + [sci.impl.parser :as p])) (def rns (sci/create-ns 'clojure.tools.reader)) @@ -53,4 +54,8 @@ sentinel) v)))) -(def reader-namespace {'read (sci/copy-var read rns)}) +(defn resolve-symbol [sym] + (p/fully-qualify (ctx/get-ctx) sym)) + +(def reader-namespace {'read (sci/copy-var read rns) + 'resolve-symbol (sci/copy-var resolve-symbol rns)})