Files
dotfiles/nvim/lua/statuscolumn.lua

82 lines
1.8 KiB
Lua

local statuscolumn = {}
local show_both_nums = false
statuscolumn.setHL = function ()
local colors = {
'#888cd8',
'#8081cd',
'#7877c2',
'#706cb7',
'#6862ad',
'#6057a2',
'#584d97',
'#50438d',
'#493a82',
'#413078',
}
for i, color in ipairs(colors) do
vim.api.nvim_set_hl(0, 'Gradient_' .. i, { fg = color })
end
end
statuscolumn.border = function()
-- if vim.v.relnum < 9 then
-- return '%#Gradient_' .. (vim.v.relnum + 1) .. '#│'
-- else
-- return '%#Gradient_10#│'
-- end
return ''
end
statuscolumn.folds = function()
local foldlevel = vim.fn.foldlevel(vim.v.lnum)
local foldlevel_before = vim.fn.foldlevel((vim.v.lnum - 1) >= 1 and vim.v.lnum - 1 or 1)
local foldlevel_after = vim.fn.foldlevel((vim.v.lnum + 1) <= vim.fn.line('$') and (vim.v.lnum + 1) or vim.fn.line('$'))
local foldclosed = vim.fn.foldclosed(vim.v.lnum)
if foldlevel == 0 then
return ' '
end
if foldclosed ~= -1 and foldclosed == vim.v.lnum then
return ''
end
if foldlevel > foldlevel_before then
return ''
end
if foldlevel > foldlevel_after then
return ''
end
return ''
end
statuscolumn.numbers = function()
if show_both_nums then
return string.format('%-3s %2s ', vim.v.lnum, vim.v.relnum)
else
return string.format('%2s', vim.v.relnum)
end
end
statuscolumn.statusColumn = function()
local column_text = ''
-- statuscolumn.setHL()
column_text = table.concat({
'%s',
statuscolumn.numbers(),
-- statuscolumn.border(),
-- statuscolumn.folds(), ' ',
})
return column_text
end
return statuscolumn