diff options
Diffstat (limited to 'runtime/lua/vim')
-rw-r--r-- | runtime/lua/vim/lsp.lua | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua index 6c23c24220..bb4e1cd28f 100644 --- a/runtime/lua/vim/lsp.lua +++ b/runtime/lua/vim/lsp.lua @@ -1365,16 +1365,26 @@ end --- Provides an interface between the built-in client and a `foldexpr` function. --- ---- To use, check for the "textDocument/foldingRange" capability in an ---- |LspAttach| autocommand. Example: +--- To use, set 'foldmethod' to "expr" and set the value of 'foldexpr': --- --- ```lua +--- vim.o.foldmethod = 'expr' +--- vim.o.foldexpr = 'v:lua.vim.lsp.foldexpr()' +--- ``` +--- +--- Or use it only when supported by checking for the "textDocument/foldingRange" +--- capability in an |LspAttach| autocommand. Example: +--- +--- ```lua +--- vim.o.foldmethod = 'expr' +--- -- Default to treesitter folding +--- vim.o.foldexpr = 'v:lua.vim.treesitter.foldexpr()' +--- -- Prefer LSP folding if client supports it --- vim.api.nvim_create_autocmd('LspAttach', { --- callback = function(args) --- local client = vim.lsp.get_client_by_id(args.data.client_id) --- if client:supports_method('textDocument/foldingRange') then --- local win = vim.api.nvim_get_current_win() ---- vim.wo[win][0].foldmethod = 'expr' --- vim.wo[win][0].foldexpr = 'v:lua.vim.lsp.foldexpr()' --- end --- end, |