mirror of
https://github.com/zoriya/telescope.nvim.git
synced 2026-05-28 00:54:32 +00:00
70 lines
2.1 KiB
Lua
70 lines
2.1 KiB
Lua
local resolve = require "telescope.config.resolve"
|
|
|
|
local p_window = {}
|
|
|
|
function p_window.get_window_options(picker, max_columns, max_lines)
|
|
local layout_strategy = picker.layout_strategy
|
|
local getter = require("telescope.pickers.layout_strategies")[layout_strategy]
|
|
|
|
if not getter then
|
|
error(string.format("'%s' is not a valid layout strategy", layout_strategy))
|
|
end
|
|
|
|
return getter(picker, max_columns, max_lines)
|
|
end
|
|
|
|
function p_window._set_additional_fields(popup_opts)
|
|
-- `popup.nvim` massaging so people don't have to remember minheight shenanigans
|
|
popup_opts.results.minheight = popup_opts.results.height
|
|
popup_opts.results.highlight = "TelescopeResultsNormal"
|
|
popup_opts.results.borderhighlight = "TelescopeResultsBorder"
|
|
popup_opts.results.titlehighlight = "TelescopeResultsTitle"
|
|
popup_opts.prompt.minheight = popup_opts.prompt.height
|
|
popup_opts.prompt.highlight = "TelescopePromptNormal"
|
|
popup_opts.prompt.borderhighlight = "TelescopePromptBorder"
|
|
popup_opts.prompt.titlehighlight = "TelescopePromptTitle"
|
|
if popup_opts.preview then
|
|
popup_opts.preview.minheight = popup_opts.preview.height
|
|
popup_opts.preview.highlight = "TelescopePreviewNormal"
|
|
popup_opts.preview.borderhighlight = "TelescopePreviewBorder"
|
|
popup_opts.preview.titlehighlight = "TelescopePreviewTitle"
|
|
end
|
|
|
|
return popup_opts
|
|
end
|
|
|
|
function p_window.get_initial_window_options(picker)
|
|
local popup_border = resolve.win_option(picker.window.border)
|
|
local popup_borderchars = resolve.win_option(picker.window.borderchars)
|
|
|
|
local preview = {
|
|
title = picker.preview_title,
|
|
border = popup_border.preview,
|
|
borderchars = popup_borderchars.preview,
|
|
enter = false,
|
|
highlight = false,
|
|
}
|
|
|
|
local results = {
|
|
title = picker.results_title,
|
|
border = popup_border.results,
|
|
borderchars = popup_borderchars.results,
|
|
enter = false,
|
|
}
|
|
|
|
local prompt = {
|
|
title = picker.prompt_title,
|
|
border = popup_border.prompt,
|
|
borderchars = popup_borderchars.prompt,
|
|
enter = true,
|
|
}
|
|
|
|
return {
|
|
preview = preview,
|
|
results = results,
|
|
prompt = prompt,
|
|
}
|
|
end
|
|
|
|
return p_window
|