VSCode代码补全依赖语言服务器(LSP)及对应扩展,非自身功能;需安装Pylance、配置正确tsconfig/jsconfig、选择正确Python解释器,并确保类型定义可用。

VSCode 本身不自带完整代码补全能力,真正起作用的是语言服务器(LSP)和对应扩展——没装对扩展,再好的设置也白搭。
为什么 Ctrl+Space 没反应或只提示基础变量?
这是最常见误判:用户以为 VSCode “该有” Python/JS 补全,其实它默认只识别语法结构(如括号、引号),不理解语义。补全依赖语言服务是否就绪。
- 检查状态栏右下角:是否有
Python、JavaScript (ES6)或Node.js等语言标识,且无感叹号⚠️ - 打开命令面板(
Ctrl+Shift+P),运行Developer: Toggle Developer Tools,看 Console 是否报Failed to start language server - TypeScript 项目若没
tsconfig.json,tsserver可能降级为“仅文件内补全”,跨文件 import 不提示
Python 补全为何不显示函数参数或文档?
官方 Python 扩展默认用 Pylance(需单独启用),而非旧版 Microsoft Python Language Server。Pylance 才支持签名帮助、hover 文档、类型推导。
- 确保已安装
Pylance扩展(作者 Microsoft),且未被禁用 - 在
settings.json中确认:"python.languageServer": "Pylance"(不是"Default"或"Jedi") - 如果用 conda/virtualenv,必须在 VSCode 中通过
Python: Select Interpreter指向正确环境,否则 Pylance 找不到包里的 stubs -
import numpy as np后输入np.卡顿?首次会加载类型存根,等几秒;后续应秒出。若持续卡顿,检查pyright日志(输出面板 → Python)
JavaScript/TypeScript 补全突然变弱?
多半是 jsconfig.json 或 tsconfig.json 配置不当,导致模块解析失败,LSP 无法追踪引用。
- TypeScript 项目必须有
tsconfig.json,哪怕只有{"compilerOptions": {"allowJs": true}} - JS 项目需
jsconfig.json,关键字段:"checkJs": true和"maxNodeModuleJsDepth": 2(否则 node_modules 里 .d.ts 不生效) - 使用
require('./utils')但没写后缀?VSCode 默认不自动补全.js,可在jsconfig.json加"resolveJsonModule": true并配"moduleResolution": "node" - 第三方库(如
lodash)没提示?确认已安装@types/lodash,且node_modules/@types在工作区根目录下
补全质量高度依赖语言服务的启动状态和配置粒度,而不是 VSCode 主体设置。一个没生效的 tsconfig.json,比十个 "editor.suggest.*" 设置都管用。










