From 15defecc74373c5a370c01ae057bc1ee50b5ddbb Mon Sep 17 00:00:00 2001 From: "Alexandre Cavalheiro S. Tiago da Silva" Date: Tue, 11 Feb 2025 23:25:53 -0300 Subject: [PATCH] fix(neovim): prefer nvim-treesitter for C# folds --- .../programs/neovim/lua/plugins/nvim-ufo.lua | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 modules/home-manager/programs/neovim/lua/plugins/nvim-ufo.lua diff --git a/modules/home-manager/programs/neovim/lua/plugins/nvim-ufo.lua b/modules/home-manager/programs/neovim/lua/plugins/nvim-ufo.lua new file mode 100644 index 0000000..bc14746 --- /dev/null +++ b/modules/home-manager/programs/neovim/lua/plugins/nvim-ufo.lua @@ -0,0 +1,32 @@ +---@type LazySpec +return { + "kevinhwang91/nvim-ufo", + opts = { + provider_selector = function(_, filetype, _) + ---@type table + local ftDefaults = { + cs = "treesitter", + } + + local function handleFallbackException(bufnr, err, providerName) + if type(err) == "string" and err:match("UfoFallbackException") then + return require("ufo").getFolds(bufnr, providerName) + else + return require("promise").reject(err) + end + end + + return ftDefaults[filetype] + or function(bufnr) + return require("ufo") + .getFolds(bufnr, "lsp") + :catch(function(err) + return handleFallbackException(bufnr, err, "treesitter") + end) + :catch(function(err) + return handleFallbackException(bufnr, err, "indent") + end) + end + end, + }, +}