summaryrefslogtreecommitdiff
path: root/lua/telescope/pickers/window.lua
diff options
context:
space:
mode:
authorTJ DeVries <devries.timothyj@gmail.com>2021-05-15 12:02:14 -0700
committerGitHub <noreply@github.com>2021-05-15 15:02:14 -0400
commit4da66dab44f37d0de4b88cedf9e114c5b0855c20 (patch)
treeea0179d0d0c8be5e716ce70d6dab14aa4fc4fcac /lua/telescope/pickers/window.lua
parentb78d4ef10c72597c322baaa3830c760a26734b21 (diff)
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>
Diffstat (limited to 'lua/telescope/pickers/window.lua')
-rw-r--r--lua/telescope/pickers/window.lua37
1 files changed, 35 insertions, 2 deletions
diff --git a/lua/telescope/pickers/window.lua b/lua/telescope/pickers/window.lua
index 76c1fe0..533fe30 100644
--- a/lua/telescope/pickers/window.lua
+++ b/lua/telescope/pickers/window.lua
@@ -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