From e6b3ac25dd275e387e6ef1a83b0952f09098ce67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Dudr?= Date: Tue, 10 Jan 2023 20:50:54 +0100 Subject: [PATCH] nvim: lsp --- .../nvim/lua/configs/packages/colors.lua | 9 ++++++ dot_config/nvim/lua/configs/packages/lsp.lua | 30 +++++++++++++------ .../lua/configs/packages/lsp_signature.lua | 8 +++++ .../nvim/lua/configs/packages/telescope.lua | 25 ++++++++++++---- 4 files changed, 58 insertions(+), 14 deletions(-) create mode 100644 dot_config/nvim/lua/configs/packages/lsp_signature.lua diff --git a/dot_config/nvim/lua/configs/packages/colors.lua b/dot_config/nvim/lua/configs/packages/colors.lua index d844d72..a1da951 100644 --- a/dot_config/nvim/lua/configs/packages/colors.lua +++ b/dot_config/nvim/lua/configs/packages/colors.lua @@ -234,6 +234,7 @@ function M.config() vim.api.nvim_set_hl(0, 'CmpItemAbbrMatch', { link = 'GruvboxAquaBold' }) vim.api.nvim_set_hl(0, 'CmpItemAbbrMatchFuzzy', { link = 'GruvboxAquaBold' }) + local tbg = vim.api.nvim_get_hl_by_name('GruvboxBg0', false) local bg = vim.api.nvim_get_hl_by_name('GruvboxBg0', true) local tfg = vim.api.nvim_get_hl_by_name('GruvboxGray', false) @@ -245,6 +246,14 @@ function M.config() ctermbg = tbg.foreground, underdotted = true }) + + + vim.api.nvim_set_hl(0, 'LspCodeLens', { + fg = fg.foreground, + ctermfg = tfg.foreground, + italic = true + }) + end }) diff --git a/dot_config/nvim/lua/configs/packages/lsp.lua b/dot_config/nvim/lua/configs/packages/lsp.lua index 2fd0b96..61e9eb7 100644 --- a/dot_config/nvim/lua/configs/packages/lsp.lua +++ b/dot_config/nvim/lua/configs/packages/lsp.lua @@ -5,10 +5,11 @@ local M = { 'b0o/schemastore.nvim', 'SmiteshP/nvim-navic', { 'j-hui/fidget.nvim', config = true }, + { 'ray-x/lsp_signature.nvim' }, }, - keys = { - {'li', 'LspInfo', desc = 'Lsp info' }, - {'ll', 'LspLog', desc = 'Lsp log' }, + keys = { + { 'li', 'LspInfo', desc = 'Lsp info' }, + { 'll', 'LspLog', desc = 'Lsp log' }, }, lazy = false } @@ -68,13 +69,24 @@ function M.config() vim.keymap.set('i', '', vim.lsp.buf.signature_help, mkOpts('LSP signature help')) end + if client.server_capabilities.codeLensProvider then + vim.api.nvim_create_autocmd( + { 'BufEnter', 'CursorHold', 'InsertLeave' }, { + callback = vim.lsp.codelens.refresh, + buffer = bufnr, + }) + vim.keymap.set('n', 'cl', vim.lsp.codelens.run, mkOpts('LSP Run code lens')) + end + vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, mkOpts('LSP type definition')) vim.keymap.set('n', 'rn', vim.lsp.buf.rename, mkOpts('LSP rename')) vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, mkOpts('LSP Code action')) vim.keymap.set('v', 'ca', vim.lsp.buf.code_action, mkOpts('LSP Code action')) - vim.keymap.set('n', 'gr', vim.lsp.buf.references, mkOpts('LSP references')) + -- vim.keymap.set('n', 'gr', vim.lsp.buf.references, mkOpts('LSP references')) + vim.keymap.set('n', 'gr', 'Trouble lsp_references', mkOpts('LSP references')) - vim.keymap.set('n', 'F', function() vim.lsp.buf.format({ async = true, filter = formatting_filter, }) end, opts) + vim.keymap.set('n', 'F', function() vim.lsp.buf.format({ async = true, filter = formatting_filter, }) end, + opts) if (formatting_filter(client)) then vim.api.nvim_buf_set_option(bufnr, 'formatexpr', 'v:lua.vim.lsp.formatexpr(#{timeout_ms:250})') end @@ -151,10 +163,10 @@ function M.config() local u = require('lspconfig.util') return u.search_ancestors(startpath, function(path) return not string.find(path, '/vendor/') and ( - u.path.exists(u.path.join(path, 'composer.json')) - or u.path.exists(u.path.join(path, 'sharedLibs')) - or u.path.exists(u.path.join(path, '.git')) - ) + u.path.exists(u.path.join(path, 'composer.json')) + or u.path.exists(u.path.join(path, 'sharedLibs')) + or u.path.exists(u.path.join(path, '.git')) + ) end) end } diff --git a/dot_config/nvim/lua/configs/packages/lsp_signature.lua b/dot_config/nvim/lua/configs/packages/lsp_signature.lua new file mode 100644 index 0000000..fcb64c3 --- /dev/null +++ b/dot_config/nvim/lua/configs/packages/lsp_signature.lua @@ -0,0 +1,8 @@ +return { + 'ray-x/lsp_signature.nvim', + lazy = true, + config = { + hint_prefix = '', + floating_window = false, + } +} diff --git a/dot_config/nvim/lua/configs/packages/telescope.lua b/dot_config/nvim/lua/configs/packages/telescope.lua index e844704..89b907e 100644 --- a/dot_config/nvim/lua/configs/packages/telescope.lua +++ b/dot_config/nvim/lua/configs/packages/telescope.lua @@ -9,21 +9,32 @@ local M = { build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' } }, + cmd = { 'Telescope' }, keys = { - {'b', [[Telescope buffers]], desc = 'Buffers'}, - {'ff', [[Telescope fd]], desc = 'Search file'}, - {'T', [[Telescope]], desc = 'Telescope'}, + { 'b', [[Telescope buffers]], desc = 'Buffers' }, + { 'ff', [[Telescope fd]], desc = 'Search file' }, + { 'T', [[Telescope]], desc = 'Telescope' }, } } function M.config() local telescope = require('telescope') + local actions = require('telescope.actions') + local layout_actions = require('telescope.actions.layout') telescope.setup { defaults = { preview = { hide_on_startup = true }, + mappings = { + i = { + [''] = layout_actions.toggle_preview, + }, + n = { + [''] = layout_actions.toggle_preview, + } + } }, pickers = { buffers = { @@ -32,8 +43,12 @@ function M.config() sort_mru = true, -- theme = "dropdown", mappings = { - i = { [''] = 'delete_buffer', }, - n = { [''] = 'delete_buffer', } + i = { + [''] = actions.delete_buffer, + }, + n = { + [''] = actions.delete_buffer, + } } } },