lang/clojure: refactor & add :eval/:repl support

This commit is contained in:
Henrik Lissner 2018-03-22 06:54:18 -04:00
parent b7cde2e01b
commit 5570fbb353
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
2 changed files with 44 additions and 34 deletions

View file

@ -0,0 +1,8 @@
;;; lang/clojure/autoload.el -*- lexical-binding: t; -*-
;;;###autoload
(defun +clojure/repl ()
"Open a Cider REPL and return the buffer."
(interactive)
(cider-jack-in)
(current-buffer))

View file

@ -5,9 +5,43 @@
:mode ("\\.cljs$" . clojurescript-mode)
:mode ("\\.cljc$" . clojurec-mode)
:config
(add-hook 'clojure-mode #'rainbow-delimiters-mode)
(add-hook 'clojure-mode #'rainbow-delimiters-mode))
(map! :map clojure-mode-map
(def-package! clj-refactor
:after clojure-mode
:config
;; setup some extra namespace auto completion for great awesome
(nconc cljr-magic-require-namespaces
'(("re-frame" . "re-frame.core")
("reagent" . "reagent.core")
("str" . "clojure.str"))))
(def-package! cider
;; NOTE: if you don't have an org directory set (the dir doesn't exist), cider
;; jack in won't work.
:commands (cider-jack-in cider-jack-in-clojurescript)
:hook (clojure-mode . cider-mode)
:config
(setq nrepl-hide-special-buffers t
cider-stacktrace-default-filters '(tooling dup)
cider-prompt-save-file-on-load nil
cider-repl-use-clojure-font-lock t
;; Setup cider for clojurescript / figwheel dev.
cider-cljs-lein-repl
"(do (require 'figwheel-sidecar.repl-api)
(figwheel-sidecar.repl-api/start-figwheel!)
(figwheel-sidecar.repl-api/cljs-repl))")
(set! :popup "^\\*cider-repl" nil '((quit) (select)))
(set! :repl 'clojure-mode #'+clojure/repl)
(set! :eval 'clojure-mode #'cider-eval-region)
(set! :lookup 'clojure-mode
:definition #'cider-browse-ns-find-at-point
:documentation #'cider-browse-ns-doc-at-point)
(map! :map cider-mode-map
:localleader
:n "'" #'cider-jack-in
:n "\"" #'cider-jack-in-clojurescript
@ -19,35 +53,3 @@
:n "c" #'cider-repl-clear-buffer
:n "p" #'cider-eval-sexp-at-point
:n "r" #'cider-eval-region))
(def-package! clj-refactor
:after clojure-mode
:config
;; setup some extra namespace auto completion for great awesome
(dolist (mapping '(("re-frame" . "re-frame.core")
("reagent" . "reagent.core")
("str" . "clojure.str")))
(add-to-list 'cljr-magic-require-namespaces mapping t)))
(def-package! cider
;; NOTE: if you don't have an org directory set (the dir doesn't exist), cider
;; jack in won't work.
:commands (cider-jack-in cider-mode cider-jack-in-clojurescript)
:config
(setq nrepl-hide-special-buffers t)
;; settings for cider repl as a popup (prevent it from being closed on escape,
;; especially.)
(set! :popup "^\\*cider" nil '((quit) (select)))
(set! :lookup 'clojure-mode
:definition #'cider-browse-ns-find-at-point
:documentation #'cider-browse-ns-doc-at-point)
;; Setup cider for clojurescript / figwheel dev.
(setq cider-cljs-lein-repl
"(do (require 'figwheel-sidecar.repl-api)
(figwheel-sidecar.repl-api/start-figwheel!)
(figwheel-sidecar.repl-api/cljs-repl))"))