From a219e105b0e86316edfedb57f1fa267a764eab13 Mon Sep 17 00:00:00 2001 From: Ben Puryear <54869170+Ben10164@users.noreply.github.com> Date: Fri, 19 Jul 2024 00:33:49 -0700 Subject: [PATCH] feat(lang): add OCaml (#4079) ## Description Adds an extra that adds language support for ocaml. Adds LSP and completions. Fairly simple/small config. ## Related Issue(s) None ## Screenshots lsp ocaml ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/lang/ocaml.lua | 39 +++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 lua/lazyvim/plugins/extras/lang/ocaml.lua diff --git a/lua/lazyvim/plugins/extras/lang/ocaml.lua b/lua/lazyvim/plugins/extras/lang/ocaml.lua new file mode 100644 index 00000000..d4485856 --- /dev/null +++ b/lua/lazyvim/plugins/extras/lang/ocaml.lua @@ -0,0 +1,39 @@ +return { + recommended = function() + return LazyVim.extras.wants({ + ft = { "ml", "mli", "cmi", "cmo", "cmx", "cma", "cmxa", "cmxs", "cmt", "cmti", "opam" }, + root = { "merlin.opam", "dune-project" }, + }) + end, + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts.ensure_installed) == "table" then + vim.list_extend(opts.ensure_installed, { "ocaml" }) + end + end, + }, + { + "neovim/nvim-lspconfig", + opts = { + servers = { + ocamllsp = { + get_language_id = function(_, ftype) + return language_id_of[ftype] + end, + root_dir = function(fname) + return require("lspconfig.util").root_pattern( + "*.opam", + "esy.json", + "package.json", + ".git", + "dune-project", + "dune-workspace", + "*.ml" + )(fname) + end, + }, + }, + }, + }, +}