clojure - 如何美化Lisp源代码?

标签 clojure scheme common-lisp

我的代码在这种语言中杂乱无章,如下所示

(defn check-if-installed[x] (:exit(sh "sh" "-c" (str "command -v " x " >/dev/null 2>&1 || { echo >&2 \"\"; exit 1; }"))))

或者
(def Open-Action (action :handler (fn [e] (choose-file :type :open :selection-mode :files-only :dir ListDir :success-fn (fn [fc file](setup-list file)))) :name "Open" :key "menu O" :tip "Open spelling list"))

太可怕了我想这样格式化
(if (= a something)
    (if (= b otherthing)
        (foo)))

如何更好地美化源代码?

最佳答案

现在,您可以使用Srefactor package做到这一点。

一些演示:

Emacs Lisp中的

  • Formatting whole buffer demo(也适用于Common Lisp)。
  • Transform between one line <--> Multiline demo

  • 可用命令:
  • srefactor-lisp-format-buffer:格式化整个缓冲区
  • srefactor-lisp-format-defun:格式化当前的defun游标位于
  • srefactor-lisp-format-sexp:格式化当前sexp光标所在的位置。
  • srefactor-lisp-one-line:将同一级别的当前sexp转换为一行;使用prefix参数,将所有内部六边形递归地转换为一行。

  • Scheme变体还不如Emacs Lisp和Common Lisp完善,但适用于简单和小型sexp。如果有任何问题,请提交问题报告,我们很乐意解决。

    关于clojure - 如何美化Lisp源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12172763/

    相关文章:

    scheme - 具有非 Lisp 语法的 CL/Scheme DSEL

    c - Chez Scheme 中的 FFI,用于具有可变参数的 C 函数(varargs)

    clojure - 这是对 Scheme、Racket、Common Lisp 和 Clojure 中方括号行为的正确描述吗?

    common-lisp - 在 common lisp 中加入一系列路径组件

    for-loop - 在 Clojure 中生成子字符串

    clojure - 包 vs 命名空间 vs 模块

    clojure - 检查多方法在 Clojure 中是否有特定的调度

    multithreading - 方案中的线程挂起/线程恢复

    lisp - 剪辑 : variable has no value

    clojure - 帮助我了解 Clojure 中如何处理不变性和运行时间之间的冲突