| 123456789101112131415161718192021222324252627282930 | 
							- ;;;  -*- lexical-binding: t; -*-
 
- (def-package! reason-mode
 
-   :mode "\\.rei?$"
 
-   :commands (reason-mode)
 
-   :config
 
-   (let* (
 
-          (refmt-bin (executable-find "refmt"))
 
-          (merlin-bin (executable-find "ocamlmerlin"))
 
-          (merlin-base-dir (when merlin-bin
 
-                             (replace-regexp-in-string "bin/ocamlmerlin$" "" merlin-bin))))
 
-     ;; Add npm merlin.el to the emacs load path and tell emacs where to find ocamlmerlin
 
-     (when merlin-bin
 
-       (add-to-list 'load-path (concat merlin-base-dir "share/emacs/site-lisp/"))
 
-       (setq merlin-command merlin-bin))
 
-     (when refmt-bin
 
-       (setq refmt-command refmt-bin))
 
-     (require 'merlin)
 
-     (add-hook! reason-mode
 
-         (add-hook 'before-save-hook #'refmt-before-save nil t)
 
-         (merlin-mode))
 
-     (setq-hook! reason-mode
 
-         indent-region-function #'apply-refmt)
 
-     (set-electric! 'some-mode :chars '(?|))
 
-     (set-lookup-handlers! 'reason-mode
 
-                           :definition #'merlin-locate
 
-                           :references #'merlin-occurrences
 
-                           :documentation #'merlin-document)
 
-     (set-company-backend! 'reason-mode 'merlin-company-backend)))
 
 
  |