HLSL Tools for VS Code
This extension is Visual Studio Code. Go here for the Visual Studio 2017 / 2019 extension.
HLSL Tools provides enhanced support for editing High Level Shading Language (HLSL) files in VS Code.
To use HLSL Tools you need to be on Windows x64 or macOS. Linux support will come in a future version.
Why use HLSL Tools?
Here's the feature list:
Just start typing, and HLSL Tools will show you a list of the available symbols (variables, functions, etc.)
at that location. You can manually trigger this with the usual
Signature help (a.k.a. parameter info) shows you all the overloads for a function call, along with information (from MSDN)
about the function, its parameters, and return types. Typing an open parenthesis will trigger statement
completion, as will the standard
Placing the cursor within a symbol (local variable, function name, etc.) will cause all references to that symbol to be highlighted.
Go to Symbol
HLSL Tools shows you syntax and semantic errors immediately. No need to wait till compilation! Errors are shown as squigglies and in the error list.
Go to definition
Press F12 to go to a symbol definition. Go to definition works for variables, fields, functions, classes,
macros, and more. You can also "peek definition" with
Hover over almost anything (variable, field, function call, macro, semantic, type, etc.) to see a Quick Info tooltip.
HLSL Tools evaluates preprocessor directives as it parses your code.
If you want to make a code block visible to, or hidden from, HLSL Tools, use the
Custom preprocessor definitions and additional include directories
HLSL Tools will, by default, only use the directory containing the source file to search for
You can customise this, and add additional preprocessor definitions, by creating a file named
HLSL Tools will look for a file named
Config files are cached for performance reasons. If you make make changes to a config file, you'll need to close and re-open any source files that use that config file.
Assocating other file types with HLSL Tools
By default, HLSL Tools only recognises a few file extensions as being HLSL files. You can associate any other file extension like this:
You can ask questions in our Gitter room. If you find a bug or want to request a feature, create an issue here . You can find me on Twitter at @_tim_jones_ and I tweet about HLSL Tools using the #hlsltools hashtag.
Contributions are always welcome. Please read the contributing guide first.