chore: layout strategy tidying (#1509)

This commit is contained in:
Luke Kershaw
2021-11-29 10:42:23 +00:00
committed by GitHub
parent 7cfddbfd93
commit 22e59556f9
2 changed files with 9 additions and 12 deletions

View File

@@ -115,6 +115,7 @@ telescope.setup({opts}) *telescope.setup()*
Default: { Default: {
bottom_pane = { bottom_pane = {
height = 25, height = 25,
preview_cutoff = 120,
prompt_position = "top" prompt_position = "top"
}, },
center = { center = {
@@ -1669,6 +1670,9 @@ layout_strategies.center() *layout_strategies.center()*
`picker.layout_config` unique options: `picker.layout_config` unique options:
- preview_cutoff: When lines are less than this value, the preview will be disabled - preview_cutoff: When lines are less than this value, the preview will be disabled
- prompt_position:
- Where to place prompt window.
- Available Values: 'bottom', 'top'
layout_strategies.cursor() *layout_strategies.cursor()* layout_strategies.cursor() *layout_strategies.cursor()*

View File

@@ -398,6 +398,7 @@ layout_strategies.center = make_documented_layout(
"center", "center",
vim.tbl_extend("error", shared_options, { vim.tbl_extend("error", shared_options, {
preview_cutoff = "When lines are less than this value, the preview will be disabled", preview_cutoff = "When lines are less than this value, the preview will be disabled",
prompt_position = { "Where to place prompt window.", "Available Values: 'bottom', 'top'" },
}), }),
function(self, max_columns, max_lines, layout_config) function(self, max_columns, max_lines, layout_config)
local initial_options = p_window.get_initial_window_options(self) local initial_options = p_window.get_initial_window_options(self)
@@ -527,10 +528,7 @@ layout_strategies.cursor = make_documented_layout(
-- Cap over/undersized width (with preview) -- Cap over/undersized width (with preview)
width, w_space = calc_size_and_spacing(width, max_columns, bs, 2, 4, 0) width, w_space = calc_size_and_spacing(width, max_columns, bs, 2, 4, 0)
preview.width = resolve.resolve_width(if_nil(layout_config.preview_width, function(_, _) preview.width = resolve.resolve_width(if_nil(layout_config.preview_width, 2 / 3))(self, width, max_lines)
-- By default, previewer takes 2/3 of the layout
return 2 * math.floor(width / 3)
end))(self, width, max_lines)
prompt.width = width - preview.width - w_space prompt.width = width - preview.width - w_space
results.width = prompt.width results.width = prompt.width
else else
@@ -779,6 +777,7 @@ layout_strategies.bottom_pane = make_documented_layout(
"bottom_pane", "bottom_pane",
vim.tbl_extend("error", shared_options, { vim.tbl_extend("error", shared_options, {
preview_width = { "Change the width of Telescope's preview window", "See |resolver.resolve_width()|" }, preview_width = { "Change the width of Telescope's preview window", "See |resolver.resolve_width()|" },
preview_cutoff = "When columns are less than this value, the preview will be disabled",
prompt_position = { "Where to place prompt window.", "Available Values: 'bottom', 'top'" }, prompt_position = { "Where to place prompt window.", "Available Values: 'bottom', 'top'" },
}), }),
function(self, max_columns, max_lines, layout_config) function(self, max_columns, max_lines, layout_config)
@@ -807,19 +806,13 @@ layout_strategies.bottom_pane = make_documented_layout(
results.height = height - prompt.height - (2 * bs) results.height = height - prompt.height - (2 * bs)
preview.height = results.height - bs preview.height = results.height - bs
local width
-- Width -- Width
prompt.width = max_columns - 2 * bs prompt.width = max_columns - 2 * bs
local w_space
if self.previewer and max_columns >= layout_config.preview_cutoff then if self.previewer and max_columns >= layout_config.preview_cutoff then
-- Cap over/undersized width (with preview) -- Cap over/undersized width (with preview)
width, w_space = calc_size_and_spacing(max_columns, max_columns, bs, 2, 4, 0) local width, w_space = calc_size_and_spacing(max_columns, max_columns, bs, 2, 4, 0)
preview.width = resolve.resolve_width(if_nil(layout_config.preview_width, function(_, _) preview.width = resolve.resolve_width(if_nil(layout_config.preview_width, 0.5))(self, width, max_lines)
-- By default, previewer takes 1/2 of the layout
return math.floor(width / 2)
end))(self, width, max_lines)
results.width = width - preview.width - w_space results.width = width - preview.width - w_space
else else
results.width = prompt.width results.width = prompt.width