• 0 Posts
  • 5 Comments
Joined 11 months ago
cake
Cake day: October 16th, 2023

help-circle


  • invsblduck@alien.topBtoEmacs@communick.newsEmacs: ediff basics
    link
    fedilink
    English
    arrow-up
    1
    ·
    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 ?


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