diff --git a/home/user/.config/nvim/lua/plugins/lsp_manager.lua b/home/user/.config/nvim/lua/plugins/lsp_manager.lua index 6aa47b6..6152a87 100644 --- a/home/user/.config/nvim/lua/plugins/lsp_manager.lua +++ b/home/user/.config/nvim/lua/plugins/lsp_manager.lua @@ -23,7 +23,7 @@ local function lsp_buf_rename(client_name) vim.lsp.buf.rename(nil, { name = client_name }) end -function lsp_buf_rename_use_any(fallback) +function LSP_BUF_RENAME_USE_ANY(fallback) local client_names = get_lsp_client_names(lsp_have_feature.rename) for _, client_name in ipairs(client_names) do lsp_buf_rename(client_name) @@ -35,67 +35,46 @@ function lsp_buf_rename_use_any(fallback) end -local on_attach = function(_, bufnr) - local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end - local function buf_set_option(...) vim.api.nvim_set_option_value(...) end - - -- Enable completion triggered by - buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc', {}) - - -- Mappings. - local opts = { noremap=true, silent=true } - - local function desc(description) - return vim.tbl_extend("keep", opts, {desc = description}) - end - - -- Sections - buf_set_keymap('n', 'w', '', {desc = "Workspace manage"}) - - -- See `:help vim.lsp.*` for documentation on any of the below functions - buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', desc("Go declaration")) - buf_set_keymap('n', 'gd', 'Telescope lsp_definitions', desc("Go definition")) - buf_set_keymap('n', 'gi', 'Telescope lsp_implementations', desc("Go implementation")) - buf_set_keymap('n', 'gr', 'Telescope lsp_references', desc("Go references")) - buf_set_keymap('n', 'gt', 'Telescope lsp_type_definitions', desc("Go type references")) - buf_set_keymap('n', 'k', 'lua vim.lsp.buf.hover()', desc("Show help")) - buf_set_keymap('n', 'K', 'lua vim.lsp.buf.signature_help()', desc("Show signature")) - buf_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', desc("Add workspace folder")) - buf_set_keymap('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', desc("Remove workspace folder")) - buf_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', desc("Show workspace folders")) - buf_set_keymap('n', 'D', 'lua vim.lsp.buf.type_definition()', desc("Show type")) - buf_set_keymap('n', 'rn', "lua lsp_buf_rename_use_any()", desc("Rename object")) - buf_set_keymap('n', 'e', 'lua vim.diagnostic.open_float()', desc("Show diagnostic")) - buf_set_keymap('n', 'p', 'lua vim.diagnostic.goto_prev()', desc("Previous problem")) - buf_set_keymap('n', 'n', 'lua vim.diagnostic.goto_next()', desc("Next problem")) - buf_set_keymap('n', 'q', 'lua vim.diagnostic.setloclist()', opts) - buf_set_keymap('n', 'f', 'lua vim.lsp.buf.format()', desc("Format file")) -end - return { { - 'williamboman/mason.nvim', + 'mason-org/mason.nvim', dependencies = { 'neovim/nvim-lspconfig', - "williamboman/mason-lspconfig.nvim", + "mason-org/mason-lspconfig.nvim", 'nvim-telescope/telescope.nvim', }, config = function() + -- Mappings. + local opts = { noremap=true, silent=true } + + local function desc(description) + return vim.tbl_extend("keep", opts, {desc = description}) + end + + -- Sections + vim.api.nvim_set_keymap('n', 'w', '', {desc = "Workspace manage"}) + + -- See `:help vim.lsp.*` for documentation on any of the below functions + vim.api.nvim_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', desc("Go declaration")) + vim.api.nvim_set_keymap('n', 'gd', 'Telescope lsp_definitions', desc("Go definition")) + vim.api.nvim_set_keymap('n', 'gi', 'Telescope lsp_implementations', desc("Go implementation")) + vim.api.nvim_set_keymap('n', 'gr', 'Telescope lsp_references', desc("Go references")) + vim.api.nvim_set_keymap('n', 'gt', 'Telescope lsp_type_definitions', desc("Go type references")) + vim.api.nvim_set_keymap('n', 'k', 'lua vim.lsp.buf.hover()', desc("Show help")) + vim.api.nvim_set_keymap('n', 'K', 'lua vim.lsp.buf.signature_help()', desc("Show signature")) + vim.api.nvim_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', desc("Add workspace folder")) + vim.api.nvim_set_keymap('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', desc("Remove workspace folder")) + vim.api.nvim_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', desc("Show workspace folders")) + vim.api.nvim_set_keymap('n', 'D', 'lua vim.lsp.buf.type_definition()', desc("Show type")) + vim.api.nvim_set_keymap('n', 'rn', "lua LSP_BUF_RENAME_USE_ANY()", desc("Rename object")) + vim.api.nvim_set_keymap('n', 'e', 'lua vim.diagnostic.open_float()', desc("Show diagnostic")) + vim.api.nvim_set_keymap('n', 'p', 'lua vim.diagnostic.goto_prev()', desc("Previous problem")) + vim.api.nvim_set_keymap('n', 'n', 'lua vim.diagnostic.goto_next()', desc("Next problem")) + vim.api.nvim_set_keymap('n', 'q', 'lua vim.diagnostic.setloclist()', opts) + vim.api.nvim_set_keymap('n', 'f', 'lua vim.lsp.buf.format()', desc("Format file")) + require("mason").setup() - local mason_lspconfig = require("mason-lspconfig") - - mason_lspconfig.setup() - - mason_lspconfig.setup_handlers({ - function (server_name) - require("lspconfig")[server_name].setup({ - on_attach = on_attach, - flags = { - debounce_text_changes = 150, - } - }) - end - }) + require("mason-lspconfig").setup() end, }, }