如何在像 VSCode 这样的摩纳哥编辑器中突出显示合并冲突块?

How to highlight merge conflict blocks in monaco-editor like VSCode?

VSCode 有一个很好的功能,可以通过这种方式突出显示合并冲突块:

所以我想知道如何在摩纳哥编辑器中实现这一点?

我查看了 API 并找到了一个相关的:colorizeModelLine(model: ITextModel, lineNumber: number, tabSize?: number): string

我已经通过以下代码实现了这一点:

 this.editor.deltaDecorations(
        this.editor.getModel().getAllDecorations(),
        [{
            range: new monaco.Range(
              conflictBlock.right_start,
              0,
              conflictBlock.right_end,
              0
            ),
            options: {
              isWholeLine: true,
              className: 'rightLineDecoration',
              marginClassName: 'rightLineDecoration'
            }
          }]
      )

看起来像这样:

完整代码可在以下位置找到:https://github.com/Symbolk/IntelliMerge-UI