Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当插入符号位于虚拟空间中时,在Visual Studio中为自定义语言提供intellisense_C#_Visual Studio 2015_Vs Extensibility - Fatal编程技术网

C# 当插入符号位于虚拟空间中时,在Visual Studio中为自定义语言提供intellisense

C# 当插入符号位于虚拟空间中时,在Visual Studio中为自定义语言提供intellisense,c#,visual-studio-2015,vs-extensibility,C#,Visual Studio 2015,Vs Extensibility,我正在为visual studio开发一个扩展,为自定义语言提供intellisense。 到目前为止,我从这个开始,更具体地说是这个。 遗憾的是,这个示例(以及我在互联网上看到的所有其他示例)在虚拟空间方面存在问题。当光标放置在这样一个虚拟空间中时,通过session.GetTriggerPoint(snapshot)获得的triggerPoint被设置回光标之前的非虚拟位置(据我所知,SnapshotPoint只能表示非虚拟位置)这会导致intellisense窗口位置错误: 我怎样才能解

我正在为visual studio开发一个扩展,为自定义语言提供intellisense。
到目前为止,我从这个开始,更具体地说是这个。 遗憾的是,这个示例(以及我在互联网上看到的所有其他示例)在虚拟空间方面存在问题。当光标放置在这样一个虚拟空间中时,通过
session.GetTriggerPoint(snapshot)
获得的
triggerPoint
被设置回光标之前的非虚拟位置(据我所知,
SnapshotPoint
只能表示非虚拟位置)这会导致intellisense窗口位置错误:

我怎样才能解决这个问题?
我试图理解roslyn扩展是如何实现的,但是代码非常复杂(看起来像~5k LOC和~100个类只是为了自动完成)。

顺便说一句,我设法找到了roslyn中的原因:

if (this.TextView.Caret.Position.VirtualBufferPosition.IsInVirtualSpace)
{
    // Convert any virtual whitespace to real whitespace by doing an empty edit at the caret position.
    _editorOperationsFactoryService.GetEditorOperations(TextView).InsertText("");
}

我不知道你的问题的答案,但那张截图确实让我面带微笑。谢谢。我已经打开了一个问题。