92 lines
2.6 KiB
Lua
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
|