nvim: add ufo folding plugin

This commit is contained in:
dogeystamp 2024-11-04 11:10:54 -05:00
parent 749b49bbac
commit 75aa3bc9fa
Signed by: dogeystamp
GPG Key ID: 7225FE3592EFFA38
5 changed files with 43 additions and 7 deletions

12
.gitmodules vendored
View File

@ -14,7 +14,6 @@
# neovim plugins
################
# auto close brackets and quotes
[submodule "src/dot_local/share/nvim/site/pack/3pp/start/external_nvim-cmp"]
path = src/dot_local/share/nvim/site/pack/3pp/opt/external_nvim-cmp
url = https://github.com/hrsh7th/nvim-cmp.git
@ -61,6 +60,17 @@
[submodule "src/dot_local/share/nvim/site/pack/3pp/start/external_cmp_luasnip"]
path = src/dot_local/share/nvim/site/pack/3pp/opt/external_cmp_luasnip
url = https://github.com/saadparwaiz1/cmp_luasnip
# auto-close brackets
[submodule "src/dot_local/share/nvim/site/pack/3pp/opt/external_auto-pairs"]
path = src/dot_local/share/nvim/site/pack/3pp/opt/external_auto-pairs
url = https://github.com/jiangmiao/auto-pairs
# code folding
# coding.lua
[submodule "src/dot_local/share/nvim/site/pack/3pp/opt/external_nvim-ufo"]
path = src/dot_local/share/nvim/site/pack/3pp/opt/external_nvim-ufo
url = https://github.com/kevinhwang91/nvim-ufo
[submodule "src/dot_local/share/nvim/site/pack/3pp/opt/external_promise-async"]
path = src/dot_local/share/nvim/site/pack/3pp/opt/external_promise-async
url = https://github.com/kevinhwang91/promise-async

View File

@ -63,11 +63,6 @@ require 'nvim-treesitter.configs'.setup {
},
}
-- code folding
vim.wo.foldmethod = 'expr'
vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
vim.wo.foldlevel = 99 -- unfold by default
--------
-- auto-pairs for brackets
--------
@ -200,18 +195,45 @@ local servers = {
},
nushell = {},
}
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.foldingRange = {
dynamicRegistration = false,
lineFoldingOnly = true
}
for lsp, sv_settings in pairs(servers) do
-- defaults
local settings = {
on_attach = on_attach,
flags = {
debounce_text_changes = 150,
}
},
capabilities=capabilities,
}
for k, v in pairs(servers[lsp]) do settings[k] = v end
nvim_lsp[lsp].setup(settings)
end
--------
-- code folding
--
-- useful binds include zM (close all folds), zA (recursively toggle fold), and zR (open all folds).
-- see :h usr_28 for more information about folds.
--------
vim.cmd.packadd("promise-async")
vim.cmd.packadd("nvim-ufo")
local ufo = require("ufo")
ufo.setup()
vim.o.foldenable = true
vim.o.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
-- set to '1' to get a column with arrows for folds
vim.o.foldcolumn = '0'
vim.o.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]]
vim.o.foldlevel = 99
vim.o.foldlevelstart = 99
keymap('zM', ufo.closeAllFolds)
keymap('zR', ufo.openAllFolds)
keymap('zm', ufo.closeFoldsWith)
keymap('zr', ufo.openFoldsExceptKinds)
------
-- completions

View File

@ -34,6 +34,8 @@ local styles = colorbuddy.styles
Group.new("Normal", colors.noir_4, colors.none, nil)
Group.new("StatusLine", colors.noir_4, colors.none, styles.bold)
Group.link("MsgArea", groups.Normal)
Group.link("FoldColumn", groups.Normal)
Group.link("Folded", groups.Normal)
Group.new("StatusLineNC", colors.noir_7, colors.none)
Group.link("Gutter", groups.normal)
Group.new("LineNr", colors.noir_8, colors.none, nil)

@ -0,0 +1 @@
Subproject commit 522d719d421fc42b95577d9624048d8348d326ea

@ -0,0 +1 @@
Subproject commit 119e8961014c9bfaf1487bf3c2a393d254f337e2