Chr*_*ris 5 .net c# wpf mef visual-studio-2010
在Visual Studio 2010 SDK中,有SnapshotSpans和VirtualSnapshotSpans.根据MSDN,不同的是Virtual Span有Virtual Spaces,另一个没有.
什么是虚拟空间?
供参考:http: //msdn.microsoft.com/en-us/library/microsoft.visualstudio.text.virtualsnapshotspan.aspx
你可以在这里找到解释:
虚拟空间是一行末尾的"额外"空格,不会增加行的长度.您可以在Visual Studio中启用或禁用虚拟空间.禁用虚拟空间时,按一行末尾的右箭头键会使插入符移动到下一行的开头.启用虚拟空间后,按一行末尾的右箭头键会使插入符号在同一行上向前移动.
即使禁用了工具 - >选项 - >文本编辑器 - >所有语言 - >常规下的"启用虚拟空间"选项,也可以在编写缩进文本或代码时插入虚拟空间.
如果在缩进行的末尾键入enter,Visual Studio将在新行的开头添加虚拟空格.这些空间是"虚拟的",因为它们没有被用户输入,除非您在虚拟空间之后输入内容,否则不会保存在文件中.
这会影响插入符号的位置:在缩进行的末尾按Enter键后,CaretPosition的"BufferPosition"和"VirtualBufferPosition"属性将会有所不同.BufferPosition指向新行中的第0列,VirtualBufferPosition指向可视化呈现插入符号的位置.