请在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] - 失败: even-number-of-forms? 在 [:bindings] 规范::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 投票
...