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, }, }, }, }, }