monaco-editor:垂直线填充

monaco-editor: vertical line padding

受 IntelliJ 的 3 面板合并冲突视图的启发,我正在尝试为 vscode 构建类似的东西。我想通了,我可以在 vscode Webview 中集成三个完全可定制的 monaco 编辑器。但我无法弄清楚,monaco-editor 如何在其差异视图中应用行填充,如下图所示(因为我不想使用内部差异视图进行双向但三向差异)不适合我):

是否通过自定义 lineNumbers: lineNumber => isPaddingLine ? '' : lineNumber - someOffset, 并在相关位置插入空行 ("padding lines") 并对这些行应用 deltaDecorations 来完成?

我希望有更简单的方法,不需要 "padding lines" hack。理想情况下,我可以向 deltaDecoration 添加一些内容,例如 padding-bottom: $Xem

如果我刚刚忽略了 vscode 的 api 实现类似目标的方法,那当然比直接与 monaco-editor 打交道更受欢迎。

非常感谢任何帮助/想法:)

终于找到了:) IViewZone是用的魔法

https://microsoft.github.io/monaco-editor/playground.html#interacting-with-the-editor-listening-to-mouse-events 就是一个很好的例子