问题面板通过过滤规则和诊断配置提升调试效率。1. 可按严重性、文件路径、问题类型及来源筛选,支持组合查询如“Error js src”。2. 诊断信息来自内置检查、语言服务器(如TS)、linter(如ESLint)和自定义任务,需正确安装插件并配置文件(如.eslintrc)。3. 通过settings.json调整行为,如控制显示默认项、关闭波浪线、开启TS日志、保存时自动修复ESLint问题等,实现精准诊断管理。

vscode 的问题面板(Problems Panel)是开发过程中排查代码错误和警告的重要工具。它能集中展示来自编辑器、语言服务、任务运行器等来源的诊断信息。要高效使用该面板,需掌握其过滤规则与错误诊断配置方式。
问题面板的过滤规则
问题面板支持通过输入关键词或选择筛选条件快速定位特定问题:
- 按严重性过滤:点击面板右上角的错误(Error)、警告(Warning)、信息(Info)、提示(Hint)按钮,可只显示对应级别的问题。
- 按文件路径过滤:在搜索框中输入文件夹名或文件路径片段,如 /src/utils,仅显示该路径下的问题。
- 按问题类型过滤:输入关键字如 unused 或 deprecated,可匹配问题描述中的文本。
- 排除特定来源:某些语言服务或 linter 会在问题详情中标注来源(如 ESLint、pylint),可通过关键字排除。
过滤支持组合查询,例如:error js src 表示只看 javaScript 文件中位于 src 目录下的错误。
错误诊断的来源配置
问题面板中的诊断信息来自多个源头,包括内置语法检查、语言服务器(lsp)、第三方 linter 等。合理配置这些来源才能精准控制报错内容。
- typescript/javascript 内置检查:由 VSCode 自带的 TS 语言服务提供。可通过 js/ts.implicitProjectConfig.checkJs 控制是否检查 .js 文件,或在 JS 文件顶部添加 // @ts-check 启用类型检查。
- ESLint / Prettier 等插件:安装对应扩展后,在设置中启用并配置规则。例如开启 ESLint 自动修复:“eslint.autoFixOnSave”: true。
- 自定义任务生成的问题:通过 tasks.json 定义构建任务时,可配置 problemMatcher 解析输出中的错误行,将其映射到问题面板。
确保插件已正确激活,并在项目根目录存在对应的配置文件(如 .eslintrc、tsconfig.json),否则可能无法触发诊断。
调整诊断行为的常用设置
通过修改 settings.json 可精细控制诊断信息的显示与行为:
- “diagnostic.displayByDefault”: false:隐藏默认不重要的诊断项。
- “problems.decorations.enabled”: false:关闭编辑器内联的波浪线和图标提示。
- “typescript.tsserver.log”: “verbose”:开启 TS 服务日志,便于排查诊断延迟或缺失问题。
- “[javascript]”: { “editor.codeActionsOnSave”: { “source.fixAll.eslint”: true } }:保存时自动修复 ESLint 可修复的问题。
部分语言服务还支持在 workspace 级别单独配置诊断开关,避免影响全局开发体验。
基本上就这些。掌握过滤技巧和诊断源配置,能让问题面板真正成为高效调试的助手。