diff options
Diffstat (limited to 'lua/plugins/lsp-config.lua')
-rw-r--r-- | lua/plugins/lsp-config.lua | 41 |
1 files changed, 35 insertions, 6 deletions
diff --git a/lua/plugins/lsp-config.lua b/lua/plugins/lsp-config.lua index db82f91..c4dce46 100644 --- a/lua/plugins/lsp-config.lua +++ b/lua/plugins/lsp-config.lua @@ -1,5 +1,34 @@ -- Add additional capabilities supported by nvim-cmp local M = {} + +vim.cmd [[autocmd! ColorScheme * highlight NormalFloat guibg=#1f2335]] +vim.cmd [[autocmd! ColorScheme * highlight FloatBorder guifg=white guibg=#1f2335]] + +local border = { + {"🭽", "FloatBorder"}, + {"▔", "FloatBorder"}, + {"🭾", "FloatBorder"}, + {"▕", "FloatBorder"}, + {"🭿", "FloatBorder"}, + {"▁", "FloatBorder"}, + {"🭼", "FloatBorder"}, + {"▏", "FloatBorder"}, +} + +-- LSP settings (for overriding per client) +local handlers = { + ["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {border = border}), + ["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, {border = border }), +} + +-- To instead override globally +local orig_util_open_floating_preview = vim.lsp.util.open_floating_preview +function vim.lsp.util.open_floating_preview(contents, syntax, opts, ...) + opts = opts or {} + opts.border = opts.border or border + return orig_util_open_floating_preview(contents, syntax, opts, ...) +end + local capabilities = vim.lsp.protocol.make_client_capabilities() M.capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities) @@ -10,10 +39,10 @@ vim.lsp.set_log_level(vim.log.levels.DEBUG) -- Mappings. -- See `:help vim.diagnostic.*` for documentation on any of the below functions local opts = { noremap=true, silent=true } -vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts) +vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, opts) vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) -vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, opts) +vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, opts) -- Use an on_attach function to only map the following keys -- after the language server attaches to the current buffer @@ -34,11 +63,11 @@ M.on_attach = function(client, bufnr) vim.keymap.set('n', '<space>wl', function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, bufopts) - vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts) - vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts) - vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts) + vim.keymap.set('n', '<leader>D', vim.lsp.buf.type_definition, bufopts) + vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, bufopts) + vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, bufopts) vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) - vim.keymap.set('n', '<space>f', vim.lsp.buf.formatting, bufopts) + vim.keymap.set('n', '<leader>f', vim.lsp.buf.formatting, bufopts) end M.lsp_flags = { |