huge updates
This commit is contained in:
1 parent
a2b0f73e33
commit
b5e4ef3bff
54 files changed
+931
-812
No files matched your search
@@ -0,0 +1,73 @@
|
||||
local fn = vim.fn
|
||||
local api = vim.api
|
||||
local ns_id = vim.api.nvim_create_namespace('md-codeblaock')
|
||||
local M = {}
|
||||
|
||||
vim.cmd([[
|
||||
hi DError guibg=#2F1D29 guifg=#EB4838
|
||||
hi DBError guibg=#2F1D29
|
||||
hi DWarn guibg=#322425 guifg=#FA9535
|
||||
hi DBWarn guibg=#322425
|
||||
]])
|
||||
|
||||
function get_hl_group_bg_color(hl_group)
|
||||
local hl_info = vim.api.nvim_get_hl_by_name(hl_group, true)
|
||||
if hl_info and hl_info.background then
|
||||
local bg_color = string.format('#%06x', hl_info.background)
|
||||
return bg_color
|
||||
else
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
function hl_line(bufnr, line, hl, vtext)
|
||||
local text = string.rep(' ', fn.winwidth(fn.bufwinnr(bufnr)))
|
||||
local opts = {
|
||||
virt_text = { { ' ' .. vtext .. text, hl.vig } },
|
||||
hl_eol = true,
|
||||
virt_text_pos = 'overlay',
|
||||
}
|
||||
api.nvim_buf_add_highlight(bufnr, ns_id, hl.gui, line, 0, -1)
|
||||
pcall(api.nvim_buf_set_extmark, bufnr, ns_id, line, fn.len(fn.getline(line + 1)), opts)
|
||||
end
|
||||
|
||||
function show_diag(bufnr, level, message, lnum)
|
||||
local hl = {
|
||||
[1] = {
|
||||
gui = 'DBError',
|
||||
vig = 'DError',
|
||||
},
|
||||
[2] = {
|
||||
gui = 'DBWarn',
|
||||
vig = 'DWarn',
|
||||
},
|
||||
[3] = {
|
||||
gui = 'DBWarn',
|
||||
vig = 'DWarn',
|
||||
},
|
||||
[4] = {
|
||||
gui = 'DBWarn',
|
||||
vig = 'DWarn',
|
||||
},
|
||||
[5] = {
|
||||
gui = 'DBWarn',
|
||||
vig = 'DWarn',
|
||||
},
|
||||
}
|
||||
hl_line(bufnr, lnum, hl[level], message)
|
||||
end
|
||||
|
||||
vim.lsp.handlers['textDocument/publishDiagnostics'] = function(_, result, ctx, _)
|
||||
if not result.diagnostics then
|
||||
return
|
||||
end
|
||||
local bufnr = vim.uri_to_bufnr(result.uri)
|
||||
vim.api.nvim_buf_clear_namespace(bufnr, ns_id, 0, -1)
|
||||
for _, diagnostic in ipairs(result.diagnostics) do
|
||||
local line = diagnostic.range.start.line
|
||||
local severity = diagnostic.severity
|
||||
local message = diagnostic.message
|
||||
show_diag(bufnr, severity, message, line)
|
||||
end
|
||||
end
|
||||
return M
|
||||
Reference in new issue
Block a user