|
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