2024 年 Clojure 状态调查!中分享您的看法。

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

+1
ClojureScript
重新标记

目前 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 中尤其重要,因为在 ClojureScript 中没有任何方法可以修改 vars 元数据。

例如,当编辑器将形式发送到 repl 时,像编辑器这样的工具可以利用这个机制添加行信息等。保留这些信息很重要,因为像 clojure.repl/source 这样的其他东西依赖于它,目前一旦您从编辑器中评估一个形式,它就会崩溃。

我在这里增加了一个可能的解决方案 https://github.com/clojure/clojurescript/pull/210

1 答案

0

请创建一个 JIRA 问题 + 补丁,谢谢 :)

...