fix(neovim): prefer nvim-treesitter for C# folds

This commit is contained in:
Alexandre Cavalheiro S. Tiago da Silva 2025-02-11 23:25:53 -03:00
parent c547f7ef4c
commit 15defecc74
Signed by: wizardlink
GPG key ID: A5767B54367CFBDF

View file

@ -0,0 +1,32 @@
---@type LazySpec
return {
"kevinhwang91/nvim-ufo",
opts = {
provider_selector = function(_, filetype, _)
---@type table<string, UfoProviderEnum | UfoProviderEnum[]>
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,
},
}