lean-mode
=========
Emacs mode for [lean theorem prover][lean]
[lean]: https://github.com/leanprover/lean
Requirement
-----------
``lean-mode`` requires [Emacs 24][emacs24] and following (optional)
packages which can be installed via M-x package-install.
- [flycheck][flycheck]
- [fill-column-indicator][fci]
- [whitespace-cleanup-mode][wcm]
To install them, you need to have [MELPA][MELPA] in your
``package-archives``. You can add it by evaluating the following elisp
code:
```elisp
(add-to-list 'package-archives
'("marmalade" . "http://marmalade-repo.org/packages/") t)
```
[emacs24]: http://www.gnu.org/software/emacs/
[flycheck]: http://flycheck.readthedocs.org/en/latest/
[fci]: https://github.com/alpaker/Fill-Column-Indicator
[wcm]: https://github.com/purcell/whitespace-cleanup-mode
[MELPA]: http://melpa.milkbox.net/
Setup
-----
Put the following elisp code on your emacs setup:
```elisp
(setq lean-rootdir "~/projects/lean")
(setq-local lean-emacs-path
(concat (file-name-as-directory lean-rootdir)
(file-name-as-directory "src")
"emacs"))
(add-to-list 'load-path (expand-file-name lean-emacs-path))
(require 'lean-mode)
;; lean customization
(customize-set-variable 'lean-show-rule-column-method 'vline)
(customize-set-variable 'lean-rule-column 100)
(customize-set-variable 'lean-rule-color "#ff0000")
(customize-set-variable 'lean-delete-trailing-whitespace t)
```
Key Bindings
------------
|Key | Function |
|-------------------|-----------------------------------|
|C-c C-x | lean-std-exe |
|C-c C-l | lean-std-exe |
|C-c C-k | lean-hott-exe |
|C-c C-t | lean-eldoc-documentation-function |
|C-c C-f | lean-fill-placeholder |
|M-. | lean-find-tag |
|TAB | lean-complete-tag |