62 lines
1.2 KiB
Lua
62 lines
1.2 KiB
Lua
-- Keep the values around between reloads
|
|
_TelescopeConfigurationValues = _TelescopeConfigurationValues or {}
|
|
|
|
local function first_non_null(...)
|
|
local n = select('#', ...)
|
|
for i = 1, n do
|
|
local value = select(i, ...)
|
|
|
|
if value ~= nil then
|
|
return value
|
|
end
|
|
end
|
|
end
|
|
|
|
-- TODO: Add other major configuration points here.
|
|
-- border
|
|
-- borderchars
|
|
-- selection_strategy
|
|
|
|
local config = {}
|
|
|
|
config.values = _TelescopeConfigurationValues
|
|
|
|
function config.set_defaults(defaults)
|
|
defaults = defaults or {}
|
|
|
|
local function get(name, default_val)
|
|
return first_non_null(defaults[name], config.values[name], default_val)
|
|
end
|
|
|
|
local function set(name, default_val)
|
|
config.values[name] = get(name, default_val)
|
|
end
|
|
|
|
set("selection_strategy", "reset")
|
|
|
|
set("layout_strategy", "horizontal")
|
|
set("width", 0.75)
|
|
set("winblend", 0)
|
|
|
|
-- TODO: Shortenpath
|
|
-- Decide how to propagate that to all the opts everywhere.
|
|
|
|
-- NOT STABLE. DO NOT USE
|
|
set("horizontal_config", {
|
|
get_preview_width = function(columns, _)
|
|
return math.floor(columns * 0.75)
|
|
end,
|
|
})
|
|
end
|
|
|
|
function config.clear_defaults()
|
|
for k, _ in pairs(config.values) do
|
|
config.values[k] = nil
|
|
end
|
|
end
|
|
|
|
config.set_defaults()
|
|
|
|
|
|
return config
|