aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim
diff options
context:
space:
mode:
authorRiley Bruins <ribru17@hotmail.com>2025-06-16 13:05:00 -0700
committerGitHub <noreply@github.com>2025-06-16 16:05:00 -0400
commit35756022cbcd16ad72ec1f7cd1fea523da4aba1f (patch)
treebbad8e3d0423285d5dadf27c3c54a2af45e47b38 /runtime/lua/vim
parent492ea28612b2e47e187d6a37f582267655ba79fe (diff)
downloadrneovim-35756022cbcd16ad72ec1f7cd1fea523da4aba1f.tar.gz
rneovim-35756022cbcd16ad72ec1f7cd1fea523da4aba1f.tar.bz2
rneovim-35756022cbcd16ad72ec1f7cd1fea523da4aba1f.zip
fix(lsp): advertise supported fold kinds (#34461)
This commit also makes it so that folds which have an unsupported fold kind have their `kind` ignored.
Diffstat (limited to 'runtime/lua/vim')
-rw-r--r--runtime/lua/vim/lsp/_folding_range.lua18
-rw-r--r--runtime/lua/vim/lsp/protocol.lua3
2 files changed, 18 insertions, 3 deletions
diff --git a/runtime/lua/vim/lsp/_folding_range.lua b/runtime/lua/vim/lsp/_folding_range.lua
index ac7f0e0b9f..365ea40008 100644
--- a/runtime/lua/vim/lsp/_folding_range.lua
+++ b/runtime/lua/vim/lsp/_folding_range.lua
@@ -3,6 +3,13 @@ local log = require('vim.lsp.log')
local ms = require('vim.lsp.protocol').Methods
local api = vim.api
+---@type table<lsp.FoldingRangeKind, true>
+local supported_fold_kinds = {
+ ['comment'] = true,
+ ['imports'] = true,
+ ['region'] = true,
+}
+
local M = {}
---@class (private) vim.lsp.folding_range.BufState
@@ -49,9 +56,14 @@ local function renew(bufnr)
local kind = range.kind
if kind then
- local kinds = row_kinds[start_row] or {}
- kinds[kind] = true
- row_kinds[start_row] = kinds
+ -- Ignore unsupported fold kinds.
+ if supported_fold_kinds[kind] then
+ local kinds = row_kinds[start_row] or {}
+ kinds[kind] = true
+ row_kinds[start_row] = kinds
+ else
+ log.info(('Received unsupported fold kind: "%s"'):format(kind))
+ end
end
for row = start_row, end_row do
diff --git a/runtime/lua/vim/lsp/protocol.lua b/runtime/lua/vim/lsp/protocol.lua
index d85f26c38c..d73c8c08bd 100644
--- a/runtime/lua/vim/lsp/protocol.lua
+++ b/runtime/lua/vim/lsp/protocol.lua
@@ -441,6 +441,9 @@ function protocol.make_client_capabilities()
foldingRange = {
dynamicRegistration = false,
lineFoldingOnly = true,
+ foldingRangeKind = {
+ valueSet = { 'comment', 'imports', 'region' },
+ },
foldingRange = {
collapsedText = true,
},