aboutsummaryrefslogtreecommitdiff
path: root/runtime/doc/lsp.txt
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/doc/lsp.txt')
-rw-r--r--runtime/doc/lsp.txt15
1 files changed, 12 insertions, 3 deletions
diff --git a/runtime/doc/lsp.txt b/runtime/doc/lsp.txt
index f13a17cbef..16ea9c18a0 100644
--- a/runtime/doc/lsp.txt
+++ b/runtime/doc/lsp.txt
@@ -882,14 +882,23 @@ foldexpr({lnum}) *vim.lsp.foldexpr()*
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: >lua
+ 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,