VSCode 不支持自定义折叠块悬停预览内容,该预览由编辑器 UI 层直接渲染,仅显示最多 3~5 行原始代码,不可通过设置、插件或 API 修改;editor.hover.delay 对其无效,唯一间接影响方式是调整折叠块首行内容。

VSCode 不支持自定义折叠块的悬停预览内容
VSCode 原生不提供修改折叠区域悬停提示(即鼠标悬停在 ▶ 图标上时显示的代码片段)的能力。这个预览是编辑器根据折叠范围内的首行、缩进和上下文自动截取的纯文本快照,无法通过设置、插件或 API 替换为注释说明、函数签名或自定义文案。
为什么改 editor.hover.delay 对折叠预览没用
editor.hover.delay 只控制「语言服务悬停提示」(比如鼠标悬停变量名显示类型)的触发延迟,和折叠箭头旁的预览完全无关。后者由编辑器 UI 层直接渲染,不经过 hover provider,也不读取任何配置项。
- 折叠预览没有延迟概念——只要悬停就立刻显示,且不触发语言服务器
- 它不支持 Markdown、图标、链接,只显示最多 3~5 行原始代码(带缩进)
- 即使禁用
editor.hover.enabled,折叠预览仍正常工作
能间接影响预览效果的唯一方式:控制折叠起始行内容
预览默认取折叠块内「第一行非空、非注释、非缩进空白行」作为标题行。所以你可以靠调整代码结构来“引导”它显示你想看到的内容:
- 在
#region后紧跟一行有意义的注释,例如:# #region 数据处理逻辑 # ← 这行会被优先显示为预览标题
- 避免把
def或function写在折叠块第二行以下——预览可能只显示空行或缩进符 - Python 中若用
indentation折叠策略,预览可能取错行(因无语法锚点),建议保持foldingStrategy: "auto"
别踩坑:第三方插件也做不到真自定义预览
目前没有任何稳定插件能劫持或重写折叠预览的渲染逻辑。所谓“增强折叠”的插件(如 fold-plus)仅扩展快捷键、折叠级别或标记语法,底层仍走 VSCode 原生预览路径。强行注入 DOM 或 monkey patch 编辑器内部模块会导致崩溃或升级后失效。
真正需要语义化折叠说明的场景,建议改用文档注释 + 符号跳转,或者把大段逻辑拆成独立函数——VSCode 对函数名的悬停提示才是可定制、可跳转、带类型信息的完整方案。











