aboutsummaryrefslogtreecommitdiff
path: root/Doom/.config/doom/modules/private/ocaml
diff options
context:
space:
mode:
Diffstat (limited to 'Doom/.config/doom/modules/private/ocaml')
-rw-r--r--Doom/.config/doom/modules/private/ocaml/README.org16
-rw-r--r--Doom/.config/doom/modules/private/ocaml/config.el20
-rw-r--r--Doom/.config/doom/modules/private/ocaml/packages.el6
3 files changed, 42 insertions, 0 deletions
diff --git a/Doom/.config/doom/modules/private/ocaml/README.org b/Doom/.config/doom/modules/private/ocaml/README.org
new file mode 100644
index 0000000..de29e59
--- /dev/null
+++ b/Doom/.config/doom/modules/private/ocaml/README.org
@@ -0,0 +1,16 @@
+#+TITLE: private/ocaml
+#+DATE: March 29, 2020
+
+* Description
+My own ocaml module. Has LSP support, which is well defined.
+
+Pretty minimalist and allows for quick coding. Uses the terminal a lot so I'd
+suggest using vterm as well for quick access to the terminal.
+* Prerequisites
+- ocaml compiler
+- opam
+- ocamllsp (from opam) (if LSP)
+* Requirements
+- lsp
+- tuareg
+- utop
diff --git a/Doom/.config/doom/modules/private/ocaml/config.el b/Doom/.config/doom/modules/private/ocaml/config.el
new file mode 100644
index 0000000..df138ad
--- /dev/null
+++ b/Doom/.config/doom/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 #'lsp!)))
diff --git a/Doom/.config/doom/modules/private/ocaml/packages.el b/Doom/.config/doom/modules/private/ocaml/packages.el
new file mode 100644
index 0000000..61f1c8d
--- /dev/null
+++ b/Doom/.config/doom/modules/private/ocaml/packages.el
@@ -0,0 +1,6 @@
+;; -*- no-byte-compile: t; -*-
+;;; private/ocaml/packages.el
+
+
+(package! tuareg)
+(package! utop)