Open
Description
Here's what I'm thinking a V2 of this project should look like
- no jQuery instead vanilla JS (maybe optional wrapper)
- typescript
- support new features of https://github.com/JBlond/php-diff
- change API to not require full files but instead resolve in a unified diff applyable by https://www.php.net/manual/en/function.xdiff-string-patch.php
- test coverage Tests #5
- support multiple diff instances on same page Multiple version compare #8
- maybe even support custom editing
Here's how I think it should work:
const merge = new PhPDiffMerge({
diff: document.getElementById('diff1'),
});
console.log(merge.allSolved);
/* false */
console.log(merge.differences);
/*
[{
left: { startLine: 1, endLine: 4 },
right: { startLine: 1, endLine: 7 },
resolved: false
}]
*/
merge.onChange((difference) => {
console.log(merge.allSolved);
/* true */
console.log(difference);
/*
{
left: { startLine: 1, endLine: 4 },
right: { startLine: 1, endLine: 7 },
resolved: true
}
*/
});
function onResolveClick() {
if (!merge.allSolved) {
throw new Error('please resolve all differences first');
}
myPhpBackend.POST('/resolved', { patch: merge.getPatch() }).then(() => console.log('YAY'));
}