- git diff accepts an arbitrary diff customization command
- use refmt to turn the text into the ast
- magic (hopefully not slow) ast diffing
- use refmt to print it back into diff text for e.g. terminal viewing
- bonus: time out with a good message if the diff takes more than a few seconds. I’ve had great but slow diff algs block the version control workflow. Not a good experience.
Been wanting this for a while now, but no time, and the implementations can be tricky to get right (ping me if you need help at any step ofc).
Credits to @sgrove for reminding me of this.