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

欢迎!请参阅关于页面以获取更多关于如何使用本站的信息。

0
ClojureScript

增强错误打印通常不会留下空白行。请参见Clojure,以及例如,在ClojureScript中的此示例。

cljs.user=> (require '[cljs.core.specs.alpha]) nil cljs.user=> (let [1]) 语法错误在宏展开时在 cljs.core/let 中出现 (<cljs repl>:1:1). [1] - failed: even-number-of-forms? at: [:bindings] spec: :cljs.core.specs.alpha/bindings cljs.user=>

但是,使用CLJS-2945和CLJS-3011,您会看到对于{{:clojure.error.phase}}和{{:execution}}打印,会出现额外的空白行。

附带的补丁消除了这个额外的空白行,使得ClojureScript内部以及与Clojure保持一致性。以下是带补丁的示例:

cljs.user=> (ffirst 1) 执行错误(错误)在 (<cljs repl>:1). 1 不是一个ISeqable cljs.user=>

而未使用补丁时,您将看到

`
cljs.user=> (ffirst 1)
在 (:1) 执行错误(错误)。
1 不是一个ISeqable

cljs.user=>
`

稍微有些困难的是,增强的错误打印字符串在末尾有换行符。例如查看

https://github.com/clojure/clojurescript/blob/6ccb629e365f46a9516e4defeced652cce9d4d35/src/main/cljs/cljs/repl.cljs#L188

显示错误代码也用于其他错误,因此本次补丁采取的修复方法是通过{{trimr}}强制执行一致性。

2个回答

0

评论者:mfikes

CLJS-3012.patch 通过 CI (/)

0
...