分享來源:Idiomatic Clojure with LightTable
摘要:
作者使用了重構模組 Kabit 做為後端。Kabit 其實是一個簡單的對照庫,能夠通過比對結構,重組語法,同時不改變諸如變數名稱、邏輯及數字等實際細節。例如:
(defn singleton-succ-vec [x]
(if-let [succ (+ 1 x)]
(do (->> succ (into [])))
nil))
會被轉換為
(defn singleton-succ-vec [x] (when-let [succ (inc x)] (vec succ)))
使用方法
- 添加
lein-kabit
到 project.clj 或 profiles.clj - 在 LightTable 的 user keymap 添加如下指令:
[:editor "alt-i" :eval.custom "
(do
(require 'kibit.check)
(if-let [better (kibit.check/check-expr '__SELECTION__)]
(with-out-str
(clojure.pprint/write (:alt better)
:suppress-namespaces true
:dispatch clojure.pprint/code-dispatch))
__SELECTION*__))"
{:result-type :replace :verbatim true}]