33 lines
964 B
Lua
33 lines
964 B
Lua
---@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,
|
|
},
|
|
}
|