forked from cilame/v_jstools
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdiff_text.js
More file actions
94 lines (91 loc) · 2.3 KB
/
Copy pathdiff_text.js
File metadata and controls
94 lines (91 loc) · 2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
var value = '';
var orig1 = '';
var orig2 = '';
var dv
var panes = 2
var highlight = false
var connect = false
var collapse = false;
function initUI() {
if (value == null) return;
var target = document.getElementById("view");
target.innerHTML = "";
if(dv){
var left = dv.leftOriginal()
var curr = dv.editor()
var right = dv.rightOriginal()
value = curr.getValue()
if (left){ orig1 = left.getValue() }
if (right){ orig2 = right.getValue() }
}
dv = CodeMirror.MergeView(target, {
value: value,
origLeft: panes == 2 ? null : orig1,
orig: orig2,
lineNumbers: true,
mode: "text/html",
highlightDifferences: highlight,
// viewportMargin: Infinity,
// connect: connect,
collapseIdentical: false,
allowEditingOriginals: true,
// onChange: function (cm) {
// console.log(cm.getValue());
// },
});
var left = dv.leftOriginal()
var curr = dv.editor()
var right = dv.rightOriginal()
function changer(_saver, cm) {
chrome.storage.local.set({
[_saver]: cm.getValue(),
})
}
curr.on('change', changer.bind(null, 'diff_value'))
if (left){ left.on('change', changer.bind(null, 'diff_orig1')) }
if (right){ right.on('change', changer.bind(null, 'diff_orig2')) }
resize(dv, window.innerHeight-100)
}
window.onload = function(){
chrome.storage.local.get([
'diff_value',
'diff_orig1',
'diff_orig2',
], function (result) {
value = result['diff_value'] || ''
orig1 = result['diff_orig1'] || ''
orig2 = result['diff_orig2'] || ''
initUI();
})
}
window.onresize = function(){
resize(dv, window.innerHeight-100)
}
function resize(mergeView, height) {
if (mergeView.leftOriginal()){
mergeView.leftOriginal().setSize(null, height);
}
mergeView.editor().setSize(null, height);
if (mergeView.rightOriginal()){
mergeView.rightOriginal().setSize(null, height);
}
mergeView.wrap.style.height = height + "px";
}
var diff_0 = document.getElementById('diff_0')
if(diff_0){
diff_0.addEventListener('click', function(){
initUI()
})
}
var diff_1 = document.getElementById('diff_1')
if(diff_1){
diff_1.addEventListener('click', function(){
panes=2;initUI()
})
}
var diff_2 = document.getElementById('diff_2')
if(diff_2){
diff_2.addEventListener('click', function(){
panes=3;initUI()
})
}