问题面板仅显示已触发的诊断信息,不主动检查错误;需安装对应语言扩展(如python、eslint、typescript)、配置语言服务器(lsp)、保存文件并确保检查器启用且路径正确。

问题面板(Problems Panel)本身不主动“查看错误”,它只展示当前工作区中已触发的诊断信息;错误是否出现、是否显示,取决于你有没有配置对应语言的服务和检查器。
为什么问题面板里什么都没有?
最常见原因是:VSCode 默认不内置语言级错误检查能力,typescript、python、eslint 等都需要单独安装扩展并启用。没有运行中的语言服务器(LSP),Problems 面板就是空的。
- 打开一个
.py文件但没装Python扩展 → 不会标红语法错误,Problems里无内容 - 装了
ESLint扩展但项目根目录下没有.eslintrc.js或eslint.config.js→ 即使有 JS 错误也不会上报到Problems - 文件未保存(部分检查器如
tsc --noEmit默认只校验已保存文件)→ 修改后未按Ctrl+S,错误不会立刻出现在面板中
如何让 TypeScript 错误真正出现在问题面板?
TypeScript 是 VSCode 支持最好的语言之一,但默认行为容易让人误以为“没报错”——其实它默认只检查打开的文件(semantic checking on open files),而非整个项目。
- 确保项目根目录有
tsconfig.json,哪怕只有{}也行 - 在
tsconfig.json中显式开启"noEmit": true和"checkJs": false(如需检查 JS) - 如果用的是
JavaScript文件,需在文件顶部加// @ts-check,或在jsconfig.json中配"checkJs": true - VSCode 设置中确认启用了
typescript.preferences.includePackageJsonAutoImports等不影响诊断,但typescript.preferences.enablePromptUseWorkspaceTsdk若设为false可能导致本地tsserver未加载
Python 的问题面板为什么总不显示 Pylint 错误?
VSCode 的 Python 扩展默认使用 Pylance(语义分析)+ pylint(可选)双轨机制。Pylance 报错会进 Problems,但 pylint 默认不自动启用。
- 安装
Python扩展后,还需在设置中搜索python.linting.enabled并设为true - 确认已安装
pylint:终端执行pip install pylint,然后在设置中填入路径,如python.linting.pylintPath设为pylint(全局)或./venv/bin/pylint(虚拟环境) -
pylint默认不检查未保存文件,且对import错误等响应较慢;若想更快看到结果,可临时改用flake8(启动快,规则少) - 注意
python.defaultInterpreterPath必须指向正确环境,否则pylint找不到依赖,报错信息会是ModuleNotFoundError而非代码问题
错误出现在编辑器里,但问题面板没同步?
这是典型的“诊断来源不一致”:编辑器右下角红色波浪线可能来自某个扩展的轻量检查(如 EditorConfig 或 prettier 格式化提示),但它们不向 Problems 面板提交诊断(Diagnostics),所以面板为空。
- 按
Ctrl+Shift+P输入Developer: Toggle Developer Tools,看 Console 是否有DiagnosticCollection相关警告 - 检查扩展是否调用了
vscode.languages.createDiagnosticCollection()并正确.set()了 URI 和诊断数组 - 某些扩展(如旧版
Auto Rename Tag)根本不会注册诊断,只做编辑器内高亮 —— 这类“错误”永远不会进Problems - 如果用了多根工作区(multi-root workspace),确保
Problems面板右上角的过滤器没选成单个文件夹(点击面板右上角Filter Problems图标可切换范围)
问题面板不是万能的错误聚合器,它只显示那些明确调用 VSCode 诊断 API 的服务所上报的内容。很多你以为的“错误”,其实是格式化警告、拼写建议,或者还没触发检查流程 —— 关键不是点开面板,而是先确认背后那个检查器是否真的在跑。











