In this ~15 minute video, I show how to inspect the differences between two or three files in a side-by-side comparison. Ediff lets you merge changes from on...
Just popped open the Ediff code and there is a significant amount of effort put into ignoring whitespace. Like, it’s not a shortcoming per se that it can’t show this content but rather a deliberate onslaught to avoid it at all costs. The author must have been really annoyed by whitespace. 😂
I mostly use (ediff-buffers) in my day-to-day work in Spacemacs to compare two regions that I’ve narrowed to indirect buffers, and, interestingly, it does show me diffs that contain whitespace-only changes and prints the following to the echo area:
I did a quick test with other ediff functions bound in Spacemacs, and ediff-windows-linewise has the same behavior, but ediff-windows-wordwise does not -- it completely ignored diffs that were whitespace only and there was not even ## binding available in that ediff session.
When browsing the code, I found a local variable named ediff-whitespace (which u/doolio_ has already pointed out here in reply to you, actually), which is curious:
(defvar-local ediff-whitespace " \n\t\f\r\240"
"Characters constituting white space.
These characters are ignored when differing regions are split into words.")
(\240 is Unicode symbol for nonbreakable whitespace.)
I wonder whether this variable can be set to nil.
PS:
It is because highlights are done on word level, and whitespaces are not words.
Oh, interesting.
I see.
Just popped open the Ediff code and there is a significant amount of effort put into ignoring whitespace. Like, it’s not a shortcoming per se that it can’t show this content but rather a deliberate onslaught to avoid it at all costs. The author must have been really annoyed by whitespace. 😂
I mostly use
(ediff-buffers)
in my day-to-day work in Spacemacs to compare two regions that I’ve narrowed to indirect buffers, and, interestingly, it does show me diffs that contain whitespace-only changes and prints the following to the echo area:https://preview.redd.it/587vplu76e1c1.png?width=1896&format=png&auto=webp&s=e3d559ae695972f62865560b96f23953b4b26027
I did a quick test with other ediff functions bound in Spacemacs, and
ediff-windows-linewise
has the same behavior, butediff-windows-wordwise
does not -- it completely ignored diffs that were whitespace only and there was not even##
binding available in that ediff session.When browsing the code, I found a local variable named ediff-whitespace (which u/doolio_ has already pointed out here in reply to you, actually), which is curious:
(
\240
is Unicode symbol for nonbreakable whitespace.)I wonder whether this variable can be set to nil.
PS:
Apparently word splitting is configurable with ediff-forward-word-function ?