IntelliSense不弹出主因是语言服务未启动,需确认文件语言识别、安装对应扩展、检查语言服务器是否正常运行;提示为空多因配置缺失或项目环境不全;部分文件失效常因嵌套语言模式识别失败,如Vue需Volar启用Take Over Mode。

IntelliSense 完全不弹出,连基础变量名都不提示
这通常不是配置问题,而是语言服务根本没启动。先确认当前文件是否被 VSCode 正确识别为对应语言——看右下角状态栏的 Plain Text 或 JavaScript 等标签,如果显示的是 Plain Text,点击它手动选成正确语言(比如 Python 或 TypeScript)。
接着检查是否安装了对应语言的官方扩展:Python 需要 ms-python.python,TypeScript/JavaScript 依赖 vscode.typescript-language-features(内置但可能被禁用),Vue 项目还得装 Vue.volar(注意不是已停更的 Vetur)。
- 打开命令面板(
Ctrl+Shift+P/Cmd+Shift+P),运行Developer: Toggle Developer Tools,切换到 Console 标签页,输入IntelliSense或查看是否有Failed to start language server报错 - 终端中执行
which tsserver(TS)或python -m pylsp --version(Python + pylsp),确认语言服务器可执行文件存在且权限正常 - 临时禁用所有非必要扩展(尤其是代码格式化、AI 补全类插件),再重启 VSCode,排除插件冲突
提示出现但内容为空、只显示“Loading…”或卡住
这是语言服务器启动了但卡在初始化阶段,常见于项目根目录缺少必要配置文件,或工作区过大导致分析超时。
以 TypeScript 为例:tsconfig.json 缺失或 include 路径配置错误,会导致 tsserver 无法确定哪些文件参与类型检查,从而不提供补全;Python 中若未指定 python.defaultInterpreterPath 或解释器路径下没有 pip install python-language-server(或 Pylance 所需的 pyright),也会让提示停滞。
- 在项目根目录运行
npm init -y && npx tsc --init(TS)或python -m venv .venv && source .venv/bin/activate && pip install pyright(Python),快速补全基础环境 - 打开设置(
Ctrl+,),搜索editor.quickSuggestions,确保其值为{"other": true, "comments": false, "strings": false}(默认即可),避免被意外关闭 - VSCode 设置中检查
typescript.preferences.includePackageJsonAutoImports是否设为"auto",否则 import 提示可能静默失效
部分文件有提示,部分没有(比如 .vue 单文件里 script 区块失效)
本质是语言模式嵌套识别失败。VSCode 对 这类区块的语法支持依赖扩展对混合语言的解析能力,Volar 和 TypeScript 插件必须协同工作。
典型症状:.vue 文件里 ref() 不提示,但单独打开一个 .ts 文件就能提示。此时大概率是 Volar 的 Take Over Mode 没启用,或与旧版 Vetur 冲突残留。
- 关闭 VSCode,删除
~/.vscode/extensions/vue.volar-*目录下所有版本,重新安装最新Vue.volar - 右键 .vue 文件 →
Change Language Mode→ 选Vue(不是 HTML 或 TypeScript),再按Ctrl+Shift+P运行Volar: Take Over Mode(会要求重启) - 确认
settings.json中没有残留"vetur.*"配置项,它们会干扰 Volar
{
"typescript.preferences.importModuleSpecifierEnding": "js",
"javascript.suggest.autoImports": true,
"editor.suggest.showClasses": true,
"editor.suggest.showFunctions": true,
"editor.suggest.showVariables": true
}
IntelliSense 恢复后仍不稳定?重点盯住 node_modules 是否过大、tsconfig.json 中 exclude 是否误删了 "./src/**/*"、以及项目是否启用了 pnpm 的 shamefully-hoist 导致类型声明路径错乱——这些细节比重装插件更容易被忽略。









