From 08757871e469096939f1e0bf2329eabac4f2f0da Mon Sep 17 00:00:00 2001 From: Jessie Hildebrandt Date: Sun, 5 Feb 2023 00:18:10 -0500 Subject: [PATCH] Add CIDER customizations --- init.el | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/init.el b/init.el index 383a7c7..3be08d3 100644 --- a/init.el +++ b/init.el @@ -908,13 +908,53 @@ DOCSTRING is an optional form that is discarded upon expansion." ;; cider ;; ---------------------------------- ;; +(defun user/abbreviate-ns (namespace) + "Return NAMESPACE with all but the last name abbreviated." + (let* ((abbreviated-ns (cider-abbreviate-ns "some-class.wow.git-mirror-magic.core")) + (names (reverse (split-string abbreviated-ns "\\."))) + (last-name (car names))) + (concat (mapconcat (lambda (name) + (propertize (concat name ".") + 'face 'font-lock-comment-face)) + (reverse (cdr names)) + "") + (propertize last-name + 'face 'font-lock-doc-face)))) + (external-package cider "Provides an interactive programming environment for Clojure." + :custom + (nrepl-hide-special-buffers t "Hide REPL communications buffers from buffer lists.") + (cider-session-name-template "%j" "Label CIDER sessions with the short name of the current project.") + (cider-reply-display-in-current-window t "Use current window when creating a CIDER REPL buffer.") + (cider-use-fringe-indicators nil "Disable evaluation indicators in the fringe of CIDER buffers.") + (cider-repl-display-help-banner nil "Disable initial infodump in CIDER REPL buffers.") + (cider-repl-prompt-function (lambda (namespace) + (concat (user/abbreviate-ns namespace) " ❱ "))) + :config + (setq nrepl-repl-buffer-name-template "*CIDER: %s (%r:%S)*" + cider--debug-buffer-format "*CIDER: Debugging %s*" + cider-inspector-buffer "*CIDER: Inspect*" + cider-error-buffer "*CIDER: Error*") + :commands + (cider) :hook (clojure-mode-hook . cider-mode) :bind + (:map clojure-mode-map + ("C-c RET" . nil)) (:map cider-mode-map - ("C-c RET" . nil))) + ("C-c RET" . nil) + ("C-c C-f" . cider-load-file) + ("C-c C-b" . cider-load-buffer)) + (:map cider-repl-mode-map + ("C-c RET" . nil) + ("C-c C-e" . end-of-buffer) + ("C-" . (lambda () + (interactive) + (when (and (get-text-property (point) 'cider-old-input) + (< (point) cider-repl-input-start-mark)) + (cider-repl--grab-old-input nil)))))) ;; ---------------------------------- ;; ;; consult