补全列表不显示函数名或参数,需开启"editor.suggest.showfunctions"和"editor.suggest.showmethods";按.无反应因triggercharacters由语言服务器决定;弹窗高度/密度可通过editor.suggestmaxvisiblesuggestions等三项配置调整。

补全列表里看不到函数名或参数?检查这几个开关
补全列表只显示变量名、不显示函数或方法,大概率是几个关键开关被关了。VSCode 默认会过滤掉部分类型,不是语言服务器没返回,而是编辑器主动藏起来了。
-
"editor.suggest.showFunctions"必须设为true,否则函数名直接不出现在候选里 -
"editor.suggest.showMethods"同理,类方法、实例方法靠它控制显隐 -
"editor.suggest.showVariables"关了就看不到当前作用域的变量,哪怕它们确实存在 -
"editor.suggest.snippetsPreventQuickSuggestions"设为true时,写for会优先弹代码片段,把函数补全挤到后面甚至压根不显示
为什么按 . 没反应?别动 triggerCharacters
很多人想让下划线 _ 或数字后也自动弹建议,于是去改 triggerCharacters——这基本无效。真正决定“输什么字符后触发”的是语言服务器(比如 Pylance、tsserver)自己声明的列表,_ 几乎从不在其中,这不是 VSCode 的 bug,是设计如此。
- 你无法通过
settings.json全局覆盖语言服务器的triggerCharacters -
editor.suggestOnTriggerCharacters默认为true,但它只响应语言服务器已声明的字符(如.、:、(),对_无感 - 真需要在
_后补全,用Ctrl+Space(Windows/Linux)或Cmd+Space(macOS)手动唤出更可靠
弹窗太矮/太密/翻页太多?调这三个值
补全弹窗宽度不可调,但高度和密度能控。别碰 CSS,真会破坏渲染逻辑;重点调这三个配置项,必须写进 settings.json 才稳定生效。
-
editor.suggestMaxVisibleSuggestions:控制单页最多显示几条,默认12;设为0表示不限,但实际受屏幕高度 60% 限制 -
editor.suggestFontSize:设为14可提升可读性,但单页条目会变少 -
editor.suggestLineHeight:默认0(自动计算),设为24或26能拉开行距,缓解密集压迫感
注意:某些插件(如 TabNine、IntelliSense for Python)会接管面板渲染,此时这三个配置完全失效。
改了设置没变化?先看这三处覆盖源
写完配置却没效果,90% 是被更高优先级的设置覆盖了,而不是配置本身错。
- 项目根目录下的
.vscode/settings.json会覆盖全局设置,先打开它确认有没有同名 key - 用了高对比度主题或第三方主题,可能硬编码了
.suggest-widget最小高度,导致editor.suggestLineHeight失效 - macOS 启用了系统级“缩放”(非分辨率切换),会导致面板渲染失真——看着像字体变小,其实是缩放未对齐,此时应优先调
window.zoomLevel
语言服务器是否真在跑,比设置本身更重要:右下角语言模式不对、jsconfig.json/tsconfig.json 缺失、Python 解释器路径指向系统 Python 而非虚拟环境,都会让补全引擎彻底静默。











