54 lines
1.7 KiB
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
|