2c193614f7
Currently the ocaml layer requires opam in order to work. However opam is only really required for an easy installation of the required ocaml binaries. The only place where opam is used instead is to add the merlin files of the merlin installed via opam instead of the merlin files from melp. This commit introduces a fallback if opam is not installed but ocamlmerlin is installed, since the melpa package of merlin is already installed through packages. |
||
---|---|---|
.. | ||
img | ||
config.el | ||
funcs.el | ||
packages.el | ||
README.org |
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
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.
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 |