diff options
| -rw-r--r-- | .config/nvim/plugin/50-fold.lua | 23 |
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" }) |
