-- [nfnl] fnl/clojure-nvim/init.fnl local _local_1_ = require("clojure-nvim.fs") local get_package_path = _local_1_["get-package-path"] local lsp = require("clojure-nvim.lsp") local M = {} local ts_clj_dir = get_package_path("vendor", "tree-sitter-clojure") M["compile-parser"] = function() vim.notify("Compiling tree-sitter-clojure parser", vim.log.levels.INFO) local ok = vim.system({"tree-sitter", "build", "-o", "../../parser/clojure.so"}, {cwd = ts_clj_dir, text = true}):wait() if ok then return true else vim.notify("Error in building parser", vim.log.levels.ERROR) return false end end M["initialize-ts"] = function() local function _3_() do vim.treesitter.start() end return nil end return vim.api.nvim_create_autocmd({"FileType"}, {group = vim.api.nvim_create_augroup("clojure-nvim-ts", {clear = true}), pattern = "clojure", callback = _3_}) end local default_config = {compile = true, register = true, lsp = {enable = true, ["register-keymaps"] = true, ["register-commands"] = true, config = {cmd = {"clojure-lsp"}, filetypes = {"clojure"}, root_markers = {"project.clj", "deps.edn", "build.boot", "shadow-cljs.edn", "bb.edn", ".git"}, init_options = {["log-path"] = "/tmp/clojure-lsp.out"}, trace = "verbose"}}} M.setup = function(_3fconfig) local cfg = vim.tbl_deep_extend("force", default_config, (_3fconfig or {})) if (cfg.compile and not vim.uv.fs_stat(get_package_path("parser", "clojure.so"))) then M["compile-parser"]() else end if cfg.register then M["initialize-ts"]() else end if cfg.lsp.enable then return lsp.initialize(cfg) else return nil end end return M