nvim/lua/plugins/lsp/ui.lua

54 lines
1.7 KiB
Lua

local M = {}
function M.setup()
-- 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
-- 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)
-- 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