nvim/lua/plugins/lsp/ui.lua

54 lines
1.4 KiB
Lua
Raw Normal View History

local M = {}
function M.setup()
2024-05-31 11:03:10 +02:00
-- Signs
local signs = { Error = '', Warn = '', Hint = '', Info = '' }
for type, icon in pairs(signs) do
local hl = 'DiagnosticSign' .. type
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl })
end
2024-05-31 11:03:10 +02:00
-- Floating window borders
local border = {
{ '', 'FloatBorder' },
{ '', 'FloatBorder' },
{ '', 'FloatBorder' },
{ '', 'FloatBorder' },
{ '', 'FloatBorder' },
{ '', 'FloatBorder' },
{ '', 'FloatBorder' },
{ '', 'FloatBorder' },
}
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
end
function M.on_attach(client, bufnr)
2024-05-31 11:03:10 +02:00
-- Highlight references
if client.server_capabilities.documentHighlightProvider then
vim.api.nvim_create_augroup('lsp_document_highlight', {
clear = false,
})
vim.api.nvim_clear_autocmds {
group = 'lsp_document_highlight',
buffer = bufnr,
}
vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, {
group = 'lsp_document_highlight',
buffer = bufnr,
callback = vim.lsp.buf.document_highlight,
})
vim.api.nvim_create_autocmd('CursorMoved', {
group = 'lsp_document_highlight',
buffer = bufnr,
callback = vim.lsp.buf.clear_references,
})
end
end
return M