• Leiningen + Figwheel + Emacs 配置
    • Emacs C-x C-e eval last cljs sexp 的配置

    Leiningen + Figwheel + Emacs 配置

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

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

    • 1.在 project.clj 文件里面的 :dependencies 引入
    1. :dependencies [ ...
    2. [com.cemerick/piggieback "0.2.2-SNAPSHOT"]
    3. ... ]
    • 2.修改 project.clj 文件里面的 :figwheel
    1. :figwheel {...
    2. :nrepl-port 7003
    3. :nrepl-middleware ["cemerick.piggieback/wrap-cljs-repl"]
    4. ...
    5. }
    • 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-"

    1. (defun cljs-client-start ()
    2. (interactive)
    3. (progn
    4. (insert "(use 'figwheel-sidecar.repl-api)\n")
    5. (insert "(cljs-repl)\n")
    6. (sleep-for 2)
    7. (rename-buffer (replace-regexp-in-string " " " CLJS " (buffer-name)))
    8. )
    9. )
    10. (defun cljs-eval-sexp (sexp)
    11. (interactive "sClJS-EVAL:")
    12. (cider-interactive-eval sexp)
    13. )
    14. (define-key global-map (kbd "M-\"") 'cljs-eval-sexp)