【问题标题】:Make the CodeMirror merge view addon display a count of differences found使 CodeMirror 合并视图插件显示发现的差异计数
【发布时间】:2013-09-14 14:49:57
【问题描述】:

在使用 CodeMirror 的 merge addon 时,我有兴趣了解 L.H.S. 中的差异计数。和 R.H.S. textareas。

有没有办法显示计数?

【问题讨论】:

    标签: javascript textarea diff codemirror


    【解决方案1】:

    您可以自己实现它,通过使用 merge 插件所依赖的 diff-match-patch 库。编写一个使用以下算法的updateDiffCount 函数:

    1. 将要比较的两个文本版本作为字符串获取。
    2. 在字符串上调用diff_main,在结果上调用diff_cleanupSemantic,如this code example
    3. 遍历结果并计算第一个元素不是0的结果数组。
    4. 将页面上某些元素的文本内容设置为该计数。

    每当textarea 中的文本被编辑时,在延迟之后运行这个updateDiffCount 函数。

    【讨论】:

      【解决方案2】:

      我在 Rory 的解决方案中添加了一些代码,使其更易于实施:

      var text1 = document.getElementById('text1').value;
      var text2 = document.getElementById('text2').value;
      
      var d = dmp.diff_main(text1, text2);
      
      // you can optionally add some cleanup
      // dmp.diff_cleanupSemantic(d); or dmp.diff_cleanupEfficiency(d);
      
      alert('Difference count: ' + d.filter(l => l[0] === -1).length);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多