Early Access Program

ReSharper C++ 2023.3 EAP: HLSL Updates and Completion in Inactive Code

The new Early Access Program build is here with updates for HLSL support, code completion inside inactive preprocessor branches, a new inlay hint for forwarding references, and other updates. Read on for more details and check out the full list of issues we’ve fixed in this update.

You can download the free EAP builds from our website or via the Toolbox App.


HLSL updates

It’s been a while since we last introduced improvements for HLSL support. Meanwhile, the HLSL standard brought a few new language features, so it’s time to catch up. HLSL 2021 introduced C++-like templates for structs and functions with full specializations and template parameter inference where possible. With the latest ReSharper C++ update, you get full support for HLSL templates:
HLSL template
This EAP build also introduces support for RayQuery and brings all of the corresponding flags to the code completion list:
HLSL RayQuery

Working with inactive code

With platform or configuration-specific code, you can often find yourself editing currently inactive code blocks inside conditional preprocessor branches. Previously, code completion in inactive code only offered macros. In this EAP build, we’ve improved code completion in these scenarios to include symbols from the global scope:
Completion in inactive code

We’ve also updated Find Usages to find possible usages in inactive code and macro bodies. Previously, if you wanted to find these usages you had to use Find Usages Advanced and investigate textual occurrences. Now Find Usages results include potential usages in macro bodies and inactive code by default. These usages are grouped into separate sections to distinguish them from usages in normal code:
Find possible usages

Other improvements

Reference inlay hints now have a separate [>>] text to spot forwarding references at a glance:
Forwarding reference
Another update is for C support: ReSharper C++ now supports the C99 restrict type qualifier that can be used in pointer declarations.
C99 restrict

To improve the code navigation experience, symbols that came from macro substitutions are now hidden from Go to and the File Structure window. This is helpful when working with unit tests, for example, since macros defined by unit testing frameworks often introduce many auxiliary symbols during their expansion.

We’ve also added a new formatting setting for the braces layout to allow comments after {.

Those are all the highlights of this EAP build! If you encounter any issues, don’t hesitate to report them to our issue tracker.


Your ReSharper C++ team
The Drive to Develop

image description