Created
December 5, 2016 16:24
-
-
Save mohanr/c7abc1741326dfceccc212c1dd414ce2 to your computer and use it in GitHub Desktop.
OCaml Emacs .emacs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(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