From 89cb90a6aaa17f8d481bf5ebda443e5a8f9d4c6c Mon Sep 17 00:00:00 2001 From: ViViDboarder Date: Tue, 7 Dec 2021 16:07:57 -0800 Subject: [PATCH] Update lsp config for lspsaga --- neovim/lua/plugins.lua | 6 +++++- neovim/lua/plugins/completion.lua | 1 - neovim/lua/plugins/lsp.lua | 32 +++++++++++++++++++++++++++++-- 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/neovim/lua/plugins.lua b/neovim/lua/plugins.lua index 91f12e2..27e8dca 100644 --- a/neovim/lua/plugins.lua +++ b/neovim/lua/plugins.lua @@ -103,11 +103,15 @@ return require('packer').startup(function() -- LSP use { "neovim/nvim-lspconfig", - config = function() require("utils").require_with_local("plugins.lsp") end, + config = function() require("plugins.lsp").config_lsp() end, + requires = { + "hrsh7th/cmp-nvim-lsp", + }, } use { "glepnir/lspsaga.nvim", requires = "neovim/nvim-lspconfig", + config = function() require("plugins.lsp").config_lsp_saga() end, } --[[ use { diff --git a/neovim/lua/plugins/completion.lua b/neovim/lua/plugins/completion.lua index 1687891..09dc7e1 100644 --- a/neovim/lua/plugins/completion.lua +++ b/neovim/lua/plugins/completion.lua @@ -1,7 +1,6 @@ local M = {} function M.config_cmp() - vim.o.completeopt = "menuone,noinsert,noselect" local cmp = require("cmp") cmp.setup { completion = { diff --git a/neovim/lua/plugins/lsp.lua b/neovim/lua/plugins/lsp.lua index ccba2fe..71d440f 100644 --- a/neovim/lua/plugins/lsp.lua +++ b/neovim/lua/plugins/lsp.lua @@ -1,4 +1,5 @@ -- luacheck: globals packer_plugins +local M = {} local utils = require("utils") local function default_attach(client, bufnr) @@ -66,9 +67,21 @@ local function default_attach(client, bufnr) buf_set_keymap("n", "t", "Telescope lsp_document_symbols", opts) buf_set_keymap("n", "ft", "Telescope lsp_dynamic_workspace_symbols", opts) end + + -- Use LspSaga features, if possible + if packer_plugins["lspsaga.nvim"] then + buf_set_keymap('n', 'K', "lua require('lspsaga.hover').render_hover_doc()", opts) + buf_set_keymap('n', 'rn', "lua require('lspsaga.rename').rename()", opts) + buf_set_keymap('n', 'e', "lua require('lspsaga.diagnostic').show_line_diagnostics()", opts) + buf_set_keymap('n', '[d', "lua require('lspsaga.diagnostic').lsp_jump_diagnostic_prev()", opts) + buf_set_keymap('n', ']d', "lua require('lspsaga.diagnostic').lsp_jump_diagnostic_next()", opts) + buf_set_keymap('n', '', "lua require('lspsaga.signaturehelp').signature_help()", opts) + -- Code actions + buf_set_keymap('n', 'ca', "lua require('lspsaga.codeaction').code_action()", opts) + end end -local function config_lsp() +function M.config_lsp() local language_servers = { "bashls", "gopls", @@ -105,4 +118,19 @@ local function config_lsp() end end -config_lsp() +function M.config_lsp_saga() + local saga = require("lspsaga") + saga.init_lsp_saga{ + error_sign = "🔥", + warn_sign ="⚠️", + hint_sign = "🤔", + dianostic_header_icon = " 💬 ", + code_action_icon = "💡", + code_action_prompt = { + enable = false, + sign = false, + }, + } +end + +return M