VSCode代码补全差主因是LSP未正确启用或配置错误:需检查状态栏语言模式、输出面板日志,Python须用Pylance并选对解释器,JS/TS需jsconfig.json/tsconfig.json,关键设置如quickSuggestions、suggestOnTriggerCharacters等必须手动改settings.json。

VSCode 的代码补全效果差,基本不是编辑器本身慢,而是语言服务器(LSP)没真正接管、或关键配置被 GUI 隐藏了——手动改 settings.json 比点几十次鼠标更直接有效。
确认语言服务器是否加载成功
补全卡在“正在分析…”、os. 只列 __name__、axios.get 没参数提示,大概率是 LSP 没跑起来。
- 右下角状态栏必须显示具体语言名(如
TypeScript React、Python),不能是Plain Text或空白;点它可手动切换语言模式 - 输一行明显报错的代码验证:TypeScript 中写
const a: number = 'hello';,没红色波浪线?说明 TS Server 未启动 - 打开输出面板(
Ctrl+Shift+U),切换到对应语言服务器日志(如Python或TypeScript Server),搜Starting或error
Python 补全必须用 Pylance + 正确解释器
装了十几个 Python 扩展?真正起作用的只有 ms-python.python,且必须确保其内置的 Pylance 已启用。
- 按
Ctrl+Shift+P输入Python: Select Interpreter,选对虚拟环境路径(如./venv/bin/python) - 打开
settings.json,确认"python.languageServer": "Pylance"(不是"Default"或空) - 卸载所有非官方扩展(尤其是
tht13.python、旧版python),它们会静默禁用Pylance - 关掉
python.analysis.autoSearchPaths(默认true是性能杀手),改为false,再手动配python.analysis.extraPaths(如["src", "tests"])
JS/TS 补全依赖 jsconfig.json 或 tsconfig.json
没有这个文件,VSCode 就把整个项目当单个记事本处理:import utils from './utils' 后 utils. 不出函数,不是插件问题,是项目“没身份”。
- 在项目根目录新建
jsconfig.json(JS)或tsconfig.json(TS),至少包含"include": ["src/**/*"] -
"exclude"必须写清楚,如["**/node_modules", "**/__pycache__"];settings.json里的files.exclude对 LSP 无效 - 别设
"typeCheckingMode": "strict",会显著拖慢补全响应;"basic"足够日常使用 - 路径别名(如
@/components)必须在compilerOptions.baseUrl和paths里声明,否则 LSP 解析不到
补全延迟和候选缺失的关键设置
这些字段 GUI 设置界面不暴露,但直接影响你打字时“有没有提示”“提示排第几”“按 . 后弹不弹”。
-
"editor.quickSuggestions": {"other": true, "comments": false, "strings": false}—— 字符串里开补全是干扰源;普通代码块必须开 -
"editor.suggestOnTriggerCharacters": true—— 确保输入.、(、:后自动弹窗;Python 属性访问、TS 方法调用全靠它触发 -
"editor.suggest.localityBonus": true—— 让当前文件中定义的函数/变量排在跨模块导入项前面,减少翻页成本 -
"editor.suggest.showKeywords": true—— 关掉它,if、return、async就不会出现在列表里 -
"editor.quickSuggestionsDelay": 200—— 默认1000ms,设成150–300可缓解“打完字才弹”的滞后感
最常被忽略的是:补全失效时第一反应不是查 settings.json,而是重装插件;其实多数时候,只是 python.defaultInterpreterPath 指向了系统 Python,或者 tsconfig.json 被放在子目录里没被识别到。


















