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

@@ -2,10 +2,27 @@
-- Currently certain designs need a number of parameters.
--
-- local opts = themes.get_dropdown { winblend = 3 }
--
---@tag telescope.themes
---@brief [[
--- Themes are ways to combine several elements of styling together.
---
--- They are helpful for managing the several differnt UI aspects for telescope and provide
--- a simple interface for users to get a particular "style" of picker.
---@brief ]]
local themes = {}
--- Dropdown style theme.
--- <pre>
---
--- Usage:
---
--- `local builtin = require('telescope.builtin')`
--- `local themes = require('telescope.themes')`
--- `builtin.find_files(themes.get_dropdown())`
--- </pre>
function themes.get_dropdown(opts)
opts = opts or {}
@@ -21,14 +38,49 @@ function themes.get_dropdown(opts)
width = 80,
results_height = 15,
borderchars = {
{ '', '', '', '', '', '', '', ''},
{ "", "", "", "", "", "", "", ""},
prompt = {"", "", " ", "", "", "", "", ""},
results = {"", "", "", "", "", "", "", ""},
preview = { '', '', '', '', '', '', '', ''},
preview = { "", "", "", "", "", "", "", ""},
},
}
return vim.tbl_deep_extend("force", theme_opts, opts)
end
--- Ivy style theme.
--- <pre>
---
--- Usage:
---
--- `local builtin = require('telescope.builtin')`
--- `local themes = require('telescope.themes')`
--- `builtin.find_files(themes.get_ivy())`
--- </pre>
function themes.get_ivy(opts)
opts = opts or {}
return vim.tbl_deep_extend("force", {
theme = "ivy",
sorting_strategy = "ascending",
preview_title = "",
layout_strategy = "bottom_pane",
layout_config = {
height = 25,
},
border = true,
borderchars = {
"z",
prompt = { "", " ", " ", " ", "", "", " ", " " },
results = { " " },
-- results = { "a", "b", "c", "d", "e", "f", "g", "h" },
preview = { "", "", "", "", "", "", "", ""},
},
}, opts)
end
return themes