summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.config/nvim/plugin/50-fold.lua23
1 files changed, 14 insertions, 9 deletions
diff --git a/.config/nvim/plugin/50-fold.lua b/.config/nvim/plugin/50-fold.lua
index c7013bb..27cb5e5 100644
--- a/.config/nvim/plugin/50-fold.lua
+++ b/.config/nvim/plugin/50-fold.lua
@@ -7,16 +7,21 @@
-- Without foldmethod set to manual folds are created while writing in insert mode which is annoying
--
-- Skip floating windows, because they often are documentation (and thus should be visible by default)
+local function init_folds()
+ if vim.api.nvim_win_get_config(0).relative ~= "" or vim.treesitter.get_parser(0) == nil then
+ return
+ end
+ vim.opt_local.foldexpr = "v:lua.vim.treesitter.foldexpr()"
+ vim.opt_local.foldmethod = "expr"
+ vim.cmd.normal({ "zX", bang = true })
+ vim.opt_local.foldmethod = "manual"
+end
+
+-- Initial fold setup
vim.api.nvim_create_autocmd("FileType", {
desc = "Initialize folds",
group = vim.g.dotfiles.augroup,
- callback = function(ev)
- if vim.api.nvim_win_get_config(0).relative ~= "" or vim.treesitter.get_parser(0) == nil then
- return
- end
- vim.opt_local.foldexpr = "v:lua.vim.treesitter.foldexpr()"
- vim.opt_local.foldmethod = "expr"
- vim.cmd.normal({ "zX", bang = true })
- vim.opt_local.foldmethod = "manual"
- end,
+ callback = init_folds,
})
+
+vim.api.nvim_create_user_command("FoldInit", init_folds, { desc = "(Re)initialize folds" })