From f1062a3d8f0002e8fd3ddf45580397e013c0aa8b Mon Sep 17 00:00:00 2001 From: jdhao Date: Tue, 6 Aug 2024 18:00:41 +0200 Subject: [PATCH] filter fold level sign for statuscol.nvim Only show fold signs for fold level below a certain level to avoid clutter the left side columns with a lot of folding signs --- lua/config/nvim-statuscol.lua | 23 +++++++++++++++++++++++ lua/plugin_specs.lua | 10 +--------- 2 files changed, 24 insertions(+), 9 deletions(-) create mode 100644 lua/config/nvim-statuscol.lua diff --git a/lua/config/nvim-statuscol.lua b/lua/config/nvim-statuscol.lua new file mode 100644 index 0000000..a0998de --- /dev/null +++ b/lua/config/nvim-statuscol.lua @@ -0,0 +1,23 @@ +local builtin = require("statuscol.builtin") +local ffi = require("statuscol.ffidef") +local C = ffi.C + +-- only show fold level up to this level +local fold_level_limit = 2 +local function foldfunc(args) + local foldinfo = C.fold_info(args.wp, args.lnum) + if foldinfo.level > fold_level_limit then + return " " + end + + return builtin.foldfunc(args) +end + +require("statuscol").setup { + relculright = false, + segments = { + { text = { "%s" }, click = "v:lua.ScSa" }, + { text = { builtin.lnumfunc, " " }, click = "v:lua.ScLa" }, + { text = { foldfunc, " " }, condition = { true, builtin.not_empty }, click = "v:lua.ScFa" }, + }, +} diff --git a/lua/plugin_specs.lua b/lua/plugin_specs.lua index c57fd25..ee87c05 100644 --- a/lua/plugin_specs.lua +++ b/lua/plugin_specs.lua @@ -190,15 +190,7 @@ local plugin_specs = { "luukvbaal/statuscol.nvim", opts = {}, config = function() - local builtin = require("statuscol.builtin") - require("statuscol").setup { - relculright = true, - segments = { - { text = { "%s" }, click = "v:lua.ScSa" }, - { text = { builtin.lnumfunc, " " }, click = "v:lua.ScLa" }, - { text = { builtin.foldfunc, " " }, condition = {true, builtin.not_empty}, click = "v:lua.ScFa" }, - }, - } + require("config.nvim-statuscol") end, }, {