vscode智能提示失效主因是语言服务器未运行或项目配置错误:需确认右下角语言模式正确、存在tsconfig.json/jsconfig.json、python.defaultinterpreterpath路径准确,且editor.quicksuggestions设为{"other": true, "comments": false, "strings": false}。

VSCode 的智能提示(IntelliSense)不是靠“开发者工具”开启的,而是由语言服务器(LSP)和项目配置共同驱动的。打开 Developer: Toggle Developer Tools 只能看到控制台报错,对补全功能本身毫无作用——真正要动的是设置、配置文件和扩展。
确认语言模式和语言服务器是否就位
智能提示失效,90% 情况下是 VSCode 根本没识别出你在写什么语言,或者对应的语言服务压根没跑起来:
- 右下角状态栏点击当前语言名(比如 “Plain Text”),手动选成
TypeScript、JavaScript、Python等,不能只靠文件后缀自动判断 - 按
Ctrl+Shift+P运行Developer: Toggle Developer Tools,在 Console 里搜Failed to start language server—— 如果有,说明 Pylance、TypeScript Server 或其他 LSP 启动失败 - TS/JS 项目必须存在
tsconfig.json或jsconfig.json;Python 项目必须正确配置python.defaultInterpreterPath指向虚拟环境解释器路径
检查 editor.quickSuggestions 是否被误关
这个设置控制“敲字时是否弹建议”,但它不是布尔值开关,而是一个对象。设成 true 或 false 都会失效:
- 必须设为
{"other": true, "comments": false, "strings": false},否则函数名、变量名等基础补全在普通代码块中完全不触发 - 如果只在字符串里想提示(比如
require("xxx")),可单独开"strings": true,但默认不推荐 - 该配置可全局设置,也可按语言覆盖:
"javascript.editor.quickSuggestions": {"other": true}
确保 TypeScript 类型系统真正接入(插件/TS 项目专用)
写 VSCode 插件或纯 TS 项目时,vscode. 没提示,不是插件问题,是类型没接上:
- 运行
npm install --save-dev @types/vscode—— 这是所有 API 提示的源头,缺了就只剩any -
tsconfig.json中必须含"typeRoots": ["node_modules/@types"],否则 TS 编译器找不到声明文件 - 按
Ctrl+Shift+P运行TypeScript: Select TypeScript Version,选Use Workspace Version(前提是node_modules/typescript存在) - 改完配置后,务必执行
TypeScript: Restart TS Server,不是重启窗口,更不是重装插件
别让冲突扩展悄悄关掉函数提示
即使语言服务正常,某些设置项被关掉也会让补全列表“变薄”——比如你打 os. 却看不到 os.path.join:
-
"editor.suggest.showFunctions": true—— 关了就真不显示任何函数 -
"editor.suggest.showVariables": true—— 关了连当前作用域变量都不列 -
"editor.suggest.snippetsPreventQuickSuggestions": false—— 设为true时,写for会优先弹代码片段,把函数补全挤到后面甚至不出现 - 禁用 Auto Import、Path Intellisense 等名字带 “import” 或 “path” 的扩展,它们常和 npm Intellisense 抢模块解析权
最易被忽略的一点:VSCode 不会主动扫描 node_modules 外的代码,也不懂你的 monorepo 结构。如果你的模块是本地 link 的、放在 ../libs 下,或者用了 pnpm workspace,光靠默认配置是看不到提示的——这时候得靠 jsconfig.json 的 compilerOptions.paths 或 TS 的 references 手动告诉它“去哪找”。











