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:
Luke Kershaw
2021-07-02 07:50:55 +01:00
committed by GitHub
parent 5a53ec5c2f
commit 50001d4965
3 changed files with 19 additions and 2 deletions

View File

@@ -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 = {}

View File

@@ -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),

View File

@@ -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)