WinMerge / winmerge

WinMerge is an Open Source differencing and merging tool for Windows. WinMerge can compare both folders and files, presenting differences in a visual text format that is easy to understand and handle.
https://winmerge.org/
GNU General Public License v2.0
6.07k stars 775 forks source link

JSON report #2285

Open Grovkillen opened 2 months ago

Grovkillen commented 2 months ago

The HTML report is great but I would love to see a programmatically aimed report based on JSON. See this example (just food for thought):

[
    {
        "difference": "d1",
        "row": 2,
        "column": 15,
        "raw row value before": "row full value \"2\"",
        "raw row value after": "row full value '2'",
        "difference before": "\"",
        "difference after": "'",
        "type": "change",
    },
    {
        "difference": "d2",
        "row": 2,
        "column": 17,
        "raw row value before": "row full value \"2\"",
        "raw row value after": "row full value '2'",
        "difference before": "\"",
        "difference after": "'",
        "type": "change",
    },
    {
        "difference": "d3",
        "row": 212,
        "column": 1,
        "raw row value before": "row text",
        "raw row value after": "",
        "difference before": "row text",
        "difference after": "",
        "type": "delete",
    },
    {
        "difference": "d4",
        "row": 404,
        "column": 15,
        "raw row value before": "row text that I have now changed",
        "raw row value after": "row text that we have now changed",
        "difference before": "I",
        "difference after": "we",
        "type": "change",
    },
    {
        "difference": "d5",
        "row": 600,
        "column": 1,
        "raw row value before": "",
        "raw row value after": "row that is added",
        "difference before": "",
        "difference after": "row that is added",
        "type": "added",
    }
]
Grovkillen commented 1 week ago

I have found this tool: https://github.com/josephburnett/jd

Online demo: http://play.jd-tool.io/

Perhaps look at that for inspiration?