狗好看の世界

Less words, more attempting.

Emacs Clojure 开发的的一些配置

避免在 project.clj 中加入cider的依赖.

主要是处理 CLJS 开发的依赖, CIDER 自身的依赖在新版中已经添加到命令中了.

编辑 .lein/profiles.clj, 在其中加入 :emacs 一项:

{ ...                                   ;; 其他的配置
 :emacs
 {:dependencies [
                 ;; [org.clojure/tools.nrepl "0.2.12"] 最新的cider中不在需要提供了
                 ;; piggieback提供nrepl一致的CLJS REPL
                 [com.cemerick/piggieback "0.2.1"]]
  :plugins [
            ;; [cider/cider-nrepl "0.11.0-SNAPSHOT"] 最新的cider中不在需要提供了
            ;; clj-refactor依赖refactor-nrepl
            [refactor-nrepl "2.0.0-SNAPSHOT"]]
  :repl-options {:nrepl-middleware [cemerick.piggieback/wrap-cljs-repl]}}}

然后修改Emacs的配置文件:

(setq cider-lein-parameters "with-profile +emacs repl :headless")

启动REPL的时候, 在Emacs中打开.clj文件, 然后用 cider-jack-in.

这样既可以省去在每一个项目中配置Cider的依赖, 又可以不影响在Emacs以外启动的REPL, 毕竟cider-nrepl对启动速度的影响太大了:(

foo-bar或:baz算一个符号

(add-hook 'clojure-mode-hook
          (lambda ()
            (dolist (c (string-to-list ":_-?!#*"))
              (modify-syntax-entry c "w" clojure-mode-syntax-table))))

按照默认的规则, 每次 M-Backspace 或者 M-m 的时候, 都非常纠结.

Comments