VSCode代码补全失效_IntelliSense无法正常工作

13次阅读

vscode IntelliSense 失效主因是语言服务未启动、配置被覆盖或缓存异常;需检查语言模式识别、文件关联、扩展启用状态、jsconfig/tsconfig 配置、重启语言服务器及查看详细日志定位根因。

VSCode代码补全失效_IntelliSense无法正常工作

VSCode 的 IntelliSense 失效,通常不是“坏了”,而是语言服务没起来、配置被覆盖、或缓存卡住了——先别急着重装插件。

检查当前文件是否被正确识别为对应语言

IntelliSense 依赖 VSCode 知道你在写什么语言。右下角状态栏显示的 Plain TextUnknown 是典型信号。

  • 点击右下角语言模式(如 Plain Text),选择对应语言(例如 javaScriptpythontypescript
  • 确认文件后缀是否匹配:比如 .ts 文件没被识别成 TypeScript,可能因文件关联被手动改过
  • 检查 settings.json 中是否有误配的 "files.associations" 覆盖了默认行为

确认对应语言扩展已启用且未被禁用

官方 Python 扩展、TypeScript 自带支持、ESLint 插件等都可能影响补全链路;禁用或冲突会直接切断 IntelliSense。

  • 打开扩展面板(Ctrl+Shift+X),搜索 Python / javascript and TypeScript Nightly / ESLint,确认状态为「启用」
  • 临时禁用所有第三方扩展,只留官方语言包,测试是否恢复——常见冲突来自 Prettierauto Rename Tag 或老旧的 Path Intellisense
  • 某些项目里 jsconfig.jsontsconfig.json 缺失/路径错误,会导致 TS/JS 语言服务降级为基础模式,补全变弱

重启语言服务器或清除缓存

语言服务器(如 tsserverPylance)卡死或加载失败时,ui 上没报错,但补全就是不动。

  • 命令面板(Ctrl+Shift+P)运行:Developer: Restart Language Server(部分扩展支持)
  • 更彻底的做法:关闭 VSCode → 删除 $HOME/.vscode/extensions/.../out 下缓存目录(如 ms-python.pylance-*distout),再重启
  • windows 用户注意:杀掉后台残留的 node.exe 进程(特别是多个 tsserver 占满 CPU 时)

验证 typescript.tsserver.logpython.analysis.logLevel

日志是唯一能确认“服务到底卡在哪”的依据。补全失效时,90% 的真实原因藏在日志里,而不是设置项中。

  • 对 TypeScript/JS:设 "typescript.tsserver.log": "verbose",重启后查看输出面板 → 选 TypeScript Server Log
  • 对 Python:设 "python.analysis.logLevel": "Trace",然后看输出面板 → Python Language Server
  • 常见日志线索:Cannot read Property 'map' of undefined(插件兼容问题)、Failed to load projecttsconfig.json 路径错误)、ENOENT: no such file(工作区根路径识别错)

真正难排查的,往往不是“没开补全”,而是语言服务启动了却加载了错误的项目上下文——比如多根工作区里某个文件夹没配 jsconfig.json,它就退化成无类型补全,看起来像“失效”。

text=ZqhQzanResources