Function: cider-mode

cider-mode is an autoloaded, interactive and byte-compiled function defined in cider-mode.el.

Signature

(cider-mode &optional ARG)

Documentation

Minor mode for REPL interaction from a Clojure buffer.

This is a minor mode. If called interactively, toggle the Cider mode mode. If the prefix argument is positive, enable the mode, and if it is zero or negative, disable the mode.

If called from Lisp, toggle the mode if ARG is toggle. Enable the mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number.

To check whether the minor mode is enabled in the current buffer, evaluate cider-mode(var)/cider-mode(fun).

The mode's hook is called both when the mode is enabled and when it is disabled.

<mouse-8> xref-pop-marker-stack
<mouse-9> cider-find-dwim-at-mouse
C-M-i complete-symbol
C-M-x cider-eval-defun-at-point
C-c , C-a cider-test-rerun-test
C-c , C-b cider-test-show-report
C-c , C-f cider-test-toggle-fail-fast
C-c , C-l cider-test-run-loaded-tests
C-c , C-n cider-test-run-ns-tests
C-c , C-p cider-test-run-project-tests
C-c , C-r cider-test-rerun-failed-tests
C-c , C-s cider-test-run-ns-tests-with-filters
C-c , C-t cider-test-run-test
C-c , a cider-test-rerun-test
C-c , b cider-test-show-report
C-c , f cider-test-toggle-fail-fast
C-c , l cider-test-run-loaded-tests
C-c , n cider-test-run-ns-tests
C-c , p cider-test-run-project-tests
C-c , r cider-test-rerun-failed-tests
C-c , s cider-test-run-ns-tests-with-filters
C-c , t cider-test-run-test
C-c C-. cider-find-ns
C-c C-: cider-find-keyword
C-c C-= C-c cider-profile-clear
C-c C-= C-n cider-profile-ns-toggle
C-c C-= C-s cider-profile-summary
C-c C-= C-t cider-profile-toggle
C-c C-= c cider-profile-clear
C-c C-= n cider-profile-ns-toggle
C-c C-= s cider-profile-summary
C-c C-= t cider-profile-toggle
C-c C-? C-d cider-xref-fn-deps-select
C-c C-? C-r cider-xref-fn-refs-select
C-c C-? d cider-xref-fn-deps
C-c C-? r cider-xref-fn-refs
C-c C-M-l cider-load-all-files
C-c C-M-u cider-undef-all
C-c C-b cider-interrupt
C-c C-c cider-eval-defun-at-point
C-c C-d C-a cider-apropos
C-c C-d C-c cider-clojuredocs
C-c C-d C-d cider-doc
C-c C-d C-e cider-apropos-documentation-select
C-c C-d C-f cider-apropos-documentation
C-c C-d C-j cider-javadoc
C-c C-d C-s cider-apropos-select
C-c C-d C-w cider-clojuredocs-web
C-c C-d a cider-apropos
C-c C-d c cider-clojuredocs
C-c C-d d cider-doc
C-c C-d e cider-apropos-documentation-select
C-c C-d f cider-apropos-documentation
C-c C-d j cider-javadoc
C-c C-d s cider-apropos-select
C-c C-d w cider-clojuredocs-web
C-c C-e cider-eval-last-sexp
C-c C-f cider-pprint-eval-defun-at-point
C-c C-j C-d cider-insert-defun-in-repl
C-c C-j C-e cider-insert-last-sexp-in-repl
C-c C-j C-n cider-insert-ns-form-in-repl
C-c C-j C-r cider-insert-region-in-repl
C-c C-j d cider-insert-defun-in-repl
C-c C-j e cider-insert-last-sexp-in-repl
C-c C-j n cider-insert-ns-form-in-repl
C-c C-j r cider-insert-region-in-repl
C-c C-k cider-load-buffer
C-c C-l cider-load-file
C-c C-o cider-find-and-clear-repl-output
C-c C-p cider-pprint-eval-last-sexp
C-c C-q cider-quit
C-c C-t C-a cider-test-rerun-test
C-c C-t C-b cider-test-show-report
C-c C-t C-f cider-test-toggle-fail-fast
C-c C-t C-l cider-test-run-loaded-tests
C-c C-t C-n cider-test-run-ns-tests
C-c C-t C-p cider-test-run-project-tests
C-c C-t C-r cider-test-rerun-failed-tests
C-c C-t C-s cider-test-run-ns-tests-with-filters
C-c C-t C-t cider-test-run-test
C-c C-t a cider-test-rerun-test
C-c C-t b cider-test-show-report
C-c C-t f cider-test-toggle-fail-fast
C-c C-t l cider-test-run-loaded-tests
C-c C-t n cider-test-run-ns-tests
C-c C-t p cider-test-run-project-tests
C-c C-t r cider-test-rerun-failed-tests
C-c C-t s cider-test-run-ns-tests-with-filters
C-c C-t t cider-test-run-test
C-c C-u cider-undef
C-c C-v . cider-read-and-eval-defun-at-point
C-c C-v C-. cider-read-and-eval-defun-at-point
C-c C-v C-b cider-eval-sexp-at-point-in-context
C-c C-v C-c cider-eval-last-sexp-in-context
C-c C-v C-d cider-eval-defun-at-point
C-c C-v C-e cider-eval-last-sexp
C-c C-v C-f C-c C-d cider-pprint-eval-defun-to-comment
C-c C-v C-f C-c C-e cider-pprint-eval-last-sexp-to-comment
C-c C-v C-f C-c d cider-pprint-eval-defun-to-comment
C-c C-v C-f C-c e cider-pprint-eval-last-sexp-to-comment
C-c C-v C-f C-d cider-pprint-eval-defun-at-point
C-c C-v C-f C-e cider-pprint-eval-last-sexp
C-c C-v C-f c d cider-pprint-eval-defun-to-comment
C-c C-v C-f c e cider-pprint-eval-last-sexp-to-comment
C-c C-v C-f d cider-pprint-eval-defun-at-point
C-c C-v C-f e cider-pprint-eval-last-sexp
C-c C-v C-k cider-kill-last-result
C-c C-v C-l cider-eval-list-at-point
C-c C-v C-n cider-eval-ns-form
C-c C-v C-o cider-eval-sexp-up-to-point
C-c C-v C-q cider-tap-last-sexp
C-c C-v C-r cider-eval-region
C-c C-v C-s cider-eval-dwim
C-c C-v C-t cider-tap-sexp-at-point
C-c C-v C-v cider-eval-sexp-at-point
C-c C-v C-w cider-eval-last-sexp-and-replace
C-c C-v C-z cider-eval-defun-up-to-point
C-c C-v b cider-eval-sexp-at-point-in-context
C-c C-v c cider-eval-last-sexp-in-context
C-c C-v d cider-eval-defun-at-point
C-c C-v e cider-eval-last-sexp
C-c C-v f C-c C-d cider-pprint-eval-defun-to-comment
C-c C-v f C-c C-e cider-pprint-eval-last-sexp-to-comment
C-c C-v f C-c d cider-pprint-eval-defun-to-comment
C-c C-v f C-c e cider-pprint-eval-last-sexp-to-comment
C-c C-v f C-d cider-pprint-eval-defun-at-point
C-c C-v f C-e cider-pprint-eval-last-sexp
C-c C-v f c d cider-pprint-eval-defun-to-comment
C-c C-v f c e cider-pprint-eval-last-sexp-to-comment
C-c C-v f d cider-pprint-eval-defun-at-point
C-c C-v f e cider-pprint-eval-last-sexp
C-c C-v k cider-kill-last-result
C-c C-v l cider-eval-list-at-point
C-c C-v n cider-eval-ns-form
C-c C-v o cider-eval-sexp-up-to-point
C-c C-v q cider-tap-last-sexp
C-c C-v r cider-eval-region
C-c C-v s cider-eval-dwim
C-c C-v t cider-tap-sexp-at-point
C-c C-v v cider-eval-sexp-at-point
C-c C-v w cider-eval-last-sexp-and-replace
C-c C-v z cider-eval-defun-up-to-point
C-c C-z cider-switch-to-repl-buffer
C-c M-. cider-find-resource
C-c M-: cider-read-and-eval
C-c M-; cider-eval-defun-to-comment
C-c M-d cider-describe-connection
C-c M-e cider-eval-last-sexp-to-repl
C-c M-i cider-inspect
C-c M-l a cider-log-appender
C-c M-l c cider-log-consumer
C-c M-l e cider-log-event
C-c M-l f cider-log-framework
C-c M-l i cider-log-info
C-c M-l l cider-log
C-c M-l s cider-log-show
C-c M-m cider-macroexpand-all
C-c M-n M-b cider-browse-ns
C-c M-n M-e cider-eval-ns-form
C-c M-n M-f cider-find-ns
C-c M-n M-l cider-ns-reload-all
C-c M-n M-n cider-repl-set-ns
C-c M-n M-r cider-ns-refresh
C-c M-n b cider-browse-ns
C-c M-n e cider-eval-ns-form
C-c M-n f cider-find-ns
C-c M-n l cider-ns-reload
C-c M-n n cider-repl-set-ns
C-c M-n r cider-ns-refresh
C-c M-p cider-insert-last-sexp-in-repl
C-c M-r cider-restart
C-c M-s cider-selector
C-c M-t n cider-toggle-trace-ns
C-c M-t v cider-toggle-trace-var
C-c M-z cider-load-buffer-and-switch-to-repl-buffer
C-c RET cider-macroexpand-1
C-x C-e cider-eval-last-sexp

Key Bindings

Source Code

;; Defined in ~/.emacs.d/elpa/cider-20260414.1619/cider-mode.el
;;;###autoload
(define-minor-mode cider-mode
  "Minor mode for REPL interaction from a Clojure buffer.

\\{cider-mode-map}"
  :init-value nil
  :lighter cider-mode-line
  :keymap cider-mode-map
  (if cider-mode
      (progn
        (setq-local sesman-system 'CIDER)
        (cider-eldoc-setup)
        (add-hook 'completion-at-point-functions #'cider-complete-at-point nil t)
        (font-lock-add-keywords nil cider--static-font-lock-keywords)
        (cider-refresh-dynamic-font-lock)
        (font-lock-add-keywords nil cider--reader-conditionals-font-lock-keywords)
        ;; `font-lock-mode' might get enabled after `cider-mode'.
        (add-hook 'font-lock-mode-hook #'cider-refresh-dynamic-font-lock nil 'local)
        (setq-local font-lock-fontify-region-function
                    (cider--wrap-fontify-locals font-lock-fontify-region-function))
        ;; GTK tooltips look bad, and we have no control over the face.
        (setq-local x-gtk-use-system-tooltips nil)
        ;; `tooltip' has variable-width by default, which looks terrible.
        (set-face-attribute 'tooltip nil :inherit 'unspecified)
        (when cider-dynamic-indentation
          (setq-local clojure-get-indent-function #'cider--get-symbol-indent)
          (with-suppressed-warnings ((free-vars clojure-ts-get-indent-function))
            (setq-local clojure-ts-get-indent-function
                        #'cider--get-symbol-indent)))
        (setq-local clojure-expected-ns-function #'cider-expected-ns)
        (when cider-use-xref
          (add-hook 'xref-backend-functions #'cider--xref-backend cider-xref-fn-depth 'local))
        (cider-enable-cider-completion-style 1)
        (setq next-error-function #'cider-jump-to-compilation-error))
    ;; Mode cleanup
    (mapc #'kill-local-variable '(next-error-function
                                  x-gtk-use-system-tooltips
                                  font-lock-fontify-region-function
                                  clojure-get-indent-function
                                  clojure-ts-get-indent-function))
    (remove-hook 'completion-at-point-functions #'cider-complete-at-point t)
    (when cider-use-xref
      (remove-hook 'xref-backend-functions #'cider--xref-backend 'local))
    (remove-hook 'font-lock-mode-hook #'cider-refresh-dynamic-font-lock 'local)
    (font-lock-add-keywords nil cider--reader-conditionals-font-lock-keywords)
    (font-lock-remove-keywords nil cider--dynamic-font-lock-keywords)
    (font-lock-remove-keywords nil cider--static-font-lock-keywords)
    (font-lock-flush)
    (remove-hook 'completion-at-point-functions #'cider-complete-at-point t)))