diff options
author | listout <listout@protonmail.com> | 2022-09-10 13:53:17 +0530 |
---|---|---|
committer | listout <listout@protonmail.com> | 2022-09-10 13:53:17 +0530 |
commit | 6d513494ff8ca3b3611357fc36dcdd7d2235ff54 (patch) | |
tree | 35cbf7154bbc3901ab465dcf503c08bcd2072890 /lua/plugins/lsp-config.lua | |
parent | a5cd2ad2a3b9b36f92c148cc72280c48dea8c894 (diff) |
nvim: lsp-config: floating window custom border
Signed-off-by: listout <listout@protonmail.com>
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 = { |