From 72d448e384249103748ee83b587c45924e4bc44d Mon Sep 17 00:00:00 2001 From: sefidel Date: Thu, 10 Feb 2022 00:24:03 +0900 Subject: Initial commit --- fnl/nvrc/packs/lspconfig.fnl | 50 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 fnl/nvrc/packs/lspconfig.fnl (limited to 'fnl/nvrc/packs/lspconfig.fnl') diff --git a/fnl/nvrc/packs/lspconfig.fnl b/fnl/nvrc/packs/lspconfig.fnl new file mode 100644 index 0000000..83a4146 --- /dev/null +++ b/fnl/nvrc/packs/lspconfig.fnl @@ -0,0 +1,50 @@ +(local lsp (require :lspconfig)) +(local {: highlight} (require :nvrc.macro.color)) +(local {: merge} (require :nvrc.utils)) +(local colors (require :nvrc.colors)) + +(fn on_attach [client bufnr] + (highlight :DiagnosticError {:fg (. colors :red)}) + (highlight :DiagnosticWarn {:fg (. colors :yellow)}) + (highlight :DiagnosticInformation {:fg (. colors :green)}) + (highlight :DiagnosticHint {:fg (. colors :grey)}) + (if client.resolved_capabilities.document_highlight + (do + (highlight :LspReferenceRead {:underline true}) + (highlight :LspReferenceText {:underline true}) + (highlight :LspReferenceWrite {:underline true}) + (vim.api.nvim_exec "augroup lsp_document_highlight + autocmd! * + autocmd CursorMoved lua vim.lsp.buf.clear_references() + augroup END" false)))) + +(fn better_root_pattern [patterns except-patterns] + "match path if one of the given patterns is matched, EXCEPT if one of the except-patterns is matched" + (fn [path] + (when (not ((lsp.util.root_pattern except-patterns) path)) + ((lsp.util.root_pattern patterns) path)))) + +(local default_capabilities (vim.lsp.protocol.make_client_capabilities)) + +(fn init_lsp [lsp-name ?opts] + "initialize a language server with defaults" + (let [merged-opts (merge {: on_attach + :capabilities default_capabilities} + (or ?opts {}))] + ((. lsp lsp-name :setup) merged-opts))) + +(tset vim.lsp.handlers :textDocument/publishDiagnostics + (vim.lsp.with vim.lsp.diagnostic.on_publish_diagnostics + {:update_in_insert false + :virtual_text {:prefix "-"} + :signs false})) + +(init_lsp :ccls) +(init_lsp :hls) +(init_lsp :rust_analyzer) + +(vim.cmd "highlight link LspSemantic_type Include") +(vim.cmd "highlight link LspSemantic_function Identifier") +(vim.cmd "highlight link LspSemantic_struct Number") +(vim.cmd "highlight LspSemantic_variable guifg=gray") +(vim.cmd "highlight link LspSemantic_keyword Structure") -- cgit 1.4.1