summaryrefslogtreecommitdiff
path: root/lua/plugins/lsp-config.lua
diff options
context:
space:
mode:
authorlistout <listout@protonmail.com>2022-09-10 13:53:17 +0530
committerlistout <listout@protonmail.com>2022-09-10 13:53:17 +0530
commit6d513494ff8ca3b3611357fc36dcdd7d2235ff54 (patch)
tree35cbf7154bbc3901ab465dcf503c08bcd2072890 /lua/plugins/lsp-config.lua
parenta5cd2ad2a3b9b36f92c148cc72280c48dea8c894 (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.lua41
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 = {