VSCode悬浮提示无法一键还原,需分三层检查:先确认editor.hover.enabled是否为true;再检查语言服务器(如Pylance/Volar)对应语言ID的hover开关;最后验证LSP就绪状态与JSDoc/docstring格式规范,修改后须保存文件并重载窗口。

关掉的悬浮提示不能靠“一键还原”恢复,因为 VSCode 没有全局 reset hover 的按钮——它由至少三层独立开关控制,必须分层检查、逐项重置。
先确认 editor.hover.enabled 是否被手动关了
这是最常被误动的开关,但只管编辑器原生层(比如变量值预览、基础类型推导),不管语言服务器。如果它被设为 false,settings.json 里会明确出现这一行:
"editor.hover.enabled": false
删掉这行,或改成 true,保存后重启 VSCode。注意:editor.hover.delay 别设成 0,那不是关闭,反而容易触发渲染卡顿甚至闪退。
检查语言服务器是否接管了 hover(Pylance/Volar/TS Server)
即使 editor.hover.enabled 是 true,你悬停 .py 文件仍没提示,大概率是 Pylance 自己关了 hover;.vue 文件没反应,则可能是 Volar 的 vue.editor.hover.enabled 被设为 false。
- 打开命令面板(
Ctrl+Shift+P),运行Developer: Inspect Editor Tokens and Scopes,看右下角显示的语言 ID(比如是typescriptreact,不是typescript) - 在
settings.json中搜索对应语言 ID 块,例如:"[typescriptreact]": {"editor.hover.enabled": true} - Vue 单文件组件还需额外加:
"vue.editor.hover.enabled": true
(Volar 默认强制启用,但某些配置会覆盖它)
别漏掉“伪 hover”:颜色预览、参数面板、MDN 链接
这些视觉上像悬浮提示,但完全不走 editor.hover.enabled 控制流:
- 悬停
#ff0000弹出色板?关colorDecorators.enabled - 输入
fetch(后弹出参数列表?那是editor.parameterHints.enabled - 悬停
document.getElementById跳 MDN 页面?关html.suggest.html5和css.mdnsuggest
它们都得单独设为 true 才能恢复,且改完需执行 Developer: Reload Window 生效,普通重启不够。
最后验证 LSP 是否就绪 + 注释是否规范
哪怕所有开关都开了,hover 还是只显示函数签名、不显示 JSDoc 或 docstring,问题往往不在设置,而在语义层:
- TS/JS 项目缺
tsconfig.json或jsconfig.json(空文件也行)→ 类型服务不启动 - Python 文件右下角显示的是
Plain Text而非Python→ Pylance 根本不加载 - JSDoc 必须紧贴函数定义,中间不能有空行;docstring 要用
"""包裹,且推荐含Args:/Returns:字段 - 修改完注释必须 保存文件,hover 内容不会自动刷新
真正容易被忽略的点是:hover 提示内容依赖语言服务器实时解析,而服务器状态(如右下角旋转图标)和注释格式共同决定你看到什么——设置只是门把手,门后有没有人开门,得看 LSP 和代码本身。











