Leiningen + Figwheel + Emacs 配置

Lein 通过命令行启动, 通过 project.clj 文件配置. project.clj 实际上是一个 Clojure 脚本, 运行时被读取.

Emacs C-x C-e eval last cljs sexp 的配置

  • 1.在 project.clj 文件里面的 :dependencies 引入

:dependencies [ ...
               [com.cemerick/piggieback "0.2.2-SNAPSHOT"]
                ... ]
  • 2.修改 project.clj 文件里面的 :figwheel

:figwheel {...
           :nrepl-port 7003
           :nrepl-middleware ["cemerick.piggieback/wrap-cljs-repl"]
           ...
           }
  • 3.lein figwheel 启动nrepl, 用Emacs的Cider连接nrepl的7003端口,并在浏览器端打开项目的页面

在你的Emacs配置里面加入 cljs-client-start, cljs-eval-sexp函数, cider连接完成后,在cider连接的buffer里面执行 M-x cljs-client-start 并回车两次, 使得cider的cljs客户端连接上浏览器, 完成后你就可以执行 C-x C-e 执行cljs单个S表达式了

cljs-eval-sexp函数是方便快速查看cljs变量和简单的表达式测试用的, 快捷键是 M-"


(defun cljs-client-start ()
  (interactive)
  (progn
    (insert "(use 'figwheel-sidecar.repl-api)\n")
    (insert "(cljs-repl)\n")
    (sleep-for 2)
    (rename-buffer (replace-regexp-in-string " " " CLJS " (buffer-name)))
    )
  )

(defun cljs-eval-sexp (sexp)
  (interactive "sClJS-EVAL:")
  (cider-interactive-eval sexp)
  )
(define-key global-map (kbd "M-\"") 'cljs-eval-sexp)

results matching ""

    No results matching ""