VSCode IntelliSense提示弹窗默认不换行,因monaco-editor tooltip系统未提供原生换行配置;可通过注入CSS强制折行,但需重启且兼容性有限;推荐使用Ctrl+K Ctrl+I唤出支持换行的Hover面板或F12跳转定义。

VSCode提示弹窗(IntelliSense)默认不换行,怎么让它折行显示?
VSCode 的 IntelliSense 提示弹窗(比如函数签名、参数说明、文档注释)默认是单行截断+省略号(…),不会自动换行。这不是 bug,而是编辑器对弹窗尺寸的主动限制——它压根没提供原生配置项来开启弹窗内的文字换行。
为什么 editor.wordWrap 对提示弹窗无效?
editor.wordWrap 只作用于编辑器主文本区域,和弹窗渲染完全无关。提示弹窗由 VS Code 的 monaco-editor 内部 tooltip 系统控制,其样式由 CSS 决定,且不暴露用户可调的换行开关。你改了全局或语言级的 editor.wordWrap,对悬浮提示里的 /** @param {string} url - 这里是一段超长描述,包含多个逗号分隔的约束条件… */ 没有任何影响。
能做的有限干预:靠 CSS 注入 + 重启(仅限桌面版)
如果你真需要让提示弹窗内文字折行(比如看长 JSDoc 或 TypeScript 类型定义),唯一可行路径是手动注入 CSS:
- 找到 VS Code 用户数据目录下的
styles.css(路径因系统而异:~/.vscode/Code/User/styles.csson Linux/macOS,%USERPROFILE%\AppData\Roaming\Code\User\styles.csson Windows) - 创建该文件(若不存在),写入以下内容:
/* 强制 IntelliSense tooltip 折行 */
.monaco-editor .suggest-widget .monaco-list-row .monaco-highlighted-label,
.monaco-editor .parameter-hints-widget .parameter-hints,
.monaco-editor .hover-content {
white-space: pre-wrap !important;
word-break: break-word !important;
}保存后必须完全退出 VS Code 并重新启动(热重载不生效)。效果取决于具体插件实现——TypeScript 官方插件通常响应良好,但部分第三方语言服务器(如某些 Python LSP)可能忽略该样式。
更现实的替代方案:别依赖弹窗,用快捷键呼出完整文档
与其折腾不可靠的 CSS,不如用已知稳定的方式获取完整描述:
-
Ctrl+Space(Windows/Linux)或Cmd+Space(macOS)触发补全后,按Ctrl+K Ctrl+I(或Cmd+K Cmd+I)打开当前符号的完整文档面板(Hover),它支持滚动和自然换行 - 把光标停在符号上,按
Ctrl+K Ctrl+I直接唤出 Hover 面板,比弹窗更可靠 - 对 JSDoc / TS Doc,直接点击右上角「Go to Definition」(
F12)跳转到源码注释处,那里天然支持editor.wordWrap
弹窗换行不是设计目标,强行 hack 容易被更新覆盖,且不同插件兼容性差异大。真正需要读长文档时,Hover 面板或跳转定义才是 VS Code 原生支持的正解。


















