Are there any free components out there that will give highlighting and/or intellisense for HLSL?
I\'ve seen mentions of something called \"InteliSense.Net,\" but th
With a little effort you can configure manually MSVC2010 IDE in a way it will highlight HLSL files and will do partial auto-completion/intelisense:
Part 1)
Part 2)
Create 'usertype.dat' text file beside VCExpress.exe or devenv.exe (typically located "c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\"). Populate 'usertype.dat' file with hlsl keywords you want highlighted i.e:
float2
float3
float4
float4x4
matrix
cbuffer
tbuffer
Part 3) Restart MSVC
Part 4) In VC Open 'Tools'\'Options' dialog box again and navigate to 'Environment'\'Fonts and Colors' and configure it to your liking. Color of user keywords added via 'usertype.dat' is controlled through 'C/C++ User Keywords' display item (Personally I matched it with 'Keyword' settings).
Part 4a) In VC 'Tools'\'Options'\'Text Editor'\'C/C++'\'Advanced' on the right side you might want to consider setting field 'Disable Squiggles' to true (since hlsl is not a valid C++ code VC would normally underline C++ compile errors in your shader code)
ShaderSense project seems to solve syntax highlighting and some kind of intellisense for HLSL files
HLSL Tools for Visual Studio brings IntelliSense to HLSL in Visual Studio. It includes statement completion, signature help, live errors, quick info, and more.
Disclaimer - I'm the author of HLSL Tools.
Try NShader that is a VS2012/2010/2008 extension for HLSL/CG/GLSL syntax highlighting.
Not a direct answer to your question, but this is what I do to solve the same problem:
I set Visual Studio to open *.fx
files in Notepad++. (Right click the file, Open With, Add Notepad++, Set Default). Of course, you can use any editor you like.
I use a HLSL syntax highlighting file for Notepad++ that I found on Google. I think it's this one.
And finally, I keep this MSDN page open in my browser: Intrinsic Functions (DirectX HLSL). Because HLSL is so simple - with no way to mess around defining classes and such - and the programs are usually quite small and self-contained, I find that this is sufficient.