vscode智能代码补全生效需同时满足三条件:语言服务器已加载、文件语言模式正确、项目具备可解析的类型/路径上下文;缺一则os.无方法、axios.get无参数提示、@/components无响应。

VSCode 的智能代码补全(IntelliSense)不是“打开就灵”的功能,它是否生效、有多准,取决于语言服务器是否加载、当前文件是否被识别为对应语言、项目是否有可解析的类型上下文——三者缺一,os. 不出方法、axios.get 没参数提示、@/components/Button 按 . 没响应,都是必然结果。
确认语言模式和语言服务器已就位
右下角状态栏显示的是 Plain Text 还是 Python?如果是前者,editor.quickSuggestions 设成 true 也毫无作用。很多 JS 文件因后缀是 .jsx 或 .vue 被识别为 HTML,导致 console. 没提示。
- 按
Ctrl+Shift+P→ 输入Change Language Mode→ 手动选对语言(尤其注意.pyi、.ts、.vue等易错配后缀) - 写一行明显报错的代码测试服务是否接管:TypeScript 中输
const a: number = 'hello';,没红色波浪线?说明 TS Server 没启动;Python 中输np.arra不提示array?大概率Pylance没加载 - 打开输出面板(
Ctrl+Shift+U),切换到Python或TypeScript Server日志,搜Starting或error
Python 补全必须用 ms-python.python + Pylance
搜“Python”装了十几个扩展?别信图标和下载量。真正起作用的是 ms-python.python(微软官方),且必须确保其内置的 Pylance 已激活。装错或残留旧版扩展(如 tht13.python)会导致 import os 后 os. 只列出 __name__ 这类基础属性。
- 卸载所有非
ms-python.python的 Python 相关扩展(特别是已停更的旧版python) - 打开设置 JSON(
Ctrl+Shift+P→Preferences: Open Settings (JSON)),确认"python.languageServer": "Pylance"(默认值,但有人手动改成"Jedi"导致参数提示丢失) - 按
Ctrl+Shift+P→Python: Select Interpreter,选一个有效环境(否则import numpy后numpy.无方法列表) - 重启 VSCode,开
.py文件输os.验证是否弹出完整方法
JS/TS 补全依赖 jsconfig.json 或 tsconfig.json
没有 jsconfig.json(JS 项目)或 tsconfig.json(TS 项目),VSCode 就把整个项目当单个记事本处理:import utils from './utils' 后 utils. 不出函数,不是插件问题,是项目“没身份”。删掉配置文件立刻退化,就是它在起作用的证据。
- 在项目根目录新建
jsconfig.json,至少包含:{ "compilerOptions": { "module": "nodenext", "target": "es2020", "allowJs": true, "checkJs": true, "moduleResolution": "nodenext" } } - 路径别名(如
@/components)必须显式声明:"compilerOptions": { "baseUrl": ".", "paths": { "@/*": ["src/*"] } },否则补全找不到目标 - 改完立刻按
Ctrl+Shift+P→TypeScript: Restart TS server,不重启等于没改 - 第三方库(如
axios、lodash)需装对应类型包:npm install --save-dev @types/axios,否则只有函数名,没有参数提示
settings.json 关键配置必须手动写
图形界面设置无法覆盖全部字段,editor.quickSuggestions 这类核心项必须直接编辑 settings.json(全局或工作区),否则改了也白搭。
-
"editor.quickSuggestions": { "other": true, "comments": false, "strings": true }——strings设为true是路径补全(如import './')的前提 -
"editor.suggestOnTriggerCharacters": true—— 否则输入.、:、(不会自动拉建议框 -
"editor.quickSuggestionsDelay": 250—— 太低(如0)会频繁弹窗,太高(如1000)则响应迟钝 -
"editor.suggest.showClasses": true和"editor.suggest.showFunctions": true—— 控制类名/函数名是否进补全列表,IntelliCode 依赖这些开关
最常被忽略的是:补全质量不取决于“开了多少开关”,而取决于语言服务器有没有真正加载、类型信息有没有被正确索引。哪怕所有设置都对,jsconfig.json 缺失或 Pylance 未激活,utils. 依然只会返回空荡荡的建议框。











