featurep! will be renamed modulep! in the future, so it's been deprecated. They have identical interfaces, and can be replaced without issue. featurep! was never quite the right name for this macro. It implied that it had some connection to featurep, which it doesn't (only that it was similar in purpose; still, Doom modules are not features). To undo such implications and be consistent with its namespace (and since we're heading into a storm of breaking changes with the v3 release anyway), now was the best opportunity to begin the transition. |
||
---|---|---|
.. | ||
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?