feat: add ivy-style layout strategy (#771)

* feat: add new layout strategy

* [docgen] Update doc/telescope.txt
skip-checks: true

Co-authored-by: Github Actions <actions@github>
This commit is contained in:
TJ DeVries
2021-05-15 12:02:14 -07:00
committed by GitHub
parent b78d4ef10c
commit 4da66dab44
6 changed files with 220 additions and 40 deletions

View File

@@ -1,10 +1,10 @@
local p_layouts = require('telescope.pickers.layout_strategies')
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 = p_layouts[layout_strategy]
local getter = require('telescope.pickers.layout_strategies')[layout_strategy]
if not getter then
error("Not a valid layout strategy: " .. layout_strategy)
@@ -13,5 +13,38 @@ function p_window.get_window_options(picker, max_columns, max_lines)
return getter(picker, max_columns, max_lines)
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