Something went wrong. Try again.
clojure plugin for neovim
Something went wrong. Try again.
1.7 kB · 43 lines
Lua
at main
1234567891011121314151617181920212223242526272829303132333435363738394041424344-- [nfnl] fnl/clojure-nvim/init.fnllocal _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 endendM["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_})endlocal 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 endendreturn M