Files
neovim-config/lua/plugins/snacks.lua
T

92 lines
2.6 KiB
Lua

-- ╭─────────────────────────────────────────────────────────╮
-- │ Snacks │
-- ╰─────────────────────────────────────────────────────────╯
local P = {}
-- Snacks statuscolumn
local statuscolumn = {
'folke/snacks.nvim',
opts = {
statuscolumn = {
enabled = true,
left = { 'mark', 'sign' }, -- priority of signs on the left (high to low)
right = { 'fold', 'git' }, -- priority of signs on the right (high to low)
folds = {
open = false, -- show open fold icons
git_hl = true, -- use Git Signs hl for fold icons
},
git = {
-- patterns to match Git signs
patterns = { 'GitSign', 'MiniDiffSign' },
},
refresh = 50, -- refresh at most every 50ms
},
},
}
local indentscope = {
'folke/snacks.nvim',
opts = {
indent = {
indent = {
enabled = false,
only_scope = true,
},
animate = {
enabled = vim.fn.has('nvim-0.10') == 1,
style = 'up_down',
},
scope = {
enabled = true, -- enable highlighting the current scope
priority = 200,
char = '│',
underline = false, -- underline the start of the scope
only_current = false, -- only show scope in the current window
hl = 'SnacksIndentScope', ---@type string|string[] hl group for scopes
},
chunk = {
-- when enabled, scopes will be rendered as chunks, except for the
-- top-level scope which will be rendered as a scope.
enabled = true,
-- only show chunk scopes in the current window
only_current = false,
priority = 200,
hl = 'SnacksIndentChunk', ---@type string|string[] hl group for chunk scopes
char = {
corner_top = '╭',
corner_bottom = '',
horizontal = '─',
vertical = '│',
arrow = '',
},
},
},
},
}
local nostatuscolumn = {
'folke/snacks.nvim',
opts = {
statuscolumn = {
enabled = false,
},
},
}
if
require('data.func').check_global_var('statuscolumn', 'snacks', 'native')
then
-- Add Snacks statuscolumn
table.insert(P, statuscolumn)
else
-- Use native statuscolumn
vim.opt.statuscolumn = '%=%{v:relnum?v:relnum:v:lnum} '
table.insert(P, nostatuscolumn)
end
table.insert(P, indentscope)
return P