我想使用codemirror (而不是合并工具)实现diff模式。类似于: git diff。我使用了Codemirror官方的diff模式,但是,当用户添加或更改了某些内容时,无法获取记号赋予器(+,-)。
发布于 2021-07-08 00:54:05
CodeMirror比较模式仅根据其格式突出显示一行(例如,如果行以"+“开头,它将以绿色突出显示;如果以”-“开头,它将以红色突出显示行)。您需要自己生成diff文本。有几个库可供您使用,例如jsdiff
你可以像这样得到两个文本之间的差异:
import * as Diff from 'diff';
var text1=`
line1
line2
line3
`;
var text2=`
line0
line3
line4
line5
`;
var diff = Diff.createTwoFilesPatch('old', 'new', text1, text2, { context: 1 });
console.log('diff', diff);它将产生以下差异:
diff ===================================================================
--- old [object Object]
+++ new
@@ -1,4 +1,7 @@
-line1
-line2
+line0
+
line3
+
+line4
+line5之后,您可以将此文本插入到CodeMirror中。
https://stackoverflow.com/questions/49747205
复制相似问题