From b6f7779397c53c768c3c6a4dd0d08bc61edd72b2 Mon Sep 17 00:00:00 2001 From: odave Date: Thu, 26 Mar 2020 13:52:22 +0000 Subject: +custom ocaml module This ocaml module has proper lsp support, and has the bindings I require regularly. I use utop to REPL my code, with bindings to send parts of my code to UTOP --- doom.d/config/config.org | 9 --------- doom.d/config/packages.org | 4 ---- doom.d/modules/private/ocaml/config.el | 20 ++++++++++++++++++++ doom.d/modules/private/ocaml/packages.el | 6 ++++++ 4 files changed, 26 insertions(+), 13 deletions(-) create mode 100644 doom.d/modules/private/ocaml/config.el create mode 100644 doom.d/modules/private/ocaml/packages.el diff --git a/doom.d/config/config.org b/doom.d/config/config.org index e77196d..f035346 100644 --- a/doom.d/config/config.org +++ b/doom.d/config/config.org @@ -340,15 +340,6 @@ each of the unit tests ran." (after! (haskell-mode dante) (setq dante-repl-command-line '("stack" "ghci"))) #+END_SRC -** Ocaml -Added ocaml-lsp support. -#+BEGIN_SRC elisp -(after! lsp - (lsp-register-client - (make-lsp-client :new-connection (lsp-stdio-connection "ocamllsp") - :major-modes '(tuareg-mode) - :server-id 'ocaml-lsp))) -#+END_SRC ** FSharp #+BEGIN_SRC elisp (after! fsharp diff --git a/doom.d/config/packages.org b/doom.d/config/packages.org index ca8309e..9ded568 100644 --- a/doom.d/config/packages.org +++ b/doom.d/config/packages.org @@ -52,7 +52,3 @@ Auto complete is essential to make the ultimate IDE experience™. Thus, company #+BEGIN_SRC elisp (package! company-arduino) #+END_SRC -** Ocaml -#+BEGIN_SRC elisp -(package! tuareg) -#+END_SRC diff --git a/doom.d/modules/private/ocaml/config.el b/doom.d/modules/private/ocaml/config.el new file mode 100644 index 0000000..b348197 --- /dev/null +++ b/doom.d/modules/private/ocaml/config.el @@ -0,0 +1,20 @@ +;;; private/ocaml/config.el -*- lexical-binding: t; -*- + +(use-package! utop + :config + (map! + :localleader + :map tuareg-mode-map + :desc "Repl" "c" #'utop + (:prefix ("e" . "eval") + :desc "Buffer" "b" #'utop-eval-buffer + :desc "Region" "r" #'utop-eval-region))) + + +(when (featurep! +lsp) + (after! lsp + (lsp-register-client + (make-lsp-client :new-connection (lsp-stdio-connection "ocamllsp") + :major-modes '(tuareg-mode) + :server-id 'ocaml-lsp)) + (add-hook 'tuareg-mode-hook #'(lambda () (lsp-mode))))) diff --git a/doom.d/modules/private/ocaml/packages.el b/doom.d/modules/private/ocaml/packages.el new file mode 100644 index 0000000..61f1c8d --- /dev/null +++ b/doom.d/modules/private/ocaml/packages.el @@ -0,0 +1,6 @@ +;; -*- no-byte-compile: t; -*- +;;; private/ocaml/packages.el + + +(package! tuareg) +(package! utop) -- cgit v1.2.3-13-gbd6f