mirror of
https://github.com/folke/snacks.nvim
synced 2025-07-23 13:05:26 +00:00
183 lines
4.2 KiB
Lua
183 lines
4.2 KiB
Lua
---@class snacks.picker.layouts
|
|
---@field [string] snacks.picker.layout.Config
|
|
local M = {}
|
|
|
|
M.default = {
|
|
layout = {
|
|
box = "horizontal",
|
|
width = 0.8,
|
|
min_width = 120,
|
|
height = 0.8,
|
|
{
|
|
box = "vertical",
|
|
border = "rounded",
|
|
title = "{title} {live} {flags}",
|
|
{ win = "input", height = 1, border = "bottom" },
|
|
{ win = "list", border = "none" },
|
|
},
|
|
{ win = "preview", title = "{preview}", border = "rounded", width = 0.5 },
|
|
},
|
|
}
|
|
|
|
M.sidebar = {
|
|
preview = "main",
|
|
layout = {
|
|
backdrop = false,
|
|
width = 40,
|
|
min_width = 40,
|
|
height = 0,
|
|
position = "left",
|
|
border = "none",
|
|
box = "vertical",
|
|
{
|
|
win = "input",
|
|
height = 1,
|
|
border = "rounded",
|
|
title = "{title} {live} {flags}",
|
|
title_pos = "center",
|
|
},
|
|
{ win = "list", border = "none" },
|
|
{ win = "preview", title = "{preview}", height = 0.4, border = "top" },
|
|
},
|
|
}
|
|
|
|
M.telescope = {
|
|
reverse = true,
|
|
layout = {
|
|
box = "horizontal",
|
|
backdrop = false,
|
|
width = 0.8,
|
|
height = 0.9,
|
|
border = "none",
|
|
{
|
|
box = "vertical",
|
|
{ win = "list", title = " Results ", title_pos = "center", border = "rounded" },
|
|
{ win = "input", height = 1, border = "rounded", title = "{title} {live} {flags}", title_pos = "center" },
|
|
},
|
|
{
|
|
win = "preview",
|
|
title = "{preview:Preview}",
|
|
width = 0.45,
|
|
border = "rounded",
|
|
title_pos = "center",
|
|
},
|
|
},
|
|
}
|
|
|
|
M.ivy = {
|
|
layout = {
|
|
box = "vertical",
|
|
backdrop = false,
|
|
row = -1,
|
|
width = 0,
|
|
height = 0.4,
|
|
border = "top",
|
|
title = " {title} {live} {flags}",
|
|
title_pos = "left",
|
|
{ win = "input", height = 1, border = "bottom" },
|
|
{
|
|
box = "horizontal",
|
|
{ win = "list", border = "none" },
|
|
{ win = "preview", title = "{preview}", width = 0.6, border = "left" },
|
|
},
|
|
},
|
|
}
|
|
|
|
M.ivy_split = {
|
|
preview = "main",
|
|
layout = {
|
|
box = "vertical",
|
|
backdrop = false,
|
|
width = 0,
|
|
height = 0.4,
|
|
position = "bottom",
|
|
border = "top",
|
|
title = " {title} {live} {flags}",
|
|
title_pos = "left",
|
|
{ win = "input", height = 1, border = "bottom" },
|
|
{
|
|
box = "horizontal",
|
|
{ win = "list", border = "none" },
|
|
{ win = "preview", title = "{preview}", width = 0.6, border = "left" },
|
|
},
|
|
},
|
|
}
|
|
|
|
M.dropdown = {
|
|
layout = {
|
|
backdrop = false,
|
|
row = 1,
|
|
width = 0.4,
|
|
min_width = 80,
|
|
height = 0.8,
|
|
border = "none",
|
|
box = "vertical",
|
|
{ win = "preview", title = "{preview}", height = 0.4, border = "rounded" },
|
|
{
|
|
box = "vertical",
|
|
border = "rounded",
|
|
title = "{title} {live} {flags}",
|
|
title_pos = "center",
|
|
{ win = "input", height = 1, border = "bottom" },
|
|
{ win = "list", border = "none" },
|
|
},
|
|
},
|
|
}
|
|
|
|
M.vertical = {
|
|
layout = {
|
|
backdrop = false,
|
|
width = 0.5,
|
|
min_width = 80,
|
|
height = 0.8,
|
|
min_height = 30,
|
|
box = "vertical",
|
|
border = "rounded",
|
|
title = "{title} {live} {flags}",
|
|
title_pos = "center",
|
|
{ win = "input", height = 1, border = "bottom" },
|
|
{ win = "list", border = "none" },
|
|
{ win = "preview", title = "{preview}", height = 0.4, border = "top" },
|
|
},
|
|
}
|
|
|
|
M.select = {
|
|
preview = false,
|
|
layout = {
|
|
backdrop = false,
|
|
width = 0.5,
|
|
min_width = 80,
|
|
height = 0.4,
|
|
min_height = 3,
|
|
box = "vertical",
|
|
border = "rounded",
|
|
title = "{title}",
|
|
title_pos = "center",
|
|
{ win = "input", height = 1, border = "bottom" },
|
|
{ win = "list", border = "none" },
|
|
{ win = "preview", title = "{preview}", height = 0.4, border = "top" },
|
|
},
|
|
}
|
|
|
|
M.vscode = {
|
|
preview = false,
|
|
layout = {
|
|
backdrop = false,
|
|
row = 1,
|
|
width = 0.4,
|
|
min_width = 80,
|
|
height = 0.4,
|
|
border = "none",
|
|
box = "vertical",
|
|
{ win = "input", height = 1, border = "rounded", title = "{title} {live} {flags}", title_pos = "center" },
|
|
{ win = "list", border = "hpad" },
|
|
{ win = "preview", title = "{preview}", border = "rounded" },
|
|
},
|
|
}
|
|
|
|
M.left = M.sidebar
|
|
M.right = { preset = "sidebar", layout = { position = "right" } }
|
|
M.top = { preset = "ivy", layout = { position = "top" } }
|
|
M.bottom = { preset = "ivy", layout = { position = "bottom" } }
|
|
|
|
return M
|