nvim: make nvim-ufo use statuscolumn (pretty)

dev-docs
Moritz Böhme 2023-03-05 14:02:54 +01:00
parent 04dacde028
commit 6b84758a6c
Signed by: moritz
GPG Key ID: 970C6E89EB0547A9
1 changed files with 28 additions and 0 deletions

View File

@ -145,6 +145,34 @@ vim.o.foldcolumn = "1" -- '0' is not bad
vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value
vim.o.foldlevelstart = 99
vim.o.foldenable = true
vim.o.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]]
vim.o.statuscolumn = "%= "
-- FIXME: figure out how to put on the other side without having to do a lot of shifting
.. "%s" -- sign column
.. "%{%" -- evaluate this, and then evaluate what it returns
.. "&number ?"
.. "(v:relnum ?"
-- when showing relative numbers, make sure to pad so things don't shift as you move the cursor
.. 'printf("%"..len(line("$")).."s", v:relnum)'
.. ":"
.. "v:lnum"
.. ")"
.. ":"
.. '""'
.. " " -- space between lines and fold
.. "%}"
.. "%= "
.. "%#FoldColumn#" -- highlight group for fold
.. "%{" -- expression for showing fold expand/colapse
.. "foldlevel(v:lnum) > foldlevel(v:lnum - 1)" -- any folds?
.. "? (foldclosed(v:lnum) == -1" -- currently open?
.. '? ""' -- point down
.. ': ""' -- point to right
.. ")"
.. ': " "' -- blank for no fold, or inside fold
.. "}"
.. "%= " -- spacing between end of column and start of text
-- Using ufo provider need remap `zR` and `zM`. If Neovim is 0.6.1, remap yourself
wk.register({
z = {