mirror of
https://github.com/neovim/neovim.git
synced 2025-10-26 12:27:24 +00:00
fix(diagnostic): fix option resolution in open_float (#16229)
This commit is contained in:
@@ -1154,6 +1154,17 @@ function M.open_float(bufnr, opts)
|
||||
error("Invalid value for option 'scope'")
|
||||
end
|
||||
|
||||
do
|
||||
-- Resolve options with user settings from vim.diagnostic.config
|
||||
-- Unlike the other decoration functions (e.g. set_virtual_text, set_signs, etc.) `open_float`
|
||||
-- does not have a dedicated table for configuration options; instead, the options are mixed in
|
||||
-- with its `opts` table which also includes "keyword" parameters. So we create a dedicated
|
||||
-- options table that inherits missing keys from the global configuration before resolving.
|
||||
local t = global_diagnostic_options.float
|
||||
local float_opts = vim.tbl_extend("keep", opts, type(t) == "table" and t or {})
|
||||
opts = get_resolved_options({ float = float_opts }, nil, bufnr).float
|
||||
end
|
||||
|
||||
local diagnostics = M.get(bufnr, opts)
|
||||
clamp_line_numbers(bufnr, diagnostics)
|
||||
|
||||
@@ -1184,17 +1195,6 @@ function M.open_float(bufnr, opts)
|
||||
end
|
||||
end
|
||||
|
||||
do
|
||||
-- Resolve options with user settings from vim.diagnostic.config
|
||||
-- Unlike the other decoration functions (e.g. set_virtual_text, set_signs, etc.) `open_float`
|
||||
-- does not have a dedicated table for configuration options; instead, the options are mixed in
|
||||
-- with its `opts` table which also includes "keyword" parameters. So we create a dedicated
|
||||
-- options table that inherits missing keys from the global configuration before resolving.
|
||||
local t = global_diagnostic_options.float
|
||||
local float_opts = vim.tbl_extend("keep", opts, type(t) == "table" and t or {})
|
||||
opts = get_resolved_options({ float = float_opts }, nil, bufnr).float
|
||||
end
|
||||
|
||||
local lines = {}
|
||||
local highlights = {}
|
||||
local show_header = vim.F.if_nil(opts.show_header, true)
|
||||
|
||||
Reference in New Issue
Block a user