fix: table number option extend (#947)
* fix: prevent error when overriding tables with numbers Fixes #944 - refactor `config.smarter_depth_2_extend` - use `config.smarter_depth_2_extend` for setting `layout_config` in `Picker:new` * test: check that can override a table with a number for layout configuration
This commit is contained in:
@@ -35,7 +35,13 @@ local smarter_depth_2_extend = function(priority, base)
|
||||
end
|
||||
end
|
||||
end
|
||||
result = vim.tbl_deep_extend("keep", priority, result)
|
||||
for key, val in pairs(priority) do
|
||||
if type(val) ~= "table" then
|
||||
result[key] = first_non_null(val,result[key])
|
||||
else
|
||||
result[key] = vim.tbl_extend("keep",val,result[key] or {})
|
||||
end
|
||||
end
|
||||
return result
|
||||
end
|
||||
|
||||
@@ -43,6 +49,7 @@ end
|
||||
-- selection_strategy
|
||||
|
||||
local config = {}
|
||||
config.smarter_depth_2_extend = smarter_depth_2_extend
|
||||
|
||||
config.values = _TelescopeConfigurationValues
|
||||
config.descriptions = {}
|
||||
|
||||
@@ -99,7 +99,7 @@ function Picker:new(opts)
|
||||
selection_strategy = get_default(opts.selection_strategy, config.values.selection_strategy),
|
||||
|
||||
layout_strategy = layout_strategy,
|
||||
layout_config = vim.tbl_deep_extend("keep", opts.layout_config or {}, config.values.layout_config or {}),
|
||||
layout_config = config.smarter_depth_2_extend(opts.layout_config or {}, config.values.layout_config or {}),
|
||||
|
||||
window = {
|
||||
winblend = get_default(opts.winblend, config.values.winblend),
|
||||
|
||||
@@ -89,4 +89,14 @@ describe('layout_strategies', function()
|
||||
{horizontal={height=50}}, {horizontal={height=100}}, {height=120}
|
||||
)
|
||||
|
||||
test_defaults_key("should handle user config overriding a table with a number",
|
||||
'height','horizontal',120,
|
||||
{height={padding=5}},{height=120},{}
|
||||
)
|
||||
|
||||
test_defaults_key("should handle user oneshot overriding a table with a number",
|
||||
'height','horizontal',120,
|
||||
{},{height={padding=5}},{height=120}
|
||||
)
|
||||
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user