# HLSL Tools for Visual Studio v1.0 released

I’m very happy to announce the release of version 1.0 of HLSL Tools for Visual Studio:

If you edit HLSL shaders in Visual Studio, then this extension is for you. Please go and download it! Did I mention it includes IntelliSense for HLSL? And then come back here to find out what’s new in version 1.0.

## What is HLSL Tools?

For those who missed my initial announcement blog post, here’s a brief recap. Visual Studio, since VS2013, has shipped with basic support for editing HLSL shaders. This basic support includes syntax highlighting, mostly-correct automatic formatting, brace completion, brace matching, and outlining.

HLSL Tools for Visual Studio is a free (and open source) Visual Studio extension that improves upon this. Since its initial release, HLSL Tools has included these features:

• Navigate to (Ctrl+,)
• Live syntax errors
• Preprocessor support (code excluded by the preprocessor is greyed out)
• HLSL-specific text editor options

## What’s new?

So what’s new in v1.0? Quite a lot, as it turns out: most of the new features can be TL/DR’d as “IntelliSense”, but there are other improvements too.

### Statement completion

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 shortcuts: Ctrl+J, Ctrl+Space, etc.

### Signature help

Signature help (a.k.a. parameter info) shows you all the overloads for a function call, along with information (from MSDN, for intrinsic functions) about the function, its parameters, and return types. Typing an open parenthesis will trigger statement completion, as will the standard Ctrl+Shift+Space shortcut. Signature help is available for all HLSL functions and methods, including the older tex2D-style texture sampling functions, and the newer Texture2D.Sample-style methods. Signature help also works for your own functions.

### Reference highlighting

Placing the cursor within a symbol (local variable, function name, etc.) will cause all references to that symbol to be highlighted. Navigate between references using Ctrl+Shift+Up and Ctrl+Shift+Down.

### Live semantic errors

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. HLSL Tools will also show you implicit conversion warnings. Instead of the generic “implicit vector truncation” warning that the HLSL compiler gives you, HLSL Tools tells you what the source and destination types are.

### Go to definition

Press F12 to go to a symbol definition. Go to definition works for variables, fields, functions, classes, macros, and more.

### Quick info

Hover over almost anything (variable, field, function call, macro, semantic, type, etc.) to see a Quick Info tooltip.

## What’s next?

There are more features on the roadmap. If HLSL Tools is useful to you, I’d leave to hear about it! And if you have any feature suggestions, or find any bugs, please create an issue on the GitHub repository.

You can also follow me on Twitter, where I tweet about HLSL Tools using the hashtag #hlsltools.