ReSharper 2025.2 Help

Clang-Tidy 集成

Clang-Tidy 是一个基于流行的 Clang 编译器的强大的开源代码分析工具。 它提供了一套广泛的代码检查以及用于典型编程错误的相应修复。

ReSharper 提供了与 Clang-Tidy 的无缝集成。 这意味着当您编辑文件时,ReSharper 会在后台以单独的进程运行 Clang-Tidy,并将检查结果与其他 ReSharper 的检查 一起显示。 未保存的文件通过将当前文档的文本保存到临时文件并指示 Clang-Tidy 使用该文件而不是磁盘上的版本来透明地处理。

Clang-Tidy 检查

要区分 Clang-Tidy 检查和 ReSharper 的检查,您可以查看附加在检查消息后的方括号中的检查名称:

ReSharper 中的 Clang-Tidy 检查

除了 来自 Clang-Tidy 检查的诊断信息 ,ReSharper 还会发出 来自 Clang 静态分析器的诊断信息由 Clang 编译器本身提供的警告。 所有这些都有相应的 可配置的严重性级别 ,您可以 根据需要进行调整

一些与 ReSharper 内置检查重复的 Clang-Tidy 检查默认被关闭。 此外, 所有静态分析器检查 都被禁用,因为启用它们会显著降低 Clang-Tidy 的速度。

与内置检查一样,您可以使用检查上下文菜单 快速更改 Clang-Tidy 检查的严重性通过注释抑制它 (在特定范围内或全局),或 查找并调查所有类似问题。 还有一个额外的操作可以打开特定检查的在线文档页面。

ReSharper:Clang-Tidy 检查菜单

Clang-Tidy 修复

ReSharper 允许您以类似于其内置 快速修复 的方式应用 Clang-Tidy 提供的修复。 与其他批量修复一样,Clang-Tidy 修复可以单独应用或 在特定范围内 (文件、文件夹、项目或解决方案)应用。

ReSharper:Clang-Tidy 检查的快速修复

默认情况下,ReSharper 会 重新格式化 Clang-Tidy 修复更改的代码以保持代码风格。 可以通过 ReSharper 选项 的 应用 Clang-Tidy 修复后重新格式化更改的代码 页面上的 代码编辑 | C++ | Clang-Tidy 设置禁用此行为 Alt+R, O 。 禁用此设置将加快 Clang-Tidy 修复的执行速度。

使用代码清理应用 Clang-Tidy 修复

Clang-Tidy 修复也可以通过 代码清理 应用。 内置代码清理配置文件不包括所有可用的 Clang-Tidy 修复,因此要配置它,您需要从列表中选择 Clang-Tidy 配置文件,单击其旁边的选项按钮,并选择所有需要的检查,这些检查将在您 运行代码清理 时执行。

ReSharper:使用代码清理应用 Clang-Tidy 修复

即使在 ReSharper 选项 的 代码检查 | 检查严重性 页面 Alt+R, O 上关闭了相应的检查,所选修复也会被应用。 启用过多检查时请小心——代码清理对给定文件仅运行一次 Clang-Tidy,因此如果多个修复影响同一代码块,可能会导致更改冲突。

配置 Clang-Tidy

ReSharper 不会写入其自己的 Clang-Tidy 配置,因此可以选择用户提供的配置。 Clang-Tidy 尝试从源文件最近的父目录中的 .clang-tidy 文件 文件读取每个源文件的配置。 这里的源文件(与 ReSharper 的其他检查一样)是运行分析的 .cpp 文件 文件本身,或者在对头文件执行分析时包含该头文件的随机 .cpp 文件 文件。 或者,您可以在 ReSharper 选项 的 使用特定的 clang-tidy 配置文件 页面上选择 代码编辑 | C++ | Clang-Tidy 设置以指定配置文件的位置 Alt+R, O

Clang-Tidy 二进制文件的 -checks 参数 命令行选项用于传递启用检查的列表,该列表随后会附加到从 Clang-Tidy 配置中读取的 checks 选项的值。 为了构造 -checks 参数 参数,ReSharper 会获取 ReSharper 选项 的 启用/禁用的 Clang-Tidy 检查列表 页面上的 代码编辑 | C++ | Clang-Tidy 设置的值,并将关闭的检查名称附加到 Alt+R, O 选项页面上 代码检查 | 检查严重性

默认情况下,ReSharper 使用内置的 Clang-Tidy 20.0.0 二进制文件。 您可以让 ReSharper 使用任何其他版本的 Clang-Tidy 二进制文件(版本 7 或更高)。 为此,您在 ReSharper 选项 的 代码编辑 | C++ | Clang-Tidy 页面上有两个额外的选项 Alt+R, O

  • 在 %PATH% 中查找 - 使用在 %PATH% 环境变量 环境变量中指定位置找到的 Clang-Tidy。

  • 自定义 - 使用特定的 Clang-Tidy 可执行文件。

如果需要,您还可以使用 启用 Clang-Tidy 分析Control+Alt+Shift+D9 )切换在 状态指示器 上下文菜单中禁用当前文档的 Clang-Tidy 分析。

Clang-Tidy 集成的限制

  • 使用 UTF-16 或 UTF-32 编码的文件无法被 Clang 读取,因此目前不支持 Clang-Tidy。

  • 有时 Clang-Tidy 可能会在您的代码上崩溃,Windows 会显示“进程已停止工作”的消息。 在这种情况下,请在 ReSharper 选项 的 代码编辑 | C++ | Clang-Tidy 页面上禁用当前解决方案的 Clang-Tidy 集成 Alt+R, O

  • 如果您使用的是自定义 Clang-Tidy 二进制文件(在 %PATH% 中查找自定义 在 ReSharper 选项 的 代码编辑 | C++ | Clang-Tidy 页面上 Alt+R, O ),则只能使用版本 7 或更高版本。

最后修改日期: 2025年 9月 27日