From 564cfe8f3c6e4e28b124f92d08489bc81dcead44 Mon Sep 17 00:00:00 2001 From: lvimuser <109605931+lvimuser@users.noreply.github.com> Date: Thu, 15 Sep 2022 07:13:46 -0300 Subject: fix(lsp/utils): do not register duplicate autocommands (#3004) --- lua/lvim/lsp/utils.lua | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) (limited to 'lua/lvim/lsp') diff --git a/lua/lvim/lsp/utils.lua b/lua/lvim/lsp/utils.lua index b92ef11c..3be7e52f 100644 --- a/lua/lvim/lsp/utils.lua +++ b/lua/lvim/lsp/utils.lua @@ -88,19 +88,27 @@ function M.setup_document_highlight(client, bufnr) if not status_ok or not highlight_supported then return end - local augroup_exist, _ = pcall(vim.api.nvim_get_autocmds, { - group = "lsp_document_highlight", + local group = "lsp_document_highlight" + local hl_events = { "CursorHold", "CursorHoldI" } + + local ok, hl_autocmds = pcall(vim.api.nvim_get_autocmds, { + group = group, + buffer = bufnr, + event = hl_events, }) - if not augroup_exist then - vim.api.nvim_create_augroup("lsp_document_highlight", {}) + + if ok and #hl_autocmds > 0 then + return end - vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, { - group = "lsp_document_highlight", + + vim.api.nvim_create_augroup(group, { clear = false }) + vim.api.nvim_create_autocmd(hl_events, { + group = group, buffer = bufnr, callback = vim.lsp.buf.document_highlight, }) vim.api.nvim_create_autocmd("CursorMoved", { - group = "lsp_document_highlight", + group = group, buffer = bufnr, callback = vim.lsp.buf.clear_references, }) @@ -113,14 +121,20 @@ function M.setup_codelens_refresh(client, bufnr) if not status_ok or not codelens_supported then return end - local augroup_exist, _ = pcall(vim.api.nvim_get_autocmds, { - group = "lsp_code_lens_refresh", + local group = "lsp_code_lens_refresh" + local cl_events = { "BufEnter", "InsertLeave" } + local ok, cl_autocmds = pcall(vim.api.nvim_get_autocmds, { + group = group, + buffer = bufnr, + event = cl_events, }) - if not augroup_exist then - vim.api.nvim_create_augroup("lsp_code_lens_refresh", {}) + + if ok and #cl_autocmds > 0 then + return end - vim.api.nvim_create_autocmd({ "BufEnter", "InsertLeave" }, { - group = "lsp_code_lens_refresh", + vim.api.nvim_create_augroup(group, { clear = false }) + vim.api.nvim_create_autocmd(cl_events, { + group = group, buffer = bufnr, callback = vim.lsp.codelens.refresh, }) -- cgit v1.2.3 From a4c2dc4d0b638a50c3219f247b09e6238a44ec50 Mon Sep 17 00:00:00 2001 From: Christian Chiarulli Date: Thu, 15 Sep 2022 23:33:08 -0400 Subject: refactor: small improvements (#3021) --- lua/lvim/lsp/config.lua | 11 ---- lua/lvim/lsp/peek.lua | 157 ------------------------------------------------ 2 files changed, 168 deletions(-) delete mode 100644 lua/lvim/lsp/peek.lua (limited to 'lua/lvim/lsp') diff --git a/lua/lvim/lsp/config.lua b/lua/lvim/lsp/config.lua index 96a1b823..7e91db52 100644 --- a/lua/lvim/lsp/config.lua +++ b/lua/lvim/lsp/config.lua @@ -79,11 +79,6 @@ return { style = "minimal", border = "rounded", }, - peek = { - max_height = 15, - max_width = 30, - context = 10, - }, on_attach_callback = nil, on_init_callback = nil, automatic_configuration = { @@ -100,12 +95,6 @@ return { ["gr"] = { vim.lsp.buf.references, "Goto references" }, ["gI"] = { vim.lsp.buf.implementation, "Goto Implementation" }, ["gs"] = { vim.lsp.buf.signature_help, "show signature help" }, - ["gp"] = { - function() - require("lvim.lsp.peek").Peek "definition" - end, - "Peek definition", - }, ["gl"] = { function() local config = lvim.lsp.diagnostics.float diff --git a/lua/lvim/lsp/peek.lua b/lua/lvim/lsp/peek.lua deleted file mode 100644 index 65c67e92..00000000 --- a/lua/lvim/lsp/peek.lua +++ /dev/null @@ -1,157 +0,0 @@ -local M = { - floating_buf = nil, - floating_win = nil, - prev_result = nil, -} - -local function create_floating_file(location, opts) - vim.validate { - location = { location, "t" }, - opts = { opts, "t", true }, - } - - -- Set some defaults - opts = opts or {} - local close_events = opts.close_events or { "CursorMoved", "CursorMovedI", "BufHidden", "InsertCharPre" } - - -- location may be LocationLink or Location - local uri = location.targetUri or location.uri - if uri == nil then - return - end - local bufnr = vim.uri_to_bufnr(uri) - if not vim.api.nvim_buf_is_loaded(bufnr) then - vim.fn.bufload(bufnr) - end - - local range = location.targetRange or location.range - - local contents = vim.api.nvim_buf_get_lines( - bufnr, - range.start.line, - math.min( - range["end"].line + 1 + (opts.context or lvim.lsp.peek.max_height), - range.start.line + (opts.max_height or lvim.lsp.peek.max_height) - ), - false - ) - if next(contents) == nil then - vim.notify("peek: Unable to get contents of the file!", vim.log.levels.WARN) - return - end - local width, height = vim.lsp.util._make_floating_popup_size(contents, opts) - local if_nil = vim.F.if_nil - opts = vim.lsp.util.make_floating_popup_options( - if_nil(width, lvim.lsp.peek.max_width), - if_nil(height, lvim.lsp.peek.max_height), - opts - ) - -- Don't make it minimal as it is meant to be fully featured - opts["style"] = nil - - vim.api.nvim_buf_set_option(bufnr, "bufhidden", "wipe") - - local winnr = vim.api.nvim_open_win(bufnr, false, opts) - vim.api.nvim_win_set_option(winnr, "winblend", 0) - - vim.api.nvim_win_set_cursor(winnr, { range.start.line + 1, range.start.character }) - vim.api.nvim_buf_set_var(bufnr, "lsp_floating_window", winnr) - - -- Set some autocmds to close the window - vim.api.nvim_command( - string.format("autocmd %s ++once lua pcall(vim.api.nvim_win_close, %d, true)", unpack(close_events), winnr) - ) - - return bufnr, winnr -end - -local function preview_location_callback(result) - if result == nil or vim.tbl_isempty(result) then - return nil - end - - local opts = { - border = "rounded", - context = lvim.lsp.peek.context, - } - - if vim.tbl_islist(result) then - M.prev_result = result[1] - M.floating_buf, M.floating_win = create_floating_file(result[1], opts) - else - M.prev_result = result - M.floating_buf, M.floating_win = create_floating_file(result, opts) - end -end - -local function preview_location_callback_new_signature(_, result) - return preview_location_callback(result) -end - -function M.open_file() - -- Get the file currently open in the floating window - local filepath = vim.fn.expand "%:." - - if not filepath then - vim.notify("peek: Unable to open the file!", vim.log.levels.ERROR) - return - end - - -- Close the floating window - pcall(vim.api.nvim_win_close, M.floating_win, true) - - -- Edit the file - vim.cmd("edit " .. filepath) - - local winnr = vim.api.nvim_get_current_win() - - -- Set the cursor at the right position - M.set_cursor_to_prev_pos(winnr) -end - -function M.set_cursor_to_prev_pos(winnr) - -- Get position of the thing to peek at - local location = M.prev_result - local range = location.targetRange or location.range - local cursor_pos = { range.start.line + 1, range.start.character } - - -- Set the winnr to the floating window if none was passed in - winnr = winnr or M.floating_win - -- Set the cursor at the correct position in the floating window - vim.api.nvim_win_set_cursor(winnr, cursor_pos) -end - -function M.Peek(what) - -- If a window already exists, focus it at the right position! - if vim.tbl_contains(vim.api.nvim_list_wins(), M.floating_win) then - local success_1, _ = pcall(vim.api.nvim_set_current_win, M.floating_win) - if not success_1 then - vim.notify("peek: You cannot edit the current file in a preview!", vim.log.levels.ERROR) - return - end - - -- Set the cursor at the correct position in the floating window - M.set_cursor_to_prev_pos() - - vim.api.nvim_buf_set_keymap( - M.floating_buf, - "n", - "", - ":lua require('lvim.lsp.peek').open_file()", - { noremap = true, silent = true } - ) - else - -- Make a new request and then create the new window in the callback - local params = vim.lsp.util.make_position_params() - local preview_callback = preview_location_callback_new_signature - local success, _ = pcall(vim.lsp.buf_request, 0, "textDocument/" .. what, params, preview_callback) - if not success then - vim.notify( - 'peek: Error calling LSP method "textDocument/' .. what .. '". The current language lsp might not support it.', - vim.log.levels.ERROR - ) - end - end -end - -return M -- cgit v1.2.3 From 68fdbaa51d658899d4405b2660bfbe360e9dfed4 Mon Sep 17 00:00:00 2001 From: kylo252 <59826753+kylo252@users.noreply.github.com> Date: Mon, 19 Sep 2022 13:10:07 +0200 Subject: fix(lsp): enforce lvim completion for lua-server (#3035) --- lua/lvim/lsp/providers/sumneko_lua.lua | 55 +++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 17 deletions(-) (limited to 'lua/lvim/lsp') diff --git a/lua/lvim/lsp/providers/sumneko_lua.lua b/lua/lvim/lsp/providers/sumneko_lua.lua index 6cd78157..ef159e1c 100644 --- a/lua/lvim/lsp/providers/sumneko_lua.lua +++ b/lua/lvim/lsp/providers/sumneko_lua.lua @@ -1,32 +1,53 @@ -local dev_opts = { +local default_workspace = { library = { - vimruntime = true, -- runtime path - types = true, -- full signature, docs and completion of vim.api, vim.treesitter, vim.lsp and others - -- plugins = true, -- installed opt or start plugins in packpath - -- you can also specify the list of plugins to make available as a workspace library - plugins = { "plenary.nvim" }, + vim.fn.expand "$VIMRUNTIME", + get_lvim_base_dir(), + require("lua-dev.sumneko").types(), }, - override = nil, -- function(root_dir, options) end, + + maxPreload = 1000, + preloadFileSize = 10000, } -local lua_dev_loaded, lua_dev = pcall(require, "lua-dev") -if lua_dev_loaded then - lua_dev.setup(dev_opts) +local add_packages_to_workspace = function(packages, config) + -- config.settings.Lua = config.settings.Lua or { workspace = default_workspace } + local runtimedirs = vim.api.nvim__get_runtime({ "lua" }, true, { is_lua = true }) + local workspace = config.settings.Lua.workspace + for _, v in pairs(runtimedirs) do + for _, pack in ipairs(packages) do + if v:match(pack) and not vim.tbl_contains(workspace.library, v) then + table.insert(workspace.library, v) + end + end + end end +local lspconfig = require "lspconfig" + +local make_on_new_config = function(on_new_config, _) + return lspconfig.util.add_hook_before(on_new_config, function(new_config, _) + local server_name = new_config.name + + if server_name ~= "sumneko_lua" then + return + end + local plugins = { "plenary.nvim", "telescope.nvim", "nvim-treesitter", "LuaSnip" } + add_packages_to_workspace(plugins, new_config) + end) +end + +lspconfig.util.default_config = vim.tbl_extend("force", lspconfig.util.default_config, { + on_new_config = make_on_new_config(lspconfig.util.default_config.on_new_config), +}) + local opts = { settings = { Lua = { + telemetry = { enable = false }, diagnostics = { globals = { "vim", "lvim", "packer_plugins" }, }, - workspace = { - library = { - [require("lvim.utils").join_paths(get_runtime_dir(), "lvim", "lua")] = true, - }, - maxPreload = 100000, - preloadFileSize = 10000, - }, + workspace = default_workspace, }, }, } -- cgit v1.2.3 From 352147158bb696e4b8fcb236d2cb477955b26dcf Mon Sep 17 00:00:00 2001 From: Christian Chiarulli Date: Mon, 19 Sep 2022 13:12:52 -0400 Subject: feat(document highlight): use illuminate rather than autocommand to avoid flashing (#3029) --- lua/lvim/lsp/handlers.lua | 1 - 1 file changed, 1 deletion(-) (limited to 'lua/lvim/lsp') diff --git a/lua/lvim/lsp/handlers.lua b/lua/lvim/lsp/handlers.lua index 84f2ba5f..45b1989d 100644 --- a/lua/lvim/lsp/handlers.lua +++ b/lua/lvim/lsp/handlers.lua @@ -12,7 +12,6 @@ function M.setup() float = lvim.lsp.diagnostics.float, } vim.diagnostic.config(config) - vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, lvim.lsp.float) vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, lvim.lsp.float) end -- cgit v1.2.3 From f11909b5649f6169fe48b61a40def4924754c38e Mon Sep 17 00:00:00 2001 From: Christian Chiarulli Date: Mon, 19 Sep 2022 22:14:32 -0400 Subject: feat: breadcrumbs (#3043) --- lua/lvim/lsp/init.lua | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'lua/lvim/lsp') diff --git a/lua/lvim/lsp/init.lua b/lua/lvim/lsp/init.lua index 0b361972..ac3f6925 100644 --- a/lua/lvim/lsp/init.lua +++ b/lua/lvim/lsp/init.lua @@ -60,6 +60,15 @@ 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) @@ -74,6 +83,7 @@ function M.common_on_attach(client, bufnr) end add_lsp_buffer_keybindings(bufnr) add_lsp_buffer_options(bufnr) + attach_navic(client, bufnr) end function M.get_common_opts() -- cgit v1.2.3 From 518b1d4167162a54a6e76784038d30191613b76d Mon Sep 17 00:00:00 2001 From: Abouzar Parvan Date: Tue, 20 Sep 2022 14:11:58 +0430 Subject: 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 <59826753+kylo252@users.noreply.github.com> --- lua/lvim/lsp/config.lua | 2 +- lua/lvim/lsp/handlers.lua | 3 +++ lua/lvim/lsp/init.lua | 11 +---------- lua/lvim/lsp/utils.lua | 18 ++++++++++++++++++ 4 files changed, 23 insertions(+), 11 deletions(-) (limited to 'lua/lvim/lsp') 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" -- cgit v1.2.3 From d37fdc5cf245e0f444665d7f031681dfc520f97c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 27 Sep 2022 17:14:19 +0330 Subject: chore: bump plugins version (#2988) * chore: bump plugins version * chore(plugins): update * chore(plugins): ignore solc Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Abouzar Parvan --- lua/lvim/lsp/config.lua | 1 + 1 file changed, 1 insertion(+) (limited to 'lua/lvim/lsp') diff --git a/lua/lvim/lsp/config.lua b/lua/lvim/lsp/config.lua index d842f099..d6f970e8 100644 --- a/lua/lvim/lsp/config.lua +++ b/lua/lvim/lsp/config.lua @@ -22,6 +22,7 @@ local skipped_servers = { "reason_ls", "scry", "solang", + "solc", "solidity_ls", "sorbet", "sourcekit", -- cgit v1.2.3 From f4032cc43e1486a95a7bf727f7236b7602f92ce5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Rodr=C3=ADguez=20Rivero?= Date: Wed, 28 Sep 2022 19:54:12 +0200 Subject: chore(lsp): give null-ls setup default values (#3093) --- lua/lvim/lsp/config.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lua/lvim/lsp') diff --git a/lua/lvim/lsp/config.lua b/lua/lvim/lsp/config.lua index d6f970e8..f98a8851 100644 --- a/lua/lvim/lsp/config.lua +++ b/lua/lvim/lsp/config.lua @@ -133,7 +133,9 @@ return { }, }, null_ls = { - setup = {}, + setup = { + debug = false, + }, config = {}, }, ---@deprecated use lvim.lsp.automatic_configuration.skipped_servers instead -- cgit v1.2.3 From 1c03ac80529d90c7a824a581172b6e41e6ae237b Mon Sep 17 00:00:00 2001 From: Christian Chiarulli Date: Mon, 3 Oct 2022 00:56:23 +0000 Subject: feat: reload and lir color update (#3123) --- lua/lvim/lsp/providers/sumneko_lua.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'lua/lvim/lsp') diff --git a/lua/lvim/lsp/providers/sumneko_lua.lua b/lua/lvim/lsp/providers/sumneko_lua.lua index ef159e1c..948f1fd9 100644 --- a/lua/lvim/lsp/providers/sumneko_lua.lua +++ b/lua/lvim/lsp/providers/sumneko_lua.lua @@ -44,8 +44,14 @@ local opts = { settings = { Lua = { telemetry = { enable = false }, + runtime = { + version = "LuaJIT", + special = { + reload = "require", + }, + }, diagnostics = { - globals = { "vim", "lvim", "packer_plugins" }, + globals = { "vim", "lvim", "packer_plugins", "reload" }, }, workspace = default_workspace, }, -- cgit v1.2.3 From 6a72ad281e598e445d37aaa87a9ef293d974bc40 Mon Sep 17 00:00:00 2001 From: chaesngmin Date: Mon, 3 Oct 2022 10:19:59 +0900 Subject: Fix: correct typos (#3117) --- lua/lvim/lsp/utils.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'lua/lvim/lsp') diff --git a/lua/lvim/lsp/utils.lua b/lua/lvim/lsp/utils.lua index c2ffe3fa..53571f20 100644 --- a/lua/lvim/lsp/utils.lua +++ b/lua/lvim/lsp/utils.lua @@ -120,7 +120,7 @@ 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 + vim.g.navic_silence = false -- can be set to true to suppress 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) @@ -167,9 +167,9 @@ function M.format_filter(client) local n = require "null-ls" local s = require "null-ls.sources" local method = n.methods.FORMATTING - local avalable_formatters = s.get_available(filetype, method) + local available_formatters = s.get_available(filetype, method) - if #avalable_formatters > 0 then + if #available_formatters > 0 then return client.name == "null-ls" elseif client.supports_method "textDocument/formatting" then return true -- cgit v1.2.3 From 8767a17b5e6087153494a5cd30e5ae0c5165c9af Mon Sep 17 00:00:00 2001 From: Philippe Richard Date: Sun, 2 Oct 2022 23:48:23 -0400 Subject: feat: move icons to a single icons file (#3115) --- lua/lvim/lsp/config.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'lua/lvim/lsp') diff --git a/lua/lvim/lsp/config.lua b/lua/lvim/lsp/config.lua index f98a8851..b1a45d5e 100644 --- a/lua/lvim/lsp/config.lua +++ b/lua/lvim/lsp/config.lua @@ -47,10 +47,10 @@ return { signs = { active = true, values = { - { name = "DiagnosticSignError", text = "" }, - { name = "DiagnosticSignWarn", text = "" }, - { name = "DiagnosticSignHint", text = "" }, - { name = "DiagnosticSignInfo", text = "" }, + { name = "DiagnosticSignError", text = lvim.icons.diagnostics.Error }, + { name = "DiagnosticSignWarn", text = lvim.icons.diagnostics.Warning }, + { name = "DiagnosticSignHint", text = lvim.icons.diagnostics.Hint }, + { name = "DiagnosticSignInfo", text = lvim.icons.diagnostics.Info }, }, }, virtual_text = true, -- cgit v1.2.3 From 9def60f1dd09ac2244672b8570092229977b43b4 Mon Sep 17 00:00:00 2001 From: kylo252 <59826753+kylo252@users.noreply.github.com> Date: Thu, 6 Oct 2022 08:55:06 +0200 Subject: feat: lock new installations to nvim 0.8+ (#3111) --- lua/lvim/lsp/utils.lua | 57 ++++++-------------------------------------------- 1 file changed, 6 insertions(+), 51 deletions(-) (limited to 'lua/lvim/lsp') diff --git a/lua/lvim/lsp/utils.lua b/lua/lvim/lsp/utils.lua index 53571f20..44e4f5f7 100644 --- a/lua/lvim/lsp/utils.lua +++ b/lua/lvim/lsp/utils.lua @@ -23,25 +23,14 @@ function M.get_active_clients_by_ft(filetype) end function M.get_client_capabilities(client_id) - local client - if not client_id then - local buf_clients = vim.lsp.buf_get_clients() - for _, buf_client in pairs(buf_clients) do - if buf_client.name ~= "null-ls" then - client = buf_client - break - end - end - else - client = vim.lsp.get_client_by_id(tonumber(client_id)) - end + local client = vim.lsp.get_client_by_id(tonumber(client_id)) if not client then - error "Unable to determine client_id" + Log:warn("Unable to determine client from client_id: " .. client_id) return end local enabled_caps = {} - for capability, status in pairs(client.server_capabilities or client.resolved_capabilities) do + for capability, status in pairs(client.server_capabilities) do if status == true then table.insert(enabled_caps, capability) end @@ -178,47 +167,13 @@ function M.format_filter(client) end end ----Provide vim.lsp.buf.format for nvim <0.8 ----@param opts table +---Simple wrapper for vim.lsp.buf.format() to provide defaults +---@param opts table|nil function M.format(opts) opts = opts or {} opts.filter = opts.filter or M.format_filter - if vim.lsp.buf.format then - return vim.lsp.buf.format(opts) - end - - local bufnr = opts.bufnr or vim.api.nvim_get_current_buf() - - ---@type table|nil - local clients = vim.lsp.get_active_clients { - id = opts.id, - bufnr = bufnr, - name = opts.name, - } - - if opts.filter then - clients = vim.tbl_filter(opts.filter, clients) - end - - clients = vim.tbl_filter(function(client) - return client.supports_method "textDocument/formatting" - end, clients) - - if #clients == 0 then - vim.notify_once "[LSP] Format request failed, no matching language servers." - end - - local timeout_ms = opts.timeout_ms or 1000 - for _, client in pairs(clients) do - local params = vim.lsp.util.make_formatting_params(opts.formatting_options) - local result, err = client.request_sync("textDocument/formatting", params, timeout_ms, bufnr) - if result and result.result then - vim.lsp.util.apply_text_edits(result.result, bufnr, client.offset_encoding) - elseif err then - vim.notify(string.format("[LSP][%s] %s", client.name, err), vim.log.levels.WARN) - end - end + return vim.lsp.buf.format(opts) end return M -- cgit v1.2.3 From 5a4c8e3eecbfb3ef785c2eb5d2010f50b9b5d5df Mon Sep 17 00:00:00 2001 From: opalmay <65673442+opalmay@users.noreply.github.com> Date: Thu, 6 Oct 2022 17:11:37 +0300 Subject: fix: always use border for lsp hover (#3160) --- lua/lvim/lsp/handlers.lua | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'lua/lvim/lsp') diff --git a/lua/lvim/lsp/handlers.lua b/lua/lvim/lsp/handlers.lua index 81342885..84f2ba5f 100644 --- a/lua/lvim/lsp/handlers.lua +++ b/lua/lvim/lsp/handlers.lua @@ -12,9 +12,7 @@ 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/hover"] = vim.lsp.with(vim.lsp.handlers.hover, lvim.lsp.float) vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, lvim.lsp.float) end -- cgit v1.2.3 From 91dadd46a9d3c93b936ae79912e28d250f883e60 Mon Sep 17 00:00:00 2001 From: Abouzar Parvan Date: Wed, 12 Oct 2022 16:16:53 +0330 Subject: fix(lua-dev): make sure we are loading the correct types (#3208) --- lua/lvim/lsp/providers/sumneko_lua.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lua/lvim/lsp') diff --git a/lua/lvim/lsp/providers/sumneko_lua.lua b/lua/lvim/lsp/providers/sumneko_lua.lua index 948f1fd9..466c9151 100644 --- a/lua/lvim/lsp/providers/sumneko_lua.lua +++ b/lua/lvim/lsp/providers/sumneko_lua.lua @@ -2,10 +2,10 @@ local default_workspace = { library = { vim.fn.expand "$VIMRUNTIME", get_lvim_base_dir(), - require("lua-dev.sumneko").types(), + require("lua-dev.config").types(), }, - maxPreload = 1000, + maxPreload = 5000, preloadFileSize = 10000, } -- cgit v1.2.3 From 91ac8a0bb0eefc31815371454bcf59aa72d0acc3 Mon Sep 17 00:00:00 2001 From: Abouzar Parvan Date: Sat, 15 Oct 2022 10:21:24 +0330 Subject: fix(luadev): this plugin has been renamed (#3235) --- lua/lvim/lsp/providers/sumneko_lua.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lua/lvim/lsp') diff --git a/lua/lvim/lsp/providers/sumneko_lua.lua b/lua/lvim/lsp/providers/sumneko_lua.lua index 466c9151..2caa23b6 100644 --- a/lua/lvim/lsp/providers/sumneko_lua.lua +++ b/lua/lvim/lsp/providers/sumneko_lua.lua @@ -2,7 +2,7 @@ local default_workspace = { library = { vim.fn.expand "$VIMRUNTIME", get_lvim_base_dir(), - require("lua-dev.config").types(), + require("neodev.config").types(), }, maxPreload = 5000, -- cgit v1.2.3 From a54312b7693de1862238a1a097009c5f952fcb12 Mon Sep 17 00:00:00 2001 From: Abouzar Parvan Date: Sat, 15 Oct 2022 12:54:49 +0330 Subject: fix(nvim-cmp-lsp): update_capabilities has been deprecated (#3245) --- lua/lvim/lsp/init.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'lua/lvim/lsp') diff --git a/lua/lvim/lsp/init.lua b/lua/lvim/lsp/init.lua index 1072329b..c8a2b22f 100644 --- a/lua/lvim/lsp/init.lua +++ b/lua/lvim/lsp/init.lua @@ -25,6 +25,11 @@ local function add_lsp_buffer_keybindings(bufnr) end function M.common_capabilities() + local status_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp") + if status_ok then + return cmp_nvim_lsp.default_capabilities() + end + local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities.textDocument.completion.completionItem.snippetSupport = true capabilities.textDocument.completion.completionItem.resolveSupport = { @@ -35,11 +40,6 @@ function M.common_capabilities() }, } - local status_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp") - if status_ok then - capabilities = cmp_nvim_lsp.update_capabilities(capabilities) - end - return capabilities end -- cgit v1.2.3 From 48d1c38fa88dbfbaa35e81560cf0fa7d8793b195 Mon Sep 17 00:00:00 2001 From: kylo252 <59826753+kylo252@users.noreply.github.com> Date: Sat, 15 Oct 2022 18:32:11 +0200 Subject: chore(plugins): bump version (#3248) * ci: update workflows * chore(plugins): bump version * chore: update depdecated settings for comment.nvim * chore(lsp): update skiplist * fixup!: take 2 for comment.nvim --- lua/lvim/lsp/config.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'lua/lvim/lsp') diff --git a/lua/lvim/lsp/config.lua b/lua/lvim/lsp/config.lua index b1a45d5e..358e83f8 100644 --- a/lua/lvim/lsp/config.lua +++ b/lua/lvim/lsp/config.lua @@ -10,6 +10,7 @@ local skipped_servers = { "eslint", "eslintls", "golangci_lint_ls", + "gradle_ls", "graphql", "jedi_language_server", "ltex", @@ -18,8 +19,9 @@ local skipped_servers = { "psalm", "pylsp", "quick_lint_js", - "rome", "reason_ls", + "rome", + "ruby_ls", "scry", "solang", "solc", @@ -31,8 +33,8 @@ local skipped_servers = { "sqlls", "sqls", "stylelint_lsp", - "tflint", "svlangserver", + "tflint", "verible", "vuels", } -- cgit v1.2.3