Visual Assist 2022.3 is out and brings some exciting news for those working with graphics shaders! It also adds a pair of code inspection checks, as well as a new navigation option for Open File in Solution.
Visual Assist HLSL support
High-level shader language (HLSL), while vaguely similar to C in syntax, is a distinct language and thus most native Visual Studio features may behave differently.
This may bring some frustration, and that’s what VA intends to fix! We’ve had some manual registry edits to let VA work with shaders, but that hasn’t been well-known and we’ve also wanted to improve our internal support before officially supporting the language.
Which is why we’re excited to announce that Visual Assist ‘s features will now work for HLSL, USH and USF files—the latter two being the Unreal Engine-specific shader files. This includes:
- Code navigation features
- Syntax highlighting
- Context-aware smart suggestions
- Automatic code generation prompts
Please note that support is still in early beta – marking ‘beta’ is standard practice for us for key new features – and that some complex features like refactoring may have some issues. We ask that when you work with HLSL and Visual Assist to send feedback our way to improve behavior.
We often focus on Unreal Engine, where VA is widely used, but HLSL files are used across the graphics industry and this feature is useful for all developers writing shaders, no matter the technology or engine you’re using.
Two new code inspection updates
The first check involves flagging constructors with incomplete initialized fields. Constructors don’t always initialize all fields. And some types don’t have initialization that leaves them in a ‘good’ state – one example is a pointer type. This check flags constructors that leave fields of those types uninitialized.
The second checks for a common mistake when using std::string::compare (or other string types like wstring) method to compare strings. To elaborate, the compare method returns three possible values (instead of a simple boolean True or False) because its primary use is for sorting. If your code is using it where an equality or inequality check would work and be more readable or easier to understand, this check recommends it.
Access Visual Assist’s code inspections by accessing the following:
(If you are not seeing options, please remember to enable code inspections!)
- Quick Actions and Refactorings menu ( Shift + Alt + Q )
- VAssistX → Code Inspection (beta) → VA Code Inspection Results
New Linux-style navigation in Open File in Solution
Open File in Solution will now accept forward slashes to filter certain directories. Adding a forward slash ( / or \ ) before a string will filter all files not contained in a directory starting with the string. This is a productivity feature: on many keyboards / is easier to type than \, and so several customers requested the forward-slash work. A small feature, but one we think shows our dedication to useful details.
And for those who are unaware, Open File in Solution also accepts the following:
- Negative filtering ( – )
- Multiple entries ( , )
- BeginsWith filter ( .string)
- EndsWith filters ( string. )
You can learn more about available options in the documentation.
There are several quality fixes as well, since every release we aim to make it better. For more information about the changes in this release, head on over to the documentation.
We hope you find the new inspections and shader support useful, and as always, happy coding!