Table of Contents

Ocaml layer

Table of ContentsClose

ocaml.png

1 Description

This is a very basic layer for editing ocaml files.

1.1 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

2 Install

2.1 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.

2.2 OPAM packages

This layer requires some opam packages:

  • merlin for auto-completion
  • utop
  • 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

3 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

3.1 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

4 TODO S

4.1 TODO Add more proper spacemacs key-bindings for basic merlin tasks

4.2 TODO Add proper keybindings for ocamldebug

4.3 TODO Add more keybindings for tuareg-mode

Author: Sylvain Benner

Created: 2016-10-03 Mon 00:55

Validate