doomemacs/modules/lang/ocaml/packages.el
Edwin Török 064579e33e Improve ocaml language support
See README.org.

Signed-off-by: Edwin Török <edwin@etorok.net>
2018-10-15 20:37:58 +01:00

30 lines
1.2 KiB
EmacsLisp

;; -*- no-byte-compile: t; -*-
;;; lang/ocaml/packages.el
(when (featurep! +opam-site-lisp)
(defvar +ocaml-elisp-dir
(when (executable-find "opam")
(let ((opam-share (ignore-errors (car (process-lines "opam" "config" "var" "share" "--safe")))))
(when (and opam-share (file-directory-p opam-share))
(expand-file-name "emacs/site-lisp" opam-share)))))
(defmacro localpackage! (name)
`(package! ,name :recipe (:fetcher file :path ,+ocaml-elisp-dir)))
(localpackage! opam-site-lisp))
(package! tuareg)
(when (featurep! :feature syntax-checker)
(package! flycheck-ocaml))
(unless (featurep! +opam-site-lisp)
(package! merlin)
(package! ocp-indent)
(when (featurep! :feature eval)
(package! utop))
(when (featurep! :editor format)
;; by default quelpa generated a version 0pre0.20180929.192844, which got parsed into (0 -1 0 ...), which when compared with version nil (0)
;; in package-installed-p always yielded false
(package! ocamlformat :recipe (:fetcher github :repo "ocaml-ppx/ocamlformat" :files ("emacs/*.el"))))
(package! dune :recipe (:fetcher github :repo "ocaml/dune" :files ("editor-integration/emacs/*.el"))))