OCaml Emacs .emacs
(package-initialize) | |
(load "/home/mohan/.opam/4.02.1/share/emacs/site-lisp/tuareg-site-file") | |
(let ((opam-share (ignore-errors (car (process-lines "opam" "config" "var" | |
"share"))))) | |
(when (and opam-share (file-directory-p opam-share)) | |
;; Register Merlin | |
(add-to-list 'load-path (expand-file-name "emacs/site-lisp" opam-share)) | |
(autoload 'merlin-mode "merlin" nil t nil) | |
;; Automatically start it in OCaml buffers | |
(add-hook 'tuareg-mode-hook 'merlin-mode t) | |
(add-hook 'caml-mode-hook 'merlin-mode t) | |
;; Use opam switch to lookup ocamlmerlin binary | |
(setq merlin-command 'opam))) | |
(company-mode) | |
(add-to-list 'load-path "/home/mohan/.opam/4.02.1/share/emacs/site-lisp") | |
(require 'ocp-indent) | |
(autoload 'utop-minor-mode "utop" "Minor mode for utop" t) | |
(autoload 'utop-setup-ocaml-buffer "utop" "Toplevel for OCaml" t) | |
(autoload 'merlin-mode "merlin" "Merlin mode" t) | |
(utop-minor-mode) | |
;; Important to note that setq-local is a macro and it needs to be | |
;; separate calls, not like setq | |
(setq-local merlin-completion-with-doc t) | |
(setq-local indent-tabs-mode nil) | |
(setq-local show-trailing-whitespace t) | |
(setq-local indent-line-function 'ocp-indent-line) | |
(setq-local indent-region-function 'ocp-indent-region) | |
(custom-set-variables | |
;; custom-set-variables was added by Custom. | |
;; If you edit it by hand, you could mess it up, so be careful. | |
;; Your init file should contain only one such instance. | |
;; If there is more than one, they won't work right. | |
'(package-selected-packages (quote (company)))) | |
(custom-set-faces | |
;; custom-set-faces was added by Custom. | |
;; If you edit it by hand, you could mess it up, so be careful. | |
;; Your init file should contain only one such instance. | |
;; If there is more than one, they won't work right. | |
) | |
; Make company aware of merlin | |
(with-eval-after-load 'company | |
(add-to-list 'company-backends 'merlin-company-backend)) | |
; Enable company on merlin managed buffers | |
(add-hook 'merlin-mode-hook 'company-mode) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment