CLion 2026.2 Help

SARIF Viewer

SARIF 查看器在 CLion 中为开箱即用。 可以从外部 static 分析工具(如 Parasoft C/C++test、Clang static 分析器或自研检查器)导入 SARIF 报告,CLion 会在 问题 工具窗口中显示结果。

SARIF 查看器概览

支持的输入

SARIF 查看器支持 JSON 格式的 SARIF 2.1.0 报告。 文件名称必须以 .sarif 或 .json 结尾,并包含 .sarif ,例如 report.sarif.json 。

源代码位置通过报告中的文件路径和 file:// URI 解析。 相对路径以包含 SARIF 报告的目录为基准解析。 仅当解析到的文件位于当前项目内时,导航和编辑器高亮显示功能才可用。

不符合 SARIF 2.1.0 架构的报告不会被导入。 CLion 会在 SARIF Viewer 通知组中显示验证错误信息。

导入 SARIF 报告

在主工具栏中选择 代码 | 导入 SARIF 结果…… ,然后选择一个或多个受支持的 SARIF 报告文件。

导入 SARIF 结果操作

也可以将 SARIF 文件拖拽到 SARIF 结果 选项卡,或从 项目 工具窗口中打开 SARIF 文件。 打开 SARIF 文件会将其导入 SARIF 结果 选项卡,而不是作为单独编辑器窗口打开。

已导入的报告路径保存在 .idea/sarifViewer.xml 中,项目打开时会重新加载。 如果已保存的报告路径不再指向可读取的文件,CLion 会跳过它并显示通知。

查看 SARIF 结果

打开 问题 工具窗口并切换到 SARIF 结果 选项卡。 导入的报告和规则会在其名称旁显示可见结果的数量。

SARIF 结果选项卡

默认情况下,结果先按工具分组,再按规则分组。 每条结果都显示消息和源代码位置。 图标对应 SARIF 严重级别,从错误到弱警告。

如果已解析的本地文件不存在,结果会被警告图标标记,且无法在编辑器中打开。 如果引用的路径无法解析或指向项目外部,该结果会保留在树中但无法打开。 如果文件存在但报告的行无法高亮显示,结果会被标记为 找不到。

在 工具窗口中输入即可查找结果消息、规则 ID、工具名称、严重性或路径。

代码流

如果结果包含 SARIF codeFlows ,请展开结果以检查步进。 单一无名流以平铺步进列表展示。

命名流和线程流使用其 SARIF 消息;无名称节点使用 代码流 N 和 线程 N 标签。

代码流步进

双击结果或步进,按 Enter ,或从上下文菜单中选择 跳转到源。 CLion 会打开引用的文件并将文本光标定位到报告的位置。

编辑器中的 SARIF 高亮显示

编辑器会在可能的情况下高亮显示对应的代码元素;否则会高亮整行非空部分。

筛选器和分组结果

在 SARIF 结果 选项卡的工具栏中可更改可见结果。

SARIF 结果工具栏
  • 清除所有 :从项目中移除所有已导入报告和编辑器高亮显示。

  • 重新导入 :重新从磁盘读取已导入的报告文件。 更新 .sarif 报告后可使用此操作。

  • 按严重性筛选 :显示或隐藏 错误、 警告、 注释 和 无 结果。

  • 查看选项 | 显示已抑制 :以删除线文本显示已禁止的结果。

  • 查看选项 | 分组依据 :按 工具、 规则 或 文件 分组结果。

结果上下文菜单还提供 跳转到源、 取消、 取消禁止 及 复制问题描述。

SARIF 结果的上下文菜单

复制问题描述会将以下格式的单行摘要放入剪贴板: [<tool>] <ruleId>: <message> (<file>:<line>)。

禁止项

禁止项会将结果从树中隐藏并移除其编辑器高亮显示。 启用 查看选项 | 显示已抑制 可显示已禁止的结果。

被禁止的 SARIF 结果

取消 操作仅适用于支持的源代码注释格式的工具:

  • Parasoft C/C++test、Jtest 或 dotTEST: // parasoft-suppress <ruleId> "Suppressed via SARIF Viewer"

  • Coverity: // coverity[<ruleId>] Suppressed via SARIF Viewer

对支持的结果进行禁止时,CLion 会将禁止项保存在 .idea/sarifViewer.xml 中,并在报告行上方插入注释。 取消禁止 会移除已保存的禁止项并删除 SARIF 查看器创建的匹配注释。

对于其它工具的结果, 取消 按钮不可用。 报告中已标记为禁止的 SARIF 结果也会被隐藏,除非启用 显示已禁止的项。

限制

  • SARIF 查看器仅支持 SARIF 2.1.0 JSON 报告。

  • 不支持压缩 SARIF 文件,如 .sarif.gz 或 .sarif.zip 。

  • HTTP 及其它非 file 类型的 URI 协议不会被解析为源文件。

  • 项目外的文件会在结果树中显示,但无法通过 SARIF 查看器打开。

  • 报告在磁盘更改后不会自动重新加载。 请使用 重新导入。

  • SARIF 结果 选项卡不提供导出操作。

  • 源代码禁止项仅适用于 Parasoft 和 Coverity 结果。

2026年 7月 15日