|
1 | | -# Additional Packages |
2 | | - |
3 | | -There are many additional Emacs packages that can enhance your Clojure programming |
4 | | -experience. The majority of the minor modes listed here should be enabled for both |
5 | | -`cider-repl-mode` and `clojure-mode` for optimal effects. |
6 | | - |
7 | | -## clj-refactor |
8 | | - |
9 | | -[clr-refactor](https://github.com/clojure-emacs/clj-refactor.el) builds on top |
10 | | -of clojure-mode and CIDER and adds a ton of extra functionality (e.g. the |
11 | | -ability to thread/unthread expression, find and replace usages, introduce let |
12 | | -bindings, extract function and so on). |
13 | | - |
14 | | -A full list of features is available |
15 | | -[here](https://github.com/clojure-emacs/clj-refactor.el/wiki). |
16 | | - |
17 | | -We hope to incorporate some of its features into clojure-mode and CIDER themselves |
18 | | -down the road. |
19 | | - |
20 | | -**Make sure that the version of `clj-refactor` you've installed is compatible with |
21 | | -your CIDER version.** |
22 | | - |
23 | | -## emidje |
24 | | - |
25 | | -[Emidje](https://github.com/nubank/emidje) is a test runner, report |
26 | | -viewer and formatting tool for |
27 | | -[Midje](https://github.com/marick/Midje) within Emacs. |
28 | | - |
29 | | -Emidje extends CIDER to provide support for Midje tests in a similar |
30 | | -fashion as `cider-test.el` does for clojure.test tests. In fact, most of |
31 | | -Emidje functionalities were strongly inspired on `cider-test.el` |
32 | | -features. |
33 | | - |
34 | | -## helm-cider |
35 | | - |
36 | | -[helm-cider](https://github.com/clojure-emacs/helm-cider) provides Helm |
37 | | -interface for certain CIDER commands (e.g. `cider-apropos`). |
38 | | - |
39 | | -## cider-hydra |
40 | | - |
41 | | -[cider-hydra](https://github.com/clojure-emacs/cider-hydra) provides a nice way |
42 | | -to navigate groups of related CIDER commands. |
43 | | - |
44 | | -You can think of it as a fancier [which-key](https://github.com/justbur/emacs-which-key). |
45 | | - |
46 | | -## squiggly-clojure |
47 | | - |
48 | | -[squiggly-clojure](https://github.com/clojure-emacs/squiggly-clojure) is a |
49 | | -Flycheck checker for Clojure, using tools like |
50 | | -[eastwood](https://github.com/jonase/eastwood), |
51 | | -[core.typed](http://typedclojure.org/) and |
52 | | -[kibit](https://github.com/jonase/kibit). |
53 | | - |
54 | | -## sayid |
55 | | - |
56 | | -[sayid](http://bpiel.github.io/sayid/) is a powerful alternative of CIDER's |
57 | | -built-in basic tracing functionality. |
58 | | - |
59 | | -## Inf-clojure |
60 | | - |
61 | | -This package provides basic interaction with a Clojure subprocess (REPL). It's |
62 | | -based on ideas from the popular inferior-lisp package. |
63 | | - |
64 | | -[inf-clojure](https://github.com/clojure-emacs/inf-clojure) has two components - |
65 | | -a nice Clojure REPL with auto-completion and a minor mode |
66 | | -(`inf-clojure-minor-mode`), which extends clojure-mode with commands to evaluate |
67 | | -forms directly in the REPL. |
68 | | - |
69 | | -It's basically a simple alternative of CIDER, which provides a subset of CIDER's |
70 | | -functionality. |
71 | | - |
72 | | -## subword-mode |
73 | | - |
74 | | -Enabling `CamelCase` support for editing commands(like |
75 | | -`forward-word`, `backward-word`, etc) in the REPL is quite useful since |
76 | | -we often have to deal with Java class and method names. The built-in |
77 | | -Emacs minor mode `subword-mode` provides such functionality: |
78 | | - |
79 | | -```el |
80 | | -(add-hook 'cider-repl-mode-hook #'subword-mode) |
81 | | -``` |
82 | | - |
83 | | -## Paredit |
84 | | - |
85 | | -The use of [paredit](http://mumble.net/~campbell/emacs/paredit.html) |
86 | | -when editing Clojure (or any other Lisp) code is highly |
87 | | -recommended. You're probably using it already in your `clojure-mode` |
88 | | -buffers (if you're not you probably should). You might also want to |
89 | | -enable `paredit` in the REPL buffer as well: |
90 | | - |
91 | | -```el |
92 | | -(add-hook 'cider-repl-mode-hook #'paredit-mode) |
93 | | -``` |
94 | | - |
95 | | -## Smartparens |
96 | | - |
97 | | -[smartparens](https://github.com/Fuco1/smartparens) is an excellent alternative |
98 | | - to paredit. Many Clojure hackers have adopted it recently and you might want |
99 | | - to give it a try as well. To enable `smartparens` in the REPL buffer use the |
100 | | - following code: |
101 | | - |
102 | | -```el |
103 | | -(add-hook 'cider-repl-mode-hook #'smartparens-strict-mode) |
104 | | -``` |
105 | | - |
106 | | -## rainbow-delimiters |
107 | | - |
108 | | -[RainbowDelimiters](https://github.com/Fanael/rainbow-delimiters) is a minor |
109 | | -mode which highlights parentheses, brackets, and braces according to their |
110 | | -depth. Each successive level is highlighted in a different color. This makes it |
111 | | -easy to spot matching delimiters, orient yourself in the code, and tell which |
112 | | -statements are at a given depth. Assuming you've already installed |
113 | | -RainbowDelimiters you can enable it in the REPL like this: |
114 | | - |
115 | | -```el |
116 | | -(add-hook 'cider-repl-mode-hook #'rainbow-delimiters-mode) |
117 | | -``` |
118 | | - |
119 | | -## eval-sexp-fu |
120 | | - |
121 | | -[eval-sexp-fu](https://github.com/hchbaw/eval-sexp-fu.el) provides some visual |
122 | | -feedback when evaluating expressions. [cider-eval-sexp-fu](https://github.com/clojure-emacs/cider-eval-sexp-fu) provides |
123 | | -CIDER integration for `eval-sexp-fu`. |
124 | | - |
125 | | -```el |
126 | | -(require 'cider-eval-sexp-fu) |
127 | | -``` |
| 1 | +<meta http-equiv="refresh" content="0; URL=https://docs.cider.mx"> |
0 commit comments