4.6 KiB
4.6 KiB
Ocaml layer
Description
This is a very basic layer for editing ocaml files.
Features:
- 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 (or alternatively merlin)
Install
Layer
To use this configuration layer, add it to your ~/.spacemacs
. You will need to
add ocaml
to the existing dotspacemacs-configuration-layers
list in this
file.
Using merlin for error reporting
By default flycheck-ocaml is used for error reporting when the
syntax-checking
layer is also enabled as this is common throughout spacemacs.
You can disable this and switch back to merlin’s default error reporting method
by adding flycheck-ocaml to your excluded packages list in .spacemacs
:
dotspacemacs-excluded-packages '(... flycheck-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
Make sure opam is initialized and configured.
opam init
opam config setup -a
Key Bindings
Key Binding | Description |
---|---|
SPC m = |
Indent buffer. |
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 o |
List occurrences for identifier under point |
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 layer improvements list
- Add more proper spacemacs key-bindings for basic merlin tasks
- Add proper keybindings for ocamldebug
- Add more keybindings for tuareg-mode