0

我正在为 Apache CouchDB 构建类似于 Server Explorer 的东西。必要的事情之一是能够编辑 CouchDB 视图定义,这些定义在 CouchDB 中是 JavaScript 函数。

如何欺骗 Visual Studio 使用我的对象来检索和保存 JavaScript 函数的内容,但仍然使用它的其余部分 - 我对编辑器本身很满意,并且无意编写自己的编辑器/语言服务等。后者将比该项目所保证的更大的努力

编辑

经过更多的挖掘,我仍然被卡住了。这是我所知道的:IVsUIShellOpenDocumentinterface 提供了一种OpenStandardEditor可用于打开标准 Visual Studio 编辑器的方法。作为参数之一,此方法采用指向文档数据对象的 IUnknown 接口的指针。该对象应该实现 MSDN 上许多地方描述的多个接口。

Visual Studio SDK 还提供了文档数据对象的“示例”实现VsTextBufferClass。我可以创建这个类的一个实例,当我将指向实例的指针传递给OpenStandardEditor我可以看到我的编辑器时,它似乎工作正常。

当我尝试实现我自己的实现相同接口的类时(IVsTextBuffer, VsTextBuffer, IVsTextLinesOpenStandardEditor方法返回成功,但是 VS 在调用editor.Show()时因访问冲突而崩溃。

我怀疑 VsTextBufferClass 还实现了一些其他接口,但不是以 C# 方式,而是以良好的旧 COM 方式。我只是不知道是哪一个。

有什么想法吗?

4

1 回答 1

0

如果您有一个程序可以将 javascript 导出到磁盘上的文件,然后在使用 Visual Studio 完成编辑后将它们重新导入数据库,该怎么办?这可能是最简单的方法。

于 2009-11-11T20:44:03.177 回答