-- return { -- { 'kevinhwang91/nvim-ufo', -- dependecies = { 'kevinhwang91/promise-async' }, -- config = function() -- vim.o.foldcolumn = "2" -- '0' is not bad -- vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value -- vim.o.foldlevelstart = 99 -- vim.o.foldenable = true -- vim.o.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]] -- -- -- Using ufo provider need remap `zR` and `zM`. If Neovim is 0.6.1, remap yourself -- vim.keymap.set('n', 'zR', require('ufo').openAllFolds) -- vim.keymap.set('n', 'zM', require('ufo').closeAllFolds) -- -- -- -- Option 2: nvim lsp as LSP client -- -- Tell the server the capability of foldingRange, -- -- Neovim hasn't added foldingRange to default capabilities, users must add it manually -- local capabilities = vim.lsp.protocol.make_client_capabilities() -- capabilities.textDocument.foldingRange = { -- dynamicRegistration = false, -- lineFoldingOnly = true -- } -- local language_servers = require("lspconfig").util.available_servers() -- or list servers manually like {'gopls', 'clangd'} -- for _, ls in ipairs(language_servers) do -- require('lspconfig')[ls].setup({ -- capabilities = capabilities -- -- you can add other fields for setting up lsp server in this table -- }) -- end -- require('ufo').setup() -- end, -- } -- }