如何计算Monaco差异编辑器中已更改的行数?

时间:2019-05-24 05:33:24

标签: javascript reactjs diff monaco-editor

我想在monaco diff编辑器中计算更改的行数。在“ Github”中看起来像什么,可以看到添加或删除了多少行。 例如:https://microsoft.github.io/monaco-editor/playground.html#creating-the-diffeditor-navigating-a-diff 我想显示删除2行,并添加2行。

谢谢。

1 个答案:

答案 0 :(得分:1)

您将需要访问编辑器功能getLineChanges()

// It will get all the changes including adds/removals and modified
diffEditor.getLineChanges(); 
console.log(diffEditor.getLineChanges());

/* It will return something like this:

(3) [{…}, {…}, {…}]
  0:
    charChanges: undefined
    modifiedEndLineNumber: 0
    modifiedStartLineNumber: 1
    originalEndLineNumber: 2
    originalStartLineNumber: 2
    __proto__: Object
  1:
    charChanges: Array(1)
      0:
        modifiedEndColumn: 5
        modifiedEndLineNumber: 7
        modifiedStartColumn: 1
        modifiedStartLineNumber: 7
        originalEndColumn: 0
        originalEndLineNumber: 0
        originalStartColumn: 0
        originalStartLineNumber: 0

*/

然后,您需要遍历它们以获取恢复它们分析数组和子对象的简历。

此处有更多信息:https://microsoft.github.io/monaco-editor/api/interfaces/monaco.editor.idiffeditor.html#getlinechanges