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:

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

2.3 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 layer improvements list

  1. Add more proper spacemacs key bindings for basic merlin tasks
  2. Add proper key bindings for ocamldebug
  3. Add more key bindings for tuareg-mode

Author: Travis CI User

Created: 2019-01-22 Tue 20:43

Validate