migrate to new builtin plugin manager with new folder structure
This commit is contained in:
39 files changed
+2139
-2485
No files matched your search
@@ -0,0 +1,367 @@
|
||||
add("folke/snacks.nvim")
|
||||
|
||||
local function files_layout(preview_width, height, width)
|
||||
preview_width = preview_width or 0.6
|
||||
height = height or 0.8
|
||||
width = width or 0.9
|
||||
return {
|
||||
layout = {
|
||||
box = "horizontal",
|
||||
width = width,
|
||||
min_width = 120,
|
||||
height = height,
|
||||
{
|
||||
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 = preview_width },
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
local function palette_layout(height, width)
|
||||
height = height or 0.4
|
||||
width = width or 0.6
|
||||
return {
|
||||
preview = false,
|
||||
layout = {
|
||||
backdrop = false,
|
||||
row = 1,
|
||||
width = width,
|
||||
min_width = 80,
|
||||
height = height,
|
||||
border = "rounded",
|
||||
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" },
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
local Snacks = require("snacks")
|
||||
Snacks.setup({
|
||||
animate = {
|
||||
enabled = true,
|
||||
duration = 20, -- ms per step
|
||||
easing = "linear",
|
||||
fps = 60,
|
||||
},
|
||||
bigfile = {
|
||||
enabled = true,
|
||||
notify = true,
|
||||
size = 1000 * 1024, -- 1 MB instead of 100 KB
|
||||
},
|
||||
bufdelete = { enabled = true },
|
||||
dashboard = {
|
||||
preset = {
|
||||
header = [[
|
||||
░█░█░█▀▀░█░█░█▀▀░█▀█░█▀▄░█▀▀░█░█
|
||||
░█▀▄░█▀▀░░█░░█░░░█░█░█░█░█▀▀░▄▀▄
|
||||
░▀░▀░▀▀▀░░▀░░▀▀▀░▀▀▀░▀▀░░▀▀▀░▀░▀
|
||||
]],
|
||||
},
|
||||
sections = {
|
||||
{ section = "header" },
|
||||
{
|
||||
icon = " ",
|
||||
title = "Keymaps",
|
||||
section = "keys",
|
||||
indent = 2,
|
||||
padding = 1,
|
||||
},
|
||||
{
|
||||
icon = " ",
|
||||
title = "Recent Files",
|
||||
section = "recent_files",
|
||||
indent = 2,
|
||||
padding = 1,
|
||||
},
|
||||
{
|
||||
icon = " ",
|
||||
title = "Projects",
|
||||
section = "projects",
|
||||
indent = 2,
|
||||
padding = 1,
|
||||
},
|
||||
|
||||
},
|
||||
},
|
||||
debug = { enabled = true },
|
||||
dim = {
|
||||
enabled = true,
|
||||
scope = {
|
||||
min_size = 5,
|
||||
max_size = 20,
|
||||
siblings = true,
|
||||
},
|
||||
},
|
||||
explorer = { enabled = false },
|
||||
projects = {
|
||||
dirs = {
|
||||
"~/Project",
|
||||
"~/.config/Modus"
|
||||
}
|
||||
},
|
||||
git = { enabled = true },
|
||||
gitbrowse = { enabled = true },
|
||||
image = { enabled = true },
|
||||
indent = {
|
||||
enabled = true,
|
||||
priority = 1,
|
||||
char = "▍",
|
||||
only_scope = false,
|
||||
only_current = false,
|
||||
hl = {
|
||||
"SnacksIndent1",
|
||||
"SnacksIndent2",
|
||||
"SnacksIndent3",
|
||||
"SnacksIndent4",
|
||||
"SnacksIndent5",
|
||||
"SnacksIndent6",
|
||||
"SnacksIndent7",
|
||||
"SnacksIndent8",
|
||||
},
|
||||
},
|
||||
input = {
|
||||
enabled = true,
|
||||
icon = " ",
|
||||
icon_hl = "SnacksInputIcon",
|
||||
icon_pos = "left",
|
||||
prompt_pos = "title",
|
||||
win = { style = "input" },
|
||||
expand = true,
|
||||
},
|
||||
layout = { enabled = true },
|
||||
lazygit = { enabled = true },
|
||||
notifier = {
|
||||
enabled = true,
|
||||
timeout = 2000,
|
||||
width = { min = 40, max = 0.4 },
|
||||
height = { min = 1, max = 0.6 },
|
||||
margin = { top = 0, right = 1, bottom = 0 },
|
||||
padding = true,
|
||||
sort = { "level", "added" },
|
||||
level = vim.log.levels.TRACE,
|
||||
icons = {
|
||||
debug = " ",
|
||||
error = " ",
|
||||
info = " ",
|
||||
trace = " ",
|
||||
warn = " ",
|
||||
},
|
||||
style = "compact",
|
||||
top_down = true,
|
||||
date_format = "%R",
|
||||
more_format = " ↓ %d lines ",
|
||||
refresh = 50,
|
||||
},
|
||||
notify = { enabled = true },
|
||||
picker = {
|
||||
enabled = true,
|
||||
icon = " ",
|
||||
icon_hl = "SnacksPickerIcon",
|
||||
icon_pos = "left",
|
||||
prompt_pos = "title",
|
||||
win = { style = "picker" },
|
||||
expand = true,
|
||||
matchers = {
|
||||
frecency = true,
|
||||
cwd_bonus = false,
|
||||
},
|
||||
sources = {
|
||||
-- layout options: dropdown, horizontal, vertical, vscode, ivy, ivy_split, telescope, top, left, right, bottom, sidebar
|
||||
buffers = { layout = files_layout() },
|
||||
commands = { layout = palette_layout() },
|
||||
command_history = { layout = palette_layout() },
|
||||
files = {
|
||||
hidden = true,
|
||||
layout = files_layout(),
|
||||
},
|
||||
icons = {
|
||||
icon_sources = { "nerd_fonts", "emoji" },
|
||||
layout = palette_layout(),
|
||||
},
|
||||
git_files = { layout = files_layout() },
|
||||
git_branches = { layout = { preset = "vertical" } },
|
||||
git_status = { layout = files_layout() },
|
||||
help = { layout = { preset = "ivy_split" } },
|
||||
man = { layout = { preset = "ivy_split" } },
|
||||
notifications = { layout = palette_layout() },
|
||||
projects = { layout = files_layout(0.8) },
|
||||
recent = { layout = files_layout() },
|
||||
search_history = { layout = palette_layout() },
|
||||
smart = { layout = files_layout() },
|
||||
undo = { layout = { preset = "ivy" } },
|
||||
zoxide = { layout = files_layout(0.7) },
|
||||
},
|
||||
layout = "custom",
|
||||
layouts = {
|
||||
custom = {
|
||||
layout = {
|
||||
box = "vertical",
|
||||
backdrop = false,
|
||||
row = -1,
|
||||
width = 0,
|
||||
height = 0.4,
|
||||
border = "top",
|
||||
title = " {title} {live} {flags}",
|
||||
title_pos = "left",
|
||||
{
|
||||
box = "horizontal",
|
||||
{ win = "list", border = "rounded" },
|
||||
{ win = "preview", title = "{preview}", width = 0.6, border = "left" },
|
||||
},
|
||||
{ win = "input", height = 1, border = "top" },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
profiler = { enabled = true },
|
||||
quickfile = { enabled = true },
|
||||
rename = { enabled = true },
|
||||
scope = {
|
||||
enabled = true,
|
||||
keys = {
|
||||
textobject = {
|
||||
ii = {
|
||||
min_size = 2, -- minimum size of the scope
|
||||
edge = false, -- inner scope
|
||||
cursor = false,
|
||||
treesitter = { blocks = { enabled = false } },
|
||||
desc = "inner scope",
|
||||
},
|
||||
ai = {
|
||||
cursor = false,
|
||||
min_size = 2, -- minimum size of the scope
|
||||
treesitter = { blocks = { enabled = false } },
|
||||
desc = "full scope",
|
||||
},
|
||||
},
|
||||
jump = {
|
||||
["[a"] = {
|
||||
min_size = 1, -- allow single line scopes
|
||||
bottom = false,
|
||||
cursor = false,
|
||||
edge = true,
|
||||
treesitter = { blocks = { enabled = false } },
|
||||
desc = "jump to top edge of scope",
|
||||
},
|
||||
["]a"] = {
|
||||
min_size = 1, -- allow single line scopes
|
||||
bottom = true,
|
||||
cursor = false,
|
||||
edge = true,
|
||||
treesitter = { blocks = { enabled = false } },
|
||||
desc = "jump to bottom edge of scope",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
scratch = {
|
||||
enabled = true,
|
||||
name = "SCRATCH",
|
||||
ft = function()
|
||||
if vim.bo.buftype == "" and vim.bo.filetype ~= "" then
|
||||
return vim.bo.filetype
|
||||
end
|
||||
return "markdown"
|
||||
end,
|
||||
icon = nil,
|
||||
root = vim.fn.stdpath("data") .. "/scratch",
|
||||
autowrite = true,
|
||||
filekey = {
|
||||
cwd = true,
|
||||
branch = true,
|
||||
count = true,
|
||||
},
|
||||
win = {
|
||||
width = 120,
|
||||
height = 40,
|
||||
bo = { buftype = "", buflisted = false, bufhidden = "hide", swapfile = false },
|
||||
minimal = false,
|
||||
noautocmd = false,
|
||||
zindex = 20,
|
||||
wo = { winhighlight = "NormalFloat:Normal" },
|
||||
border = "rounded",
|
||||
title_pos = "center",
|
||||
footer_pos = "center",
|
||||
|
||||
keys = {
|
||||
["execute"] = {
|
||||
"<cr>",
|
||||
function(_)
|
||||
vim.cmd("%SnipRun")
|
||||
end,
|
||||
desc = "Execute buffer",
|
||||
mode = { "n", "x" },
|
||||
},
|
||||
},
|
||||
},
|
||||
win_by_ft = {
|
||||
lua = {
|
||||
keys = {
|
||||
["source"] = {
|
||||
"<leader>cr",
|
||||
function(self)
|
||||
local name = "scratch." .. vim.fn.fnamemodify(vim.api.nvim_buf_get_name(self.buf), ":e")
|
||||
Snacks.debug.run({ buf = self.buf, name = name })
|
||||
end,
|
||||
desc = "Source buffer",
|
||||
mode = { "n", "x" },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
scroll = { enabled = false },
|
||||
statuscolumn = {
|
||||
enabled = false, -- Change this to false
|
||||
left = { "mark", "sign" },
|
||||
right = { "fold", "git" },
|
||||
folds = {
|
||||
open = false,
|
||||
git_hl = false,
|
||||
},
|
||||
git = {
|
||||
patterns = { "GitSign", "MiniDiffSign" },
|
||||
},
|
||||
refresh = 50,
|
||||
},
|
||||
terminal = { enabled = false },
|
||||
toggle = { enabled = false },
|
||||
win = { enabled = true },
|
||||
words = { enabled = false },
|
||||
zen = {
|
||||
enabled = true,
|
||||
toggles = {
|
||||
dim = true,
|
||||
git_signs = false,
|
||||
mini_diff_signs = false,
|
||||
-- diagnostics = false,
|
||||
-- inlay_hints = false,
|
||||
},
|
||||
show = {
|
||||
statusline = false,
|
||||
tabline = false,
|
||||
},
|
||||
win = { style = "zen" },
|
||||
zoom = {
|
||||
toggles = {},
|
||||
show = { statusline = true, tabline = true },
|
||||
win = {
|
||||
backdrop = false,
|
||||
width = 0,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
Reference in new issue
Block a user