From 4da66dab44f37d0de4b88cedf9e114c5b0855c20 Mon Sep 17 00:00:00 2001 From: TJ DeVries Date: Sat, 15 May 2021 12:02:14 -0700 Subject: 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 --- lua/telescope/themes.lua | 58 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 3 deletions(-) (limited to 'lua/telescope/themes.lua') diff --git a/lua/telescope/themes.lua b/lua/telescope/themes.lua index eba3d11..f2af1a7 100644 --- a/lua/telescope/themes.lua +++ b/lua/telescope/themes.lua @@ -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. +---
+---
+--- Usage:
+---
+---     `local builtin = require('telescope.builtin')`
+---     `local themes = require('telescope.themes')`
+---     `builtin.find_files(themes.get_dropdown())`
+--- 
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. +---
+---
+--- Usage:
+---
+---     `local builtin = require('telescope.builtin')`
+---     `local themes = require('telescope.themes')`
+---     `builtin.find_files(themes.get_ivy())`
+--- 
+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 -- cgit v1.2.3