- enable ocamldoc in company completion - enable merlin-document binding - add binding for ML <-> MLI switch - bind most merlin commands user visible change: printing type at point was moved to SPC mht, and SPC mhT asks for an expression SPC mgg/mgG is now consistent with CONVENTIONS.md, and SPC mgb can be used to go back(in addition to default C-c &)
3.3 KiB
Ocaml contribution layer for Spacemacs
Table of Contents
Description
This is a very basic layer for editing ocaml files.
- Syntax highlighting (major-mode) via tuareg-mode
- Error reporting, completion and type display via merlin
- auto-completion with company mode via merlin
- syntax-checking via flycheck-ocaml
Install
Layer
To use this contribution add it to your ~/.spacemacs
(setq-default dotspacemacs-configuration-layers '(ocaml))
OPAM packages
This layer requires some opam packages:
merlin
for auto-completionutop
ocp-indent
To install them, use the following command:
opam install merlin utop ocp-indent
Key Bindings
Key Binding | Description
----------------------|-------------------------------------------------------- SPC m c c | Compile SPC m c p | Check .merlin for errors SPC m c r | Refresh changed .cmis in merlin SPC m e C | Check for errors in current buffer SPC m e n | Jump to next error SPC m e N | Jump back to previous error SPC m g a | Switch ML <-> MLI SPC m g b | Go back to the last position where the user did a locate SPC m g g | Locate the identifier under point (same window) SPC m g G | Locate the identifier under point (different window) SPC m g l | Prompt for identifier and locate SPC m g i | Prompt for module name and switch to ML file SPC m g I | Prompt for module name and switch to MLI file SPC m h h | Document the identifier under point SPC m h t | Highlight identifier under cursor and print its type SPC m h T | Prompt for expression and show its type SPC m r d | Case analyze the current enclosing
REPL (utop)
Key Binding | Description
----------------------|--------------------------------------------------------
SPC m s b | Send buffer to the REPL
SPC m s B | Send buffer to the REPL and switch to the REPL in insert state
SPC m s i | Start a REPL
SPC m s p | Send phrase to the REPL
SPC m s P | Send phrase to the REPL and switch to the REPL in insert state
SPC m s r | Send region to the REPL
SPC m s R | Send region to the REPL and switch to the REPL in insert state
C-j | (in REPL) next item in history
C-k | (in REPL) previous item in history
TODO
- Add more proper spacemacs key-bindings for basic merlin tasks
- Add proper keybindings for ocamldebug
- Add more keybindings for tuareg-mode