ReSharper C++ 2024.3 最新变化

ReSharper C++ 2024.3 提高了大型解决方案的性能,实现了新的 C++23 和 C23 功能,并引入了 Move to Folder(移至文件夹)重构。 在 Unreal Engine 项目中,ReSharper C++ 现在为游戏内容标记和日志记录宏实参提供代码补全,同时还增强了对委托的支持。

下载

可免费试用 30 天

性能改进

ReSharper C++ 2024.3 中,我们重点优化了大型解决方案中的内存使用量,显著减少了内存占用。 根据我们的测试,现在 Unreal Engine 初始索引编制后的内存使用量降低了约 20%,Chromium 降低了 30%。

这些内存节省加上为减少内存流量而进行的优化,也提高了索引编制速度。 例如,LLVM 解决方案的初始索引编制速度提高了 10%。

语言功能

ReSharper C++ 2024.3 在 lambda 表达式上为 size_t 和特性实现了字面量后缀,完善了对主要 C++23 功能的支持。 此外,C++17 std::has_unique_object_representations 类型特征现在会被评估。

对于 C 语言用户,ReSharper C++ 增加了对 typeoftypeof_unqual 关键字以及 C23 中 __has_c_attribute 宏的支持。

为了增强与非 MSVC 编译器的兼容性,ReSharper C++ 实现了对多项 GNU 编译器扩展的支持,包括 switch case 范围、命名可变宏形参、 transparent_union 类型特性和 __attribute((aligned(...)))ReSharper C++ 还可以识别许多新的编译器内置特性,包括额外的类型特征和浮点比较。

Unreal Engine

代码补全现在会在 UE_LOGUE_LOGFMT 宏的实参中建议可用的类别名称和详细程度级别。 同名内置实时模板可以帮助您快速添加新的日志记录语句。

ReSharper C++ 现在可以发现项目中定义的游戏内容标记,并在补全 FGameplayTag::RequestGameplayTag 函数的实参时提供建议。

UDELEGATE 宏的增强支持包括宏特性内反射说明符的补全,以及委托类型的类成员的蓝图中的使用次数跟踪。

如果您对用于 Unreal Engine 开发的独立跨平台 IDE 感兴趣,请选择 Rider。 Rider 中的 Unreal Engine 支持与 ReSharper C++ 保持一致,您可以在 Rider 2024.3 更新中期待相同改进。

Move to Folder(移至文件夹)重构

现在,您可以使用 Move to Folder(移至文件夹)重构轻松移动 C++ 文件。 将所选文件移动到新位置后,重构会更新 #include 指令以反映项目结构中的更改。

编码辅助

对于使用 C++20 范围库的用户,我们引入了新的上下文操作,允许您在管道与调用形式之间转换范围适配器用法。 我们还改进了以管道形式使用范围适配器时的重载错误诊断消息。

ReSharper C++ 2024.3 支持多行 TODO 注释,允许将后续行中的缩进文本视为同一 TODO 条目的一部分。 此外,如果遇到链接到外部问题的 TODO 条目,您可以使用 Peek To-do link(速览 TODO 链接)操作(Ctrl+Shift+点击)以内联显示问题。

启用 Space before parentheses in control statements(在控制语句中的圆括号前空格)格式化程序选项时,输入辅助现在会自动在左圆括号前插入空格。

借助新的格式化程序设置,您可以配置 C++/CLI 属性的大括号样式和函数 try 块之前的换行符。

代码生成

如果您的项目为文档注释使用 XML 语法而不是 Doxygen,您现在可以在 Code Generation(代码生成)设置中轻松自定义默认文档模板的样式。 ReSharper C++ 现在还可以识别 /** ... */ 注释中的 XML 文档并在工具提示中正确显示。

另一项新设置可让您控制代码生成操作在创建重写函数时是否应保留默认函数实参。

Clang 工具集成

ReSharper C++ 2024.3 包含来自 Clang 19 的 clang-tidy 和 clang-format 二进制文件,带来了最新 LLVM 版本中的新检查和改进。

代码中禁用特定 clang-tidy 检查的 // NOLINT(...) 注释现在也会禁用相应的 ReSharper 检查。

内置格式化程序现在可以识别 // clang-format off// clang-format on 注释并关闭分隔区域中的格式设置。

查看 ReSharper 最新变化页面,了解此版本中引入的所有其他更改。

下载

可免费试用 30 天