| .. | ||
| .gitignore | ||
| lean4-debug.el | ||
| lean4-dev.el | ||
| lean4-eri.el | ||
| lean4-info.el | ||
| lean4-input.el | ||
| lean4-leanpkg.el | ||
| lean4-mode.el | ||
| lean4-settings.el | ||
| lean4-syntax.el | ||
| lean4-util.el | ||
| LICENSE | ||
| README.md | ||
Installation
To use lean4-mode in Emacs, add the following to your init.el:
;; You need to modify the following line
(setq load-path (cons "/path/to/lean4/lean4-mode" load-path))
(setq lean4-mode-required-packages '(dash f flycheck lsp-mode s))
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/"))
(package-initialize)
(let ((need-to-refresh t))
(dolist (p lean4-mode-required-packages)
(when (not (package-installed-p p))
(when need-to-refresh
(package-refresh-contents)
(setq need-to-refresh nil))
(package-install p))))
(require 'lean4-mode)
Trying It Out
If things are working correctly, you should see the word Lean 4 in the
Emacs mode line when you open a file with extension .lean. Emacs will ask you
to identify the "project" this file belongs to. If you then type
#check id
the word #check will be underlined, and hovering over it will show
you the type of id. The mode line will show FlyC:0/1, indicating
that there are no errors and one piece of information displayed.
Settings
Set these with e.g. M-x customize-variable.
lsp-headerline-breadcrumb-enable: show a "breadcrumb bar" of namespaces and sections surrounding the current location (default: off)
Key Bindings and Commands
| Key | Function |
|---|---|
| C-c C-k | show the keystroke needed to input the symbol under the cursor |
| C-c C-d | recompile & reload imports (lean-refresh-file-dependencies) |
| C-c C-x | execute Lean in stand-alone mode (lean-std-exe) |
| C-c C-n | toggle showing next error in dedicated buffer (lean-toggle-next-error) |
| C-c ! n | flycheck: go to next error |
| C-c ! p | flycheck: go to previous error |
| C-c ! l | flycheck: show list of errors |
For lsp-mode bindings, see https://emacs-lsp.github.io/lsp-mode/page/keybindings/ (not all capabilities are supported currently).
In the default configuration, the Flycheck annotation FlyC:n/n indicates the
number of errors / responses from Lean; clicking on FlyC opens the Flycheck menu.