clojure-emacs / clojure-cheatsheet

[DEPRECATED] The Clojure Cheatsheet for Emacs
Eclipse Public License 1.0
194 stars 15 forks source link

This repository is now deprecated, as the functionality was moved upstream to [[https://github.com/clojure-emacs/cider][CIDER]] and [[https://github.com/clojure-emacs/helm-cider][helm-cider]].

[[screenshot1.png]]

** Status Ready to use. Based on Clojure 1.7.0.

** Installation

If you're hooked up to [[http://melpa.milkbox.net/][MELPA]]:

+BEGIN_EXAMPLE

M-x package-refresh-contents M-x package-install RET clojure-cheatsheet

+END_EXAMPLE

Alternatively just grab the single =clojure-cheatsheet.el= file and install that in your preferred way.

*** Keybindings

The cheatsheet doesn't ship with keybindings - people tend to have strong opinions on them. As a reminder, here's how to define custom =clojure-mode= keybindings in your own =.emacs= config:

**** Regular Emacs

+BEGIN_EXAMPLE

(eval-after-load 'clojure-mode '(progn (define-key clojure-mode-map (kbd "C-c C-h") #'clojure-cheatsheet)))

+END_EXAMPLE

**** Evil Users

+BEGIN_EXAMPLE

(evil-define-key 'normal clojure-mode-map "H" 'clojure-cheatsheet)

+END_EXAMPLE

** Basic Usage

Call =M-x clojure-cheatsheet= and the cheatsheet will appear. Type in some terms (space separated) to narrow down the list. For example, try typing in =sort map= to see some functions that deal with sorting maps.

*** Keys

| =C-n= | Next item. | | =C-p= | Previous item. | | =C-o= | Next section. | | =RET= | Jump to the Clojure docs for the current selection. | | =C-z= | Jump to the Clojure docs for the current selection /without closing the cheatsheet/. | | =C-e= | Jump to the Clojure src for the current selection. | | =C-h m= | Full list of keyboard shortcuts. |

** Advanced Usage

This package stands on top of Helm. The variable =helm-source-clojure-cheatsheet= is available if you want to mix it in as a Helm source.

** See Also If you like this, and you like org-mode, then you'll probably like [[https://github.com/emacs-helm/helm-orgcard][helm-orgcard]] too...

** Building

The constant =clojure-cheatsheet-hierarchy= defines the contents of the cheatsheet. See the docstring of that constant for a full description of the format.

There is a test suite in =clojure-cheatsheet-tests.el= that checks that every symbol defined in the cheatsheet is valid, and that every symbol defined by Clojure is in the sheet (with a few explicit exceptions).

To run the test suite: