:lang ocaml
An objective camel
1. Description
This module adds OCaml support to Doom Emacs, powered by tuareg-mode.
- Code completion, documentation look-up, code navigation and refactoring (merlin)
- Type, documentation and function argument display on idle (merlin-eldoc)
- REPL (utop)
- Syntax-checking (
merlin
with flycheck-ocaml) - Auto-indentation (ocp-indent)
- Code formatting (ocamlformat)
- Dune file format (dune)
1.1. Maintainers
This module has no dedicated maintainers. Become a maintainer?
1.2. Module flags
This module has no flags.
1.3. Packages
1.4. Hacks
set-ligatures!
is called with the full tuareg prettify symbol list, this can cause columns to change as certain keywords are shortened (e.g. fun becomes λ.tuareg-opam-update-env
is called the first time tuareg is loaded
2. Prerequisites
3. TODO Usage
This module’s usage documentation is incomplete. Complete it?
- The following files should have syntax highlighting support:
.ml{i,p,y,}
,.eliom{i,}
,jbuild
,dune
,opam
merlin-mode
is activated whenever a .merlin file is found (including in a parent directory) and ocamlmerlin executable is present- Line-based auto-indentation is provided by ocp-indent, if it is available.
3.1. Commands
Command | Key | Description |
---|---|---|
merlin-type-enclosing | <localleader> t | display type under point |
tuareg-find-alternate-file | <localleader> a | switch between .ml and .mli |
merlin-locate | g d | lookup definition |
merlin-occurences | SPC c D | lookup references |
merlin-document | K | lookup documentation |
merlin-imenu | SPC s i | symbol lookup in file |
merlin-iedit-occurrences | v R | visual refactor identifier under point (multiple cursors) |
utop | SPC o r | open utop as REPL |
utop-eval-region | SPC c e | evaluate selected region in utop |
4. TODO Configuration
This module’s configuration documentation is incomplete. Complete it?
- If :completion company is enabled then autocomplete is provided by merlin.
- When :checkers syntax is enabled then flycheck-ocaml is activated to do on-the-fly syntax/type checking via merlin, otherwise this is only done when the file is saved.
- Spell checking is activated in comments if :checkers spell is active.
- A REPL is provided if utop is installed and :tools eval is active.
- If :editor format is enabled, the ocamlformat executable is available and there is an .ocamlformat file present then format-all-buffer is bound to ocamlformat, otherwise to ocp-indent.
- If :editor multiple-cursors is enabled then identifiers can be refactored with v R and multiple cursors (this correctly matches identifier occurrences according to scope, it is not purely a textual match).
5. Troubleshooting
There are no known problems with this module. Report one?
6. TODO Appendix
This module has no appendix yet. Write one?