补全失效主因是语言服务未连接、配置被覆盖或缓存异常;先检查右下角是否为plain text或unknown,点击切换正确语言模式,并确认editor.quicksuggestions和editor.tabcompletion已启用,再排查项目配置与语言服务器状态。

补全失效不是插件坏了,而是 VSCode 没认出你在写什么语言、语言服务器没跑起来,或者关键开关被关掉了——90% 的问题,三分钟内能定位到根因。
右下角显示 Plain Text 或 Unknown 怎么办
这是最常见也最容易被忽略的起点。VSCode 不知道当前文件属于哪种语言,就不会启动任何语言服务器,IntelliSense 完全静默。
- 点击右下角状态栏中显示的
Plain Text或Unknown,手动选成JavaScript、TypeScript、Python、Vue等正确语言模式 - 未保存的临时文件(如
Untitled-1)默认就是Plain Text,务必先保存为带后缀的文件(如index.ts)再测试 - 检查
files.associations配置是否误配:比如"*.js": "typescript"会让 JS 文件走 TS 解析,类型校验错乱、补全降级 -
.vue文件必须选Vue(不是Vue HTML或HTML),否则Volar不接管,defineProps、ref等补全全失效
editor.quickSuggestions 和 editor.tabCompletion 没开
这两个设置控制补全“弹不弹”和“Tab 键管不管用”,它们默认在部分语言里是关闭的,并非 bug。
- 打开设置(
Ctrl + ,),搜quick suggestions,确保editor.quickSuggestions在other、strings、comments三项都设为true;特别注意strings必须为true,否则className="text-"、import路径里不提示 - 搜
tabCompletion,把editor.tabCompletion设为"onlySnippets"(推荐)或"on";设成"off"时,Tab 只缩进,不触发补全 - 这些开关在 UI 设置界面改,只影响当前工作区;要全局生效,得确认
settings.json里有对应项,且没被 workspace 配置覆盖
tsserver / Pylance / gopls 卡死或没加载
补全空白、悬停无类型、跳转定义失效,大概率是语言服务器进程挂了、没启动、或加载失败——UI 上不报错,但日志里全是线索。
- 命令面板(
Ctrl + Shift + P)运行Developer: Restart Language Server:对 TypeScript/JS 是重启tsserver,对 Python 是重启Pylance,Go 项目则重启gopls - 设
"typescript.tsserver.log": "verbose"或"python.analysis.logLevel": "Trace",然后看「输出」面板 → 选TypeScript Server Log或Python Language Server - 常见日志线索:
Failed to load project(tsconfig.json路径错)、ENOENT: no such file(工作区根路径识别错误)、Cannot read property 'map' of undefined(插件版本不兼容) - Windows 用户可任务管理器杀掉残留的
node.exe进程;macOS/Linux 可执行pkill -f tsserver或pkill -f pylance
jsconfig.json / tsconfig.json / tailwind.config.js 缺失或配置错
没有这些配置文件,VSCode 就把整个项目当单个 JS 文件处理:路径别名(如 @/utils)、第三方库类型定义、import 模块解析全部失效。补全是“盲猜”,跳转是“摆设”。
- TS/JS 项目必须有
tsconfig.json或jsconfig.json(哪怕内容只是{}),否则tsserver退化为只认console和document - Tailwind 补全要求
tailwind.config.js在项目根目录,且用module.exports = {}导出;content字段必须显式列出扩展名,例如["./src/**/*.{js,jsx,ts,tsx,html,vue}"] - 用了别名(如
@/components)?必须加baseUrl和paths,例如:"@/*": ["src/*"] - 改完立刻执行
Ctrl + Shift + P→TypeScript: Restart TS server,不重启等于没改
真正卡住的地方往往不在设置里,而在日志里——补全失效时,output 面板里那几行 Failed to load project 或 ENOENT 才是唯一可信的线索。











