Add OCaml support to Flycheck:
- Add a
ocaml-merlin
syntax checker using Merlin
You can install flycheck-ocaml
from MELPA or MELPA Stable:
M-x package-install [RET] flycheck-ocaml [RET]
For OCaml (assuming you're using tuareg-mode
), add this to your init.el
:
(with-eval-after-load 'merlin
;; Disable Merlin's own error checking
(setq merlin-error-after-save nil)
;; Enable Flycheck checker
(flycheck-ocaml-setup))
(add-hook 'tuareg-mode-hook #'merlin-mode)
;; or this if you're into use-package
(use-package flycheck-ocaml
:ensure t
:config
(add-hook 'tuareg-mode-hook
(lambda ()
;; disable Merlin's own error checking
(setq-local merlin-error-after-save nil)
;; enable Flycheck checker
(flycheck-ocaml-setup))))
For ReasonML, add this to your init.el
:
(use-package flycheck-ocaml
:ensure t
:config
(add-hook 'reason-mode-hook
(lambda ()
;; disable Merlin's own error checking
(setq-local merlin-error-after-save nil)
;; enable Flycheck checker
(flycheck-ocaml-setup))))
Just use Flycheck as usual in Tuareg Mode buffers. Flycheck will automatically
use the new ocaml-merlin
syntax checker if Merlin Mode is enabled and Merlin's
own error checking (merlin-error-after-save
) is disabled.
If you enable Merlin's error checking with M-x merlin-toggle-view-errors
Flycheck will not use the ocaml-merlin
syntax checker anymore, to avoid
duplicate and redundant error reporting.
Important: You'll need to have a Dune project
for flycheck-ocaml
to work. Once you've setup a project just run dune build
and you'll be all set. See this article for more details.
You might need to restart manually the Merlin server after making changes to your Dune project's configuration.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
See COPYING
for details.