local statuscolumn = {} statuscolumn.border = function() 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() return string.format('%-3s %2s ', vim.v.lnum, vim.v.relnum) end statuscolumn.statusColumn = function() local column_text = '' column_text = table.concat({ '%s', statuscolumn.numbers(), statuscolumn.border(), -- statuscolumn.folds(), ' ', }) return column_text end return statuscolumn