2024年Clojure调查中分享您的想法!

欢迎!请在关于页面了解更多关于这是如何工作的信息。

+3
tools.reader

使用新的#:default.namespace{,,,}语法编写的map没有附加文件位置元数据。

给定的代码

(require '[clojure.tools.reader :as reader])
(require '[clojure.tools.reader.reader-types :as reader-types])

(defn sample [s]
  (with-open [r (java.io.StringReader. s)]
    (meta (reader/read (reader-types/indexing-push-back-reader (reader-types/push-back-reader r) 1)))))

这个edn字面量无法解析带有位置元数据

(sample "#:ns{ :key :val }") ; => nil

与这两个不同,它们获得了期望的位置元数据

(sample "{ :key :val }")     ; => {:line 1, :column 1, :end-line 1, :end-column 14}
(sample "{ :ns/key val }")   ; => {:line 1, :column 1, :end-line 1, :end-column 16}

2 答案

+1

被选中
尼古拉立即修复了这个问题,并发布了带有修复的版本1.3.6。谢谢你们两位!
0

注意:由于我最终切换到了edamame(没有这个问题),所以这对我来说不再是紧急问题,但Alex提到的他可能提出一个票证。

...