diff options
Diffstat (limited to '.emacs.d/lisp/init-clojure.el')
-rw-r--r-- | .emacs.d/lisp/init-clojure.el | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/.emacs.d/lisp/init-clojure.el b/.emacs.d/lisp/init-clojure.el index 2bfaf78..7673565 100644 --- a/.emacs.d/lisp/init-clojure.el +++ b/.emacs.d/lisp/init-clojure.el @@ -28,7 +28,8 @@ ("st" "#spy/t"))) (defalias 'cape-clojure (cape-capf-super #'cider-complete-at-point - #'lsp-completion-at-point)) + #'lsp-completion-at-point + #'cape-dabbrev)) (defun set-clojure-capf () (add-hook 'completion-at-point-functions #'cape-clojure -99 t)) @@ -101,14 +102,13 @@ :init ;; Always show more of the path in clj buffer names. ;; Using setq-local in clojure-mode-hook is not enough, as it runs too late - (defun clj-uniquify-get-proposed-name (orig base dirname &optional depth original-dirname) + (defun clj-uniquify-get-proposed-name (orig base dirname &optional depth) (when (and (> (length base) 4) (string= ".clj" (substring base -4)) (not (string= "project.clj" base))) (setq-local uniquify-min-dir-content 3)) - (funcall orig base dirname depth original-dirname)) + (funcall orig base dirname depth)) (advice-add 'uniquify-get-proposed-name :around 'clj-uniquify-get-proposed-name) - :bind :hook (clojure-mode . clojure-mode-hook-fn)) @@ -152,10 +152,10 @@ (cider-jack-in params)) (defun load-debug-namespaces () (interactive) - (cider-interactive-eval "(require 'snitch.core)" nil nil (cider--nrepl-pr-request-map)) - (cider-interactive-eval "(require 'miracle.save)" nil nil (cider--nrepl-pr-request-map)) - (cider-interactive-eval "(require 'sc.api)" nil nil (cider--nrepl-pr-request-map)) - (cider-interactive-eval "(require '[debux.cs.core :refer [dbg dbgn dbgt]])" nil nil (cider--nrepl-pr-request-map))) + (cider-interactive-eval "(require 'snitch.core)" nil nil (cider--nrepl-pr-request-plist)) + (cider-interactive-eval "(require 'miracle.save)" nil nil (cider--nrepl-pr-request-plist)) + (cider-interactive-eval "(require 'sc.api)" nil nil (cider--nrepl-pr-request-plist)) + (cider-interactive-eval "(require '[debux.cs.core :refer [dbg dbgn dbgt]])" nil nil (cider--nrepl-pr-request-plist))) (defun cider-toggle-boolean () (interactive) (let ((opposite (pcase (cider-symbol-at-point) @@ -196,30 +196,47 @@ cider-connection-message-fn nil cider-show-error-buffer 'except-in-repl cider-test-fail-fast nil + cider-download-java-sources t clojure-toplevel-inside-comment-form t) (setq cider-clojure-compilation-error-phases nil) (setq-default cider-use-overlays t) (unbind-key "C-c C-l" cider-mode-map) (unbind-key "C-c C-b" cider-mode-map) (unbind-key "C-c C-b" cider-repl-mode-map) + (unbind-key "M-." cider-repl-mode-map) (defun fix-duplicate-windows () "When all windows are the same, delete all of them except the current one." (when (apply #'eq (mapcar 'window-buffer (window-list))) (delete-other-windows))) (advice-add #'cider-close-ancillary-buffers :after #'fix-duplicate-windows) + :bind (:map cider-mode-map ("C-c M-l" . cider-load-file) - ("C-c M-b" . cider-interrupt)) + ("C-c M-b" . cider-interrupt) + ("C-c C-j C-;" . cider-pprint-eval-last-sexp-to-comment) + ("C-c C-M-p" . cider-pprint-eval-last-sexp-to-repl) + ("C-x M-i e" . cider-inspect-last-sexp) + ("C-x M-i f" . cider-inspect-defun-at-point) + ("C-x M-i l" . cider-inspect-last-result) + ("C-x M-i v" . cider-inspect-expr)) (:map cider-repl-mode-map - ("C-c M-b" . cider-interrupt)) + ("C-c M-b" . cider-interrupt) + ;; sp commands sometimes behave strangely in the cider repl buffer + ("M-d" . paredit-forward-kill-word) + ("M-DEL" . paredit-backward-kill-word) + ("C-k" . paredit-kill) + ("C-x M-i e" . cider-inspect-last-sexp) + ("C-x M-i f" . cider-inspect-defun-at-point) + ("C-x M-i l" . cider-inspect-last-result) + ("C-x M-i v" . cider-inspect-expr)) (:map cider-start-map - ("C-c M-i" . cider-jack-in-and-run-main)) + ("C-c C-M-j" . cider-jack-in-and-run-main)) (:map clojure-mode-map ("C-c C-r C-m" . run-main) ("C-c C-r C-d" . load-debug-namespaces) - ("C-c M-i" . cider-jack-in-and-run-main) + ("C-c C-M-j" . cider-jack-in-and-run-main) ("C-x p q" . project-clojure-test-switch) ("C-c C-M-c" . (lambda () (interactive) (cider-clear-compilation-highlights t))) ("C-c C->" . cider-find-dwim) |