spacemacs
spacemacs copied to clipboard
Spacemacs Cider evaluation to portal
https://clojurians.slack.com/archives/C0185BFLLSE/p1643514826553959
(defun portal.api/open ()
(interactive)
(cider-nrepl-sync-request:eval
"(require 'portal.api) (portal.api/tap) (portal.api/open)"))
(defun portal.api/clear ()
(interactive)
(cider-nrepl-sync-request:eval "(portal.api/clear)"))
(defun portal.api/close ()
(interactive)
(cider-nrepl-sync-request:eval "(portal.api/close)"))
;; TODO add key mappings for Spacemacs
(map! :map clojure-mode-map
;; cmd + o
:n "s-o" #'portal.api/open
;; ctrl + l
:n "C-l" #'portal.api/clear)
(require 'cider-mode)
(defun cider-tap (&rest r)
(cons (concat "(let [__value "
(caar r)
"] (tap> __value) __value)")
(cdar r)))
(advice-add 'cider-nrepl-request:eval
:filter-args #'cider-tap)
A working example of calling an elisp function from Evil normal mode when in clojure major mode
(defun clojure-hack/toggle-comment-block (arg)
"Close all top level (comment) forms. With universal arg, open all."
(interactive "P")
(save-excursion
(goto-char (point-min))
(while (search-forward-regexp "^(comment\\>" nil 'noerror)
(call-interactively
(if arg 'evil-open-fold
'evil-close-fold)))))
(evil-define-key 'normal clojure-mode-map
"zC" 'clojure-hack/toggle-comment-block
"zO" (lambda () (interactive) (clojure-hack/toggle-comment-block 'open)))