#+TITLE: lang/clojure #+DATE: May 30, 2017 #+SINCE: v2.0 #+STARTUP: inlineimages nofold * Table of Contents :TOC_3:noexport: - [[#description][Description]] - [[#maintainers][Maintainers]] - [[#module-flags][Module Flags]] - [[#plugins][Plugins]] - [[#hacks][Hacks]] - [[#prerequisites][Prerequisites]] - [[#features][Features]] - [[#keybindings][Keybindings]] - [[#configuration][Configuration]] - [[#troubleshooting][Troubleshooting]] * Description This module adds support for the Clojure(Script) language. + Interactive development environment (~cider~): REPL, compilation, debugging, running tests, definitions & documentation lookup, code completion, and much more + Refactoring (~clj-refactor~) + Linting (~clj-kondo~), requires ~:checkers syntax~ + LSP support (~clojure-lsp~) ** Maintainers This module has no dedicated maintainers. ** Module Flags + =+lsp= Enables LSP support, alongside Cider. ** Plugins + [[https://github.com/clojure-emacs/cider][cider]] + [[https://github.com/clojure-emacs/clj-refactor.el][clj-refactor]] + [[https://github.com/borkdude/flycheck-clj-kondo][flycheck-clj-kondo]] ** Hacks + Error messages emitted from CIDER are piped into the REPL buffer when it is first opened, to make them easier to notice. + Disabled the help banner when opening the cider REPL. * Prerequisites This module requires: + [[https://clojure.org/][clojure]] + [[https://leiningen.org/][leiningen]] (REPL) + [[https://github.com/borkdude/clj-kondo][clj-kondo]] (linter) + With =+lsp= + [[https://clojure-lsp.github.io/clojure-lsp/][clojure-lsp]] * TODO Features # An in-depth list of features, how to use them, and their dependencies. ** Keybindings | Binding | Description | |---------------------+------------------------------------------------------| | = '​= | =cider-jack-in-clj= | | = C= | =cider-connect-cljs= | | = M= | =cider-macroexpand-all= | | = R= | =hydra-cljr-help-menu/body= | | = c= | =cider-connect-clj= | | = e D= | =cider-insert-defun-in-repl= | | = e E= | =cider-insert-last-sexp-in-repl= | | = e R= | =cider-insert-region-in-repl= | | = e b= | =cider-eval-buffer= | | = e d= | =cider-eval-defun-at-point= | | = e e= | =cider-eval-last-sexp= | | = e r= | =cider-eval-region= | | = e u= | =cider-undef= | | = g b= | =cider-pop-back= | | = g g= | =cider-find-var= | | = g n= | =cider-find-ns= | | = h a= | =cider-apropos= | | = h c= | =cider-clojuredocs= | | = h d= | =cider-doc= | | = h j= | =cider-javadoc= | | = h n= | =cider-find-ns= | | = h w= | =cider-clojuredocs-web= | | = i e= | =cider-enlighten-mode= | | = i i= | =cider-inspect= | | = i r= | =cider-inspect-last-result= | | = m "​= | =cider-jack-in-cljs= | | = m= | =cider-macroexpand-1= | | = n N= | =cider-browse-ns-all= | | = n n= | =cider-browse-ns= | | = n r= | =cider-ns-refresh= | | = p d= | =cider-pprint-eval-defun-at-point= | | = p D= | =cider-pprint-eval-defun-to-comment= | | = p p= | =cider-pprint-eval-last-sexp= | | = p P= | =cider-pprint-eval-last-sexp-to-comment= | | = p r= | =cider-pprint-eval-last-sexp-to-repl= | | = r B= | =+clojure/cider-switch-to-repl-buffer-and-switch-ns= | | = r L= | =cider-load-buffer-and-switch-to-repl-buffer= | | = r R= | =cider-restart= | | = r b= | =cider-switch-to-repl-buffer= | | = r c= | =cider-find-and-clear-repl-output= | | = r l= | =cider-load-buffer= | | = r n= | =cider-repl-set-ns= | | = r q= | =cider-quit= | | = r r= | =cider-ns-refresh= | | = t a= | =cider-test-rerun-test= | | = t l= | =cider-test-run-loaded-tests= | | = t n= | =cider-test-run-ns-tests= | | = t p= | =cider-test-run-project-tests= | | = t r= | =cider-test-rerun-failed-tests= | | = t s= | =cider-test-run-ns-tests-with-filters= | | = t t= | =cider-test-run-test= | * TODO Configuration # How to configure this module, including common problems and how to address them. * TODO Troubleshooting # Common issues and their solution, or places to look for help.