41 lines
1.1 KiB
Lua
41 lines
1.1 KiB
Lua
|
vim.diagnostic.config({
|
||
|
virtual_text = false,
|
||
|
signs = true,
|
||
|
underline = false,
|
||
|
update_in_insert = false,
|
||
|
severity_sort = true,
|
||
|
float = {
|
||
|
source = "always", -- Or "if_many"
|
||
|
},
|
||
|
})
|
||
|
|
||
|
vim.cmd [[
|
||
|
augroup diagnostic_on_hover
|
||
|
autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})
|
||
|
augroup END
|
||
|
]]
|
||
|
|
||
|
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
|
||
|
|
||
|
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
|