【发布时间】:2026-02-22 00:45:01
【问题描述】:
去年我为 Visual Studio 编写了一个语言服务,它为 NHaml 文件添加了语法高亮:http://github.com/snappycode/hamleditor。
为了澄清,NHaml 是一种 html 模板语言,它可以像 aspx 文件一样混合代码元素。这个插件增加了对编辑 NHaml 文件的 IDE 的支持,但基本上只增加了语法高亮。
我想知道是否有人知道如何像现在在 aspx 文件中那样将内联 c# intellisense 添加到服务中。我希望不用自己专门为插件编写整个 c# 语法就可以做到这一点。
有没有人写过混合语言的语言服务?
更新: 看起来火花视图引擎的家伙在这里取得了一些进展,我正在研究他们的实施
【问题讨论】:
-
在查看 spark 视图引擎代码时有没有发现什么有用的东西?
-
是的,看起来他们已经降级到 C++ whereslou.com/2008/12/03/ivsintellisenseless 我要去看看我是否可以在 c# 中实现这一点,但是有一些疯狂的无证接口需要支持
-
是的,降级到 ATL COM 有助于处理这种情况,因为您可以跟踪对象上的 QueryInterface 调用以收集有关 VS 期望的提示。还有另一个不错的技巧,您可以获取对象引用并为注册表中的每个 IID 调用 QI,以尽可能多地发现它的公开接口。我不知道在 C# 中进行这种 COM 级探索的方法。
-
这在 VS2010 中会变得更容易吗?根据我阅读的内容(不记得来源),他们努力使创建插件更容易。
标签: visual-studio plugins intellisense nhaml