VSCode悬停参数说明不显示的根源在于注释格式错误或语言服务未就绪:JavaScript/TypeScript需用/* /紧贴函数上方,Python需标准docstring并启用Pylance,且须检查文件语言模式、配置文件及扩展冲突。

悬停参数说明不显示?先确认是不是注释格式或语言服务没到位
VSCode 本身不“自定义”参数说明,它只是把语言服务器(如 Pylance、TypeScript Server、Rust Analyzer)解析出的文档内容渲染出来。你看到的 add(a: number, b: number): number 和下方 JSDoc 描述,全靠代码里写的注释 + 对应扩展正确加载。
常见失败现象:悬停只显示函数签名,没有 @param 或 @returns 内容;或者整个提示空白;或者提示里有“Loading…”但一直卡住。
- JavaScript/TypeScript 必须用
/** */块注释,且紧贴函数声明上方——中间不能插空行,也不能用// - Python 要用标准 docstring(Google/NumPy/Sphinx 风格),且需安装并启用
Pylance(不是基础 Python 扩展) - 确保文件右下角语言模式是
javascript、typescript或python,不是Plain Text - TypeScript/JS 项目根目录要有
tsconfig.json或jsconfig.json(哪怕空文件也行),否则类型推导不启动
怎么写才能让悬停正确解析参数说明
不同语言对注释字段敏感,写错一个关键词或缩进,hover 就不展示对应段落。
JavaScript/TypeScript 示例(必须用 /** */,且顺序和关键字严格):
/**
* 计算两个数的和
* @param {number} a - 第一个加数(必需)
* @param {number} [b=0] - 第二个加数(可选,默认为 0)
* @returns {number} 两数之和
*/
function add(a, b = 0) {
return a + b;
}Python 示例(Pylance 默认识别 Google 风格):
def multiply(x: int, y: int) -> int:
"""Multiply two numbers.
<pre class="brush:php;toolbar:false;"><pre class="brush:php;toolbar:false;">Args:
x: The first number.
y: The second number.
Returns:
The product of x and y.
"""
return x * y</code>@param 后必须跟参数名,冒号后接类型(可选)和短横线+说明-
[b=0]表示可选参数,hover 里会标为b?: number - Python 的
Args:和Returns:必须顶格,字段名后跟冒号,下一行缩进写说明 - 修改注释后必须保存文件,hover 内容才刷新——编辑中不实时更新
为什么改了注释还是没反应?排查这几点
不是注释没写对,就是底层服务被阻断或覆盖了。
- 检查
editor.hover.enabled是否为true(默认是,但可能被工作区设置覆盖) - 打开命令面板(
Ctrl+Shift+P),运行Developer: Toggle Developer Tools,切到 Console,悬停时看有没有报错,比如No hover provider found for 'python' - 临时禁用 Copilot、Sesame AI、ESLint 等可能劫持 hover 的扩展,再试
- 确认你改的是当前项目下的
.vscode/settings.json,而不是用户全局设置——工作区设置优先级更高 - 大型项目首次打开时,右下角若显示
Loading...,等几秒再悬停;状态栏图标停止旋转才算就绪
第三方库没参数说明?补 @types 或配置扩展专属选项
像 lodash、axios 这类库,悬停只显示类型而无文档,是因为缺少类型声明文件。
- npm 项目:运行
npm install --save-dev @types/lodash @types/axios - Python 项目:确保
python.analysis.extraPaths包含你自定义模块路径,否则 Pylance 找不到 docstring - 某些扩展支持专属 hover 配置,例如 Volar v1.10+ 可设
volar.hover.delay,Rust Analyzer 不暴露 delay,但可通过rust-analyzer.hoverActions.enable控制是否显示操作按钮 - 不想显示 MDN 链接但保留参数说明?关掉
html.suggest.html5和css.mdnsuggest,再Developer: Reload Window
真正需要“自定义”非标准内容(比如注入外部 API 文档、DSL 语义),就得写插件注册 vscode.languages.registerHoverProvider,但 95% 的日常需求,靠规范注释 + 正确语言服务就足够了——别跳过确认 languageId 和 documentSelector 匹配这一步,这是插件 hover 失效最常忽略的点。


















