summaryrefslogtreecommitdiff
path: root/lua/lvim/lsp
diff options
context:
space:
mode:
authorAbouzar Parvan <[email protected]>2022-09-20 14:11:58 +0430
committerGitHub <[email protected]>2022-09-20 14:11:58 +0430
commit518b1d4167162a54a6e76784038d30191613b76d (patch)
tree6007451a5e1f77db9ee116ee1a262c8f0639115d /lua/lvim/lsp
parent03ec31253fc868b3ab5a8217640ec04248ae0046 (diff)
Fix: make sure latest plugins are customizable (#3044)
* fix: make navim-navic configurable * fix: make sure vim-illuminate is configurable * fix: make sure theme is configurable * fix(ci): don't verify uninstalled plugins * refactor(lsp): add setup_document_symbols util * revert: keep onedarker on freeze branch * refactor(lsp): avoid duplicate hl autocmds Co-authored-by: kylo252 <[email protected]>
Diffstat (limited to 'lua/lvim/lsp')
-rw-r--r--lua/lvim/lsp/config.lua2
-rw-r--r--lua/lvim/lsp/handlers.lua3
-rw-r--r--lua/lvim/lsp/init.lua11
-rw-r--r--lua/lvim/lsp/utils.lua18
4 files changed, 23 insertions, 11 deletions
diff --git a/lua/lvim/lsp/config.lua b/lua/lvim/lsp/config.lua
index 7e91db52..d842f099 100644
--- a/lua/lvim/lsp/config.lua
+++ b/lua/lvim/lsp/config.lua
@@ -72,7 +72,7 @@ return {
end,
},
},
- document_highlight = true,
+ document_highlight = false,
code_lens_refresh = true,
float = {
focusable = true,
diff --git a/lua/lvim/lsp/handlers.lua b/lua/lvim/lsp/handlers.lua
index 45b1989d..81342885 100644
--- a/lua/lvim/lsp/handlers.lua
+++ b/lua/lvim/lsp/handlers.lua
@@ -12,6 +12,9 @@ function M.setup()
float = lvim.lsp.diagnostics.float,
}
vim.diagnostic.config(config)
+ if not lvim.builtin.illuminate.active then
+ vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, lvim.lsp.float)
+ end
vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, lvim.lsp.float)
end
diff --git a/lua/lvim/lsp/init.lua b/lua/lvim/lsp/init.lua
index ac3f6925..1072329b 100644
--- a/lua/lvim/lsp/init.lua
+++ b/lua/lvim/lsp/init.lua
@@ -60,15 +60,6 @@ function M.common_on_init(client, bufnr)
end
end
-local function attach_navic(client, bufnr)
- vim.g.navic_silence = true
- local status_ok, navic = pcall(require, "nvim-navic")
- if not status_ok then
- return
- end
- navic.attach(client, bufnr)
-end
-
function M.common_on_attach(client, bufnr)
if lvim.lsp.on_attach_callback then
lvim.lsp.on_attach_callback(client, bufnr)
@@ -83,7 +74,7 @@ function M.common_on_attach(client, bufnr)
end
add_lsp_buffer_keybindings(bufnr)
add_lsp_buffer_options(bufnr)
- attach_navic(client, bufnr)
+ lu.setup_document_symbols(client, bufnr)
end
function M.get_common_opts()
diff --git a/lua/lvim/lsp/utils.lua b/lua/lvim/lsp/utils.lua
index 3be7e52f..c2ffe3fa 100644
--- a/lua/lvim/lsp/utils.lua
+++ b/lua/lvim/lsp/utils.lua
@@ -1,6 +1,7 @@
local M = {}
local tbl = require "lvim.utils.table"
+local Log = require "lvim.core.log"
function M.is_client_active(name)
local clients = vim.lsp.get_active_clients()
@@ -82,6 +83,10 @@ function M.get_all_supported_filetypes()
end
function M.setup_document_highlight(client, bufnr)
+ if lvim.builtin.illuminate.active then
+ Log:debug "skipping setup for document_highlight, illuminate already active"
+ return
+ end
local status_ok, highlight_supported = pcall(function()
return client.supports_method "textDocument/documentHighlight"
end)
@@ -114,6 +119,19 @@ function M.setup_document_highlight(client, bufnr)
})
end
+function M.setup_document_symbols(client, bufnr)
+ vim.g.navic_silence = false -- can be set to true to supress error
+ local symbols_supported = client.supports_method "textDocument/documentSymbol"
+ if not symbols_supported then
+ Log:debug("skipping setup for document_symbols, method not supported by " .. client.name)
+ return
+ end
+ local status_ok, navic = pcall(require, "nvim-navic")
+ if status_ok then
+ navic.attach(client, bufnr)
+ end
+end
+
function M.setup_codelens_refresh(client, bufnr)
local status_ok, codelens_supported = pcall(function()
return client.supports_method "textDocument/codeLens"