all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Stefan Monnier via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Samuel Wales <samologist@gmail.com>
Cc: 61396@debbugs.gnu.org
Subject: bug#61396: diff mode could distinguish changed from deleted lines
Date: Mon, 04 Sep 2023 17:06:06 -0400	[thread overview]
Message-ID: <jwv8r9loe93.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <CAJcAo8tT8T4m4cXJcz9cv3h=1EPGarTr8CxzgygTaCyL0W8GAA@mail.gmail.com> (Samuel Wales's message of "Thu, 9 Feb 2023 20:25:25 -0700")

> in diff mode, with diff -u, if a line in A was added to
> in B, you can't tell by looking at the A version whether it was
> =deleted= in B or =changed= from A to B.  you have to
> manually find it in B and then compare.  here is an example:

It took me a bit of re-reading and thinking to form an opinion, but
IIUC there are 2 distinct issues at play:

- First, `diff -u` (contrary to `diff -c`) does not distinguish between
  `removed/added` and `modified` lines.   And `diff-mode` currently inherits
  this weakness.  I think there's a good case to be made for
  highlighting the "truly added" and "truly removed" lines differently
  from those that are modified.
  I'd argue that a "logical" choice would be to highlight them the same
  way as those parts highlighted by `diff-refine-hunk`
  (i.e. `diff-refine-removed` and `diff-refine-added`) since that's how
  refinement would highlight them if we were to ask it to.

- Second, `diff-refine-hunk` highlights the text actually added and the
  text actually removed within modified lines, but not the place where
  text is added/removed in the other version.
  [ As pointed out by Juri (thanks for Cc'ing me, BTW) this is linked to
    a comment I left in `smerge--refine-highlight-change`, tho that
    comment was thinking of a slightly different feature (namely the
    ability to jump from one version to the other, or the addition of
    a "phantom" cursor highlighting the corresponding place in the other
    version).  ]
  Here the problem is mostly that we don't have a standard way to
  highlight a "place" (which is something that occupies 0 pixels on
  screen).  But we could follow the (not unanimously appreciated) lead
  of `rectangle-mode` and insert a thin (highlighted) visual space to
  mark those places.  That should be not too hard to do, but it would
  have to be optional I think because it'd tend to break alignment, so
  some people may not find the upside significant enough to justify
  the downsides.


-- Stefan






  parent reply	other threads:[~2023-09-04 21:06 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-10  3:25 bug#61396: diff mode could distinguish changed from deleted lines Samuel Wales
2023-02-10  7:17 ` Juri Linkov
2023-02-10 23:49   ` Samuel Wales
2023-02-10 23:50     ` Samuel Wales
2023-02-10 13:58 ` Dmitry Gutov
2023-02-11  4:25 ` Richard Stallman
2023-02-11  5:07   ` Samuel Wales
2023-02-11 17:54     ` Juri Linkov
2023-02-12  0:52       ` Samuel Wales
2023-02-12  1:04         ` Dmitry Gutov
2023-02-12  1:07           ` Samuel Wales
2023-02-12  1:52             ` Dmitry Gutov
2023-02-12  2:12               ` Samuel Wales
2023-02-12  2:17                 ` Dmitry Gutov
2023-02-12  2:54                   ` Samuel Wales
2023-02-12  8:31         ` Juri Linkov
2023-02-12  9:03           ` Samuel Wales
2023-02-12 17:20             ` Juri Linkov
2023-02-12 22:16               ` Samuel Wales
2023-02-12 22:48                 ` Samuel Wales
2023-07-23  6:04                   ` Samuel Wales
2023-07-24 10:21                     ` Robert Pluim
2023-07-24 23:38                       ` Samuel Wales
2023-07-24 23:39                         ` Samuel Wales
2023-07-25  8:11                           ` Robert Pluim
2023-07-25 21:29                             ` Samuel Wales
2023-08-10 23:56                     ` Samuel Wales
2023-08-11  0:41                       ` Dmitry Gutov
2023-09-03 17:29                     ` Juri Linkov
2023-03-08 21:14 ` Samuel Wales
2023-09-04 21:06 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2023-09-04 22:38   ` Samuel Wales
2023-09-07  2:34     ` Samuel Wales
2023-09-12 22:11   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-09-12 22:31     ` Dmitry Gutov
2023-09-13 14:51       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-09-14  6:05         ` Samuel Wales
2023-09-14 22:42         ` Dmitry Gutov
2023-09-15  1:34           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-09-15  1:58             ` Samuel Wales
2023-09-15 10:20             ` Dmitry Gutov
2023-09-30 17:38         ` Juri Linkov
2023-09-30 18:18           ` Eli Zaretskii
2023-10-01  6:32             ` Juri Linkov
2023-10-01 15:54           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-10-01 18:53             ` Juri Linkov
2023-10-01 22:16               ` Samuel Wales
2023-10-02  6:48                 ` Juri Linkov
2023-10-02 16:56   ` Juri Linkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=jwv8r9loe93.fsf-monnier+emacs@gnu.org \
    --to=bug-gnu-emacs@gnu.org \
    --cc=61396@debbugs.gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=samologist@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.