feat(#1826): allow using config from vim.diagnostic for icons + severity
This commit is contained in:
parent
f0e9951778
commit
df00d38afb
@ -1329,6 +1329,10 @@ Icons for diagnostic severity.
|
||||
error = ""
|
||||
}
|
||||
<
|
||||
*nvim-tree.diagnostics.diagnostic_opts*
|
||||
|vim.diagnostic.Opts| overrides |nvim-tree.diagnostics.severity| and
|
||||
|nvim-tree.diagnostics.icons|
|
||||
Type: `boolean`, Default: `false`
|
||||
==============================================================================
|
||||
5.9 OPTS: MODIFIED *nvim-tree-opts-modified*
|
||||
|
||||
|
||||
@ -420,6 +420,7 @@ local DEFAULT_OPTS = { -- BEGIN_DEFAULT_OPTS
|
||||
warning = "",
|
||||
error = "",
|
||||
},
|
||||
diagnostic_opts = false,
|
||||
},
|
||||
modified = {
|
||||
enable = false,
|
||||
|
||||
@ -231,7 +231,10 @@ end
|
||||
function M.setup(opts)
|
||||
M.enable = opts.diagnostics.enable
|
||||
M.debounce_delay = opts.diagnostics.debounce_delay
|
||||
M.severity = opts.diagnostics.severity
|
||||
M.severity = opts.diagnostics.diagnostic_opts and {
|
||||
min = vim.diagnostic.severity.HINT,
|
||||
max = vim.diagnostic.severity.ERROR
|
||||
} or opts.diagnostics.severity
|
||||
|
||||
if M.enable then
|
||||
log.line("diagnostics", "setup")
|
||||
|
||||
@ -41,17 +41,29 @@ local DiagnosticsDecorator = Decorator:extend()
|
||||
---@protected
|
||||
---@param args DecoratorArgs
|
||||
function DiagnosticsDecorator:new(args)
|
||||
self.explorer = args.explorer
|
||||
self.explorer = args.explorer
|
||||
|
||||
self.enabled = true
|
||||
self.highlight_range = self.explorer.opts.renderer.highlight_diagnostics or "none"
|
||||
self.icon_placement = self.explorer.opts.renderer.icons.diagnostics_placement or "none"
|
||||
self.enabled = true
|
||||
self.highlight_range = self.explorer.opts.renderer.highlight_diagnostics or "none"
|
||||
self.icon_placement = self.explorer.opts.renderer.icons.diagnostics_placement or "none"
|
||||
|
||||
local vim_diagnostic_icons = {}
|
||||
|
||||
if self.explorer.opts.diagnostics.diagnostic_opts then
|
||||
local vim_diagnostic_config = vim.diagnostic.config() or {}
|
||||
local signs = vim_diagnostic_config.signs or {}
|
||||
if type(signs) == "function" then
|
||||
signs = signs(0, 0)
|
||||
end
|
||||
|
||||
vim_diagnostic_icons = (type(signs) == "table" and signs.text) or {}
|
||||
end
|
||||
|
||||
if self.explorer.opts.renderer.icons.show.diagnostics then
|
||||
self.diag_icons = {}
|
||||
for name, sev in pairs(ICON_KEYS) do
|
||||
self.diag_icons[sev] = {
|
||||
str = self.explorer.opts.diagnostics.icons[name],
|
||||
str = vim_diagnostic_icons[sev] or self.explorer.opts.diagnostics.icons[name],
|
||||
hl = { HG_ICON[sev] },
|
||||
}
|
||||
self:define_sign(self.diag_icons[sev])
|
||||
|
||||
Loading…
Reference in New Issue
Block a user