C# 如何在AvaloneEdit中启用虚拟空间?

C# 如何在AvaloneEdit中启用虚拟空间?,c#,wpf,avalonedit,C#,Wpf,Avalonedit,我想在AvalonEdit中实现类似于VisualStudio中的功能 也就是说,插入符号的位置可以超出文本行的末尾,如果按任意键,将自动添加空格以匹配 我非常习惯这个功能,但无论是谷歌搜索还是研究AvalonEdit的代码都没有给我任何关于如何启用它的线索,如果它被支持的话 如果不是,建议如何扩展插入符号处理机制将是很好的 谢谢 编辑: 版本4.2.0.8283中的虚拟空间支持。 设置textEditor.Options.EnableVirtualSpace=true 下面是我最初的答案 它

我想在AvalonEdit中实现类似于VisualStudio中的功能

也就是说,插入符号的位置可以超出文本行的末尾,如果按任意键,将自动添加空格以匹配

我非常习惯这个功能,但无论是谷歌搜索还是研究AvalonEdit的代码都没有给我任何关于如何启用它的线索,如果它被支持的话

如果不是,建议如何扩展插入符号处理机制将是很好的

谢谢

编辑: 版本4.2.0.8283中的虚拟空间支持。 设置
textEditor.Options.EnableVirtualSpace=true

下面是我最初的答案


它目前不受支持

如果要尝试添加它,请确保阅读“坐标系”文档(在CodeProject的帮助文件中)。您需要扩展“可视列”,以便线端点之后的位置有效。您必须调整positioncolumn计算(VisualLine.GetVisualColumn和friends)。使用TextView.WideSpaceWidth计算行结束后的列

上面应该允许您使用鼠标在虚拟空间中放置插入符号。在此之后,您需要更改插入符号移动(箭头键、CaretNavigationCommandHandler)和文本输入逻辑(TextArea.performtOutput)以支持虚拟空间

如果您成功完成了上述步骤,请不要忘记将您的更改提交回AvaloneEdit.:-)
虽然我自己并不喜欢虚拟空间,但我们需要类似的东西来让矩形选择正常工作。

哇,真是全面的答案。谢谢:)虽然这项功能不是最重要的,但总有一天我会完成的。@wizzard0:我几周前开始做这项工作,但后来又停止了。您可以找到附加到的未完成补丁-请随意继续我停止的地方。