【发布时间】:2020-08-11 16:16:47
【问题描述】:
在我的 VSIX 项目中,此错误显示在以下行:
(AdapterService as IVsEditorAdaptersFactoryService).SetDataBuffer(textLines, projBuffer as IProjectionBuffer);
textLines 是使用我的包的 CreateInstance 方法创建的
Type textLinesType = typeof(IVsTextLines);
Guid riid = textLinesType.GUID;
Guid clsid = typeof(VsTextBufferClass).GUID;
IVsTextLines textLines = (_package as Package).CreateInstance(ref clsid, ref riid, textLinesType) as IVsTextLines;
DocumentTextBuffer 属性实际上是什么?如何在新实例化的IVsTextLines 上设置它?
我要做的是创建一个IVsTextLines 将其作为缓冲区传递给IVsCodeWindow。
【问题讨论】:
-
能否请您share a minimal, reproducible example 与我们一起帮助我们解决问题?此外,您可以与我们分享具体错误。
-
@PerryQian-MSFT 我想我已经通过使用
IVsEditorAdaptersFactoryService.CreateVsTextBufferAdapter解决了这个问题,然后调用IVsTextBuffer.InitializeContent。这将初始化 DocumentTextBuffer 和 DataTextBuffer,之后IVsEditorAdaptersFactoryService.SetDataBuffer不会引发任何错误。我只需要确保它IVsCodeWindow.SetBuffer可以接受(可能是)。
标签: visual-studio-2019 mef visual-studio-extensions vsix vspackage