目前,Clojure 和 ClojureScript 在处理表单提供的 :line 和 :column 元数据方面存在差异。
Clojure
Clojure 1.11.1
user=> ^{:line 40} (defn foo [])
#'user/foo
user=> (-> #'foo meta :line)
40
而 ClojureScript
ClojureScript 1.11.60
cljs.user=> ^{:line 40} (defn foo [])
#'cljs.user/foo
cljs.user=> (-> #'foo meta :line)
1
我认为这特别重要,因为在 ClojureScript 中没有修改 var 元数据的方式。
工具如编辑器在将形式发送到 re pl 时可以采用这种机制添加例如行信息,如果它们知道的话。保留此信息很重要,因为其他依赖于此的信息的东西,例如 clojure.repl/source,将由此而破坏,目前一旦您从您的编辑器评估一个形式,就会破坏。
我在这里添加了一个可能的解决方案的 PRhttps://github.com/clojure/clojurescript/pull/210