invsblduck

joined 11 months ago
[–] invsblduck@alien.top 1 points 10 months ago

It's pretty tiny compared to a lot of languages

Correction: It's actually rather sprawling and one of the least "compact" languages. [1] Doesn't mean we shouldn't read and write it, though.

[1] See section 2, "Compactness and Orthogonality", in Chapter 4 of The Art of Unix Programming, by Eric Raymond (2003).

[–] invsblduck@alien.top 1 points 10 months ago

In this case, his negative comment karma comes from heavy involvement in subs regarding overseas affairs (i.e., opinions about current events in Israel). His question about learning elisp was genuine.

[–] invsblduck@alien.top 1 points 10 months ago

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, 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.

Apparently word splitting is configurable with ediff-forward-word-function ?

[–] invsblduck@alien.top 1 points 10 months ago (1 children)

I'm proud of you for:

  1. Tying these disciplines together.

I'm never really sure how many other people participate in all these interests. I am a Linux hacker of 25 years and mechanical keyboard enthusiast of at least 20 years (currently type on a 5x7 Dactyl-Manuform that mimics an ErgoDox, but just acquired a Svalboard), and I work deeply Emacs every day. Historically I loved installing Linux or NetBSD on all things, whether a Palm Pilot or first-gen Xbox; these days, it runs on my "phone" (mobile computer), my TV, my Wi-Fi access points, etc.

  1. Taking a beating in comments for your playful curiosity and achievement, but keeping your head up and being really graceful about it.
[–] invsblduck@alien.top 1 points 10 months ago (2 children)

Depends on the configured diff program and its options.