VS2010 - HLSL 智能感知?

Posted

技术标签:

【中文标题】VS2010 - HLSL 智能感知?【英文标题】:VS2010 - HLSL Intellisense? 【发布时间】:2010-11-24 17:21:35 【问题描述】:

是否有任何免费组件可以为 HLSL 提供突出显示和/或智能感知?

我看到有人提到过一个名为“InteliSense.Net”的东西,但作者的网站已关闭,我无法在任何地方找到下载。

【问题讨论】:

这样做的问题是 HLSL 在 D3D 版本之间会发生变化。如果您开发了 HLSL Intellisense 插件,您将不知道构造是否有效。 这不是任何语言的问题吗?例如,VS 可以很好地区分不同版本的 C#。如果这不是要走的路,是否有专门的 hlsl 编辑器可以提供此功能? 您不能在同一个项目中使用由#ifdef 更改的多个版本的C#,您可以使用HLSL。您也无法在运行时更改已编译的 C# 文件,您也可以使用 HLSL。 【参考方案1】:

不是直接回答您的问题,但这是我为解决相同问题所做的:

我将 Visual Studio 设置为在 Notepad++ 中打开 *.fx 文件。 (右键单击文件,打开方式,添加记事本++,设置默认值)。当然,你可以使用任何你喜欢的编辑器。

我使用我在 Google 上找到的 Notepad++ 的 HLSL 语法高亮文件。我想是this one。

最后,我在浏览器中保持这个 MSDN 页面打开:Intrinsic Functions (DirectX HLSL)。因为 HLSL 非常简单——没有办法搞乱定义类之类的东西——而且程序通常很小且独立,我发现这已经足够了。

【讨论】:

正是我需要的,虽然不是我要求的。谢谢! 昨天发现 HLSL 确实支持类。谁知道?! 这太sad了,以至于开发人员不得不使用 Notepad++ 来获得 HLSL 的语法高亮。你听到我说微软??伤心!! 注意:VS11 提供着色器语法高亮。【参考方案2】:

试试NShader,它是一个用于 HLSL/CG/GLSL 语法高亮的 VS2012/2010/2008 扩展。

【讨论】:

+1 感谢您的链接。我已经有语法高亮工作了;真的在寻找智能感知。【参考方案3】:

只需稍加努力,您就可以手动配置 MSVC2010 IDE,它会突出显示 HLSL 文件并执行部分自动完成/智能感知:

第 1 部分)

    在“工具”菜单中单击“选项” 在“选项”对话框中展开到“文本编辑器”节点并选择“文件扩展名” 现在您可以在右侧添加扩展并为其配置编辑器 添加扩展:hlsl 和 fx,“编辑器”字段设置为“Microsoft Visual C++” 选中“将扩展文件映射到”并将其设置为“Microsoft Visual C++”

第 2 部分)

在 VCExpress.exe 或 devenv.exe 旁边创建“usertype.dat”文本文件(通常位于“c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\”)。使用要突出显示的 hlsl 关键字填充“usertype.dat”文件,即:

float2
float3
float4
float4x4
matrix
cbuffer
tbuffer

第 3 部分)重启 MSVC

第 4 部分)在 VC 中再次打开“工具”\“选项”对话框并导航到“环境”\“字体和颜色”并根据自己的喜好进行配置。通过“usertype.dat”添加的用户关键字的颜色是通过“C/C++ 用户关键字”显示项控制的(我个人将其与“关键字”设置匹配)。

第 4a 部分)在右侧的 VC 'Tools'\'Options'\'Text Editor'\'C/C++'\'Advanced' 中,您可能需要考虑将字段 'Disable Squiggles' 设置为 true(因为 hlsl不是有效的 C++ 代码 VC 通常会在着色器代码中强调 C++ 编译错误)

【讨论】:

【参考方案4】:

ShaderSense 项目似乎解决了 HLSL 文件的语法高亮和某种智能感知

【讨论】:

您必须使用 MSVC 2008 自己构建 ShaderSense,这需要 MSVC 2008 SP1 和 Visual Studio SDK。【参考方案5】:

HLSL Tools for Visual Studio 将 IntelliSense 引入 Visual Studio 中的 HLSL。它包括语句完成、签名帮助、实时错误、快速信息等。

免责声明 - 我是 HLSL Tools 的作者。

【讨论】:

我不知道这是否是巧合,但在我为我的 Visual Studio 2015 安装此插件后,Rundll32.exe 消耗了我的 Ram 内存(高达 3Gb)和磁盘使用情况(100%),然后是 wicainventory。 exe 使我的磁盘使用率达到 100% - 即使我重新启动、关闭、打开 - 也无法修复它。卸载此插件后,我的笔记本电脑再次运行良好(不再看到 Rundll32.exe 和 wicainventory.exe)。 虽然这个VS的插件非常非常棒,但是因为我之前评论中提到的问题,我觉得还是Notepad++的更好。

以上是关于VS2010 - HLSL 智能感知?的主要内容,如果未能解决你的问题,请参考以下文章

VS2010 中的 C++ 智能感知

使用 c++ 在 vs2010 中进行智能感知

C++ VS Express 2010 智能感知

VS.NET C++ 2010 中智能感知和编译器的区别

VS2010_慢

快捷键