Due to emacs-straight/org-mode@e22b4eb, a replacement major mode (for org-mode) can no longer be specified from .dir-locals.el, as it spirals into infinite recursion. Therefore, a mode: line is needed in all Doom docs. Ref: emacs-straight/org-mode@e22b4eb7aa |
||
---|---|---|
.. | ||
autoload.el | ||
config.el | ||
doctor.el | ||
packages.el | ||
README.org |
:lang ocaml
Description unfold
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)
Maintainers
This module needs a maintainer. Become a maintainer?
Module flags
- +lsp
-
Enable LSP support for
tuareg-mode
. Requires :tools lsp and a langserver (supports ocaml-language-server). - +tree-sitter
- Leverages tree-sitter for better syntax highlighting and structural text editing. Requires :tools tree-sitter.
Packages
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
TODO Changelog
This module does not have a changelog yet.
Installation
Enable this module in your doom!
block.
This module requires the following packages available through opam:
- merlin
- utop
- ocp-indent
- dune
- ocamlformat
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) andocamlmerlin
executable is present- Line-based auto-indentation is provided by
ocp-indent
, if it is available.
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 |
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 thenformat-all-buffer
is bound toocamlformat
, otherwise toocp-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)
Run $ doom sync
to install all packages and $ doom doctor
to diagnose
missing tools.
Troubleshooting
There are no known problems with this module. Report one?
Frequently asked questions
This module has no FAQs yet. Ask one?
TODO Appendix
🔨 This module has no appendix yet. Write one?