【问题标题】:List of alternative stacktracing libraries for clojure [closed]clojure 的替代堆栈跟踪库列表 [关闭]
【发布时间】:2013-12-29 23:39:27
【问题描述】:

除了https://github.com/mmcgrana/clj-stacktrace 和默认的clojure.stacktrace 实现之外,我还在寻找stacktrace 库。谷歌搜索stacktrace library clojure 不会产生任何结果。有没有其他选择?

【问题讨论】:

  • 您对替代方案的要求是什么?
  • 我记得看过几个库,但现在找不到了。所以我想我会问 SO
  • 也许您正在寻找 write-exception 在此:github.com/AvisoNovate/pretty
  • 这就是我要找的!如果你能写出来作为答案,我很乐意接受它
  • 我应该写什么:“毫无疑问,您只能指一件事:write-exception 在此:github.com/AvisoNovate/pretty” 老实说,这只是一个猜测。最有可能投反对票的人可能希望一个更具体的问题有机会自己写一个好的答案。我真的不能把我的猜测称为高质量的答案,但如果我能帮助你,我当然很高兴。

标签: clojure


【解决方案1】:

如果您正在寻找更好的异常可视化表示,请在 https://github.com/AvisoNovate/pretty 中使用 write-exception

不幸的是,我还不知道如何将如此好的异常集成到我的 emacs/nrepl 工作流程中(如果我使用 nrepl 中间件,我的 emacs 会显示非常丑陋的异常)。

【讨论】:

  • 我在下面添加了我的答案
  • 不幸的是它没有帮助。注入技术以及 nrepl-middleware 方法给了我充满 ^[37 字面量的异常。我在 fedora 19 上运行 Emacs。
  • 嗯...它适用于我,但我使用的是 mac...
【解决方案2】:

为了在 nrepl/emacs 中对 pretty 使用 write-exception 方法,应通过 :injections 将以下内容添加到profiles.clj。

{:user {:plugins []
         :dependencies [[io.aviso/pretty "0.1.8"]]
         :injections [(require 'io.aviso.repl 
                               'clojure.repl 
                               'clojure.main)
                      (alter-var-root #'clojure.main/repl-caught
                        (constantly @#'io.aviso.repl/pretty-pst))
                      (alter-var-root #'clojure.repl/pst
                        (constantly @#'io.aviso.repl/pretty-pst))]}}

还有另一种方法建议here

 :repl-options {
    :nrepl-middleware [io.aviso.nrepl/pretty-middleware]
 }

但我更喜欢老式的好方法

【讨论】:

    猜你喜欢
    • 2014-12-18
    • 2014-03-29
    • 2011-08-07
    • 1970-01-01
    • 2014-10-07
    • 2012-11-08
    • 1970-01-01
    • 2015-08-15
    • 2013-02-27
    相关资源
    最近更新 更多