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日