unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Óscar Fuentes" <ofv@wanadoo.es>
To: emacs-devel@gnu.org
Subject: Re: Proposal: diff-remove-trailing-blanks
Date: Sun, 27 Apr 2008 22:05:56 +0200	[thread overview]
Message-ID: <hcdn83mj.fsf@telefonica.net> (raw)
In-Reply-To: 4814B81C.8030407@ig.com.br

Vinicius Jose Latorre <viniciusjl@ig.com.br> writes:

>>>      (while (re-search-forward "^[+!>] .*?[ \t]+$" (point-max) t)
>>
>> In unified diffs, there is no white space after `+'. In other diff
>> types, its seems that there is:
>>
>> +foo (changed or added line, unified diff)
>>> foo (changed or added line, normal diff)
>> ! foo (changed line, context diff)
>> + foo (added line, context diff)
>>
>> The solution is to test the format type and adapt the regexp for it:
>>
>> (diff-beginning-of-hunk 'try-harder)
>> (setq (diff-hunk-style))
>> (case style
>>     (unified (setq re ...)) ;; (+)
>>     (context (setq re ...)) ;; (+! )
>>     (t (setq re ...))) ;; (> )
>>
>
> Ok, so, maybe the functions below fix all of this.
[snip]
>      (while (re-search-forward "^[+!>].*?[ \t]+$" (point-max) t)

As every change indicator is followed by a white space in non-unified
format, this regexp matches every change on normal and context
formats. This is not bad, as the trailing whitespace condition is tested
again below for the source file, which is what matters. But then, you
could use a simpler regexp above ("^[+!>]", for instance), for behaving
the same with diff formats.

[snip]

> (defun diff-show-trailing-blanks ()
>  "Show trailing blanks in modified lines for diff-mode."
>  (interactive)
>  (let ((whitespace-style '(trailing))
>        (whitespace-trailing-regexp "^[+!>].*?\\([\t ]+\\)$"))
>    (whitespace-mode 1)))     ; display trailing blanks in diff buffer

My CVS Emacs is a few weeks old, son I can't test this, but it looks
good to me :-)

> (add-hook 'diff-mode-hook 'diff-show-trailing-blanks)

Of course this is left for the .emacs file of each own.

However, I suggest adding a key sequence to diff-mode that executes
diff-remove-trailing-blanks. I use C-c C-k. And perhaps a more adequate
name is diff-kill-trailing-whitespace.

Do you intend to install it on CVS soon?

-- 
Oscar





  reply	other threads:[~2008-04-27 20:05 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-26 14:59 Proposal: diff-remove-trailing-blanks Óscar Fuentes
2008-04-26 18:44 ` Dan Nicolaescu
2008-04-26 19:38   ` Óscar Fuentes
2008-04-26 19:50   ` Vinicius Jose Latorre
2008-04-26 20:08     ` Óscar Fuentes
     [not found]       ` <4813A244.4050908@ig.com.br>
2008-04-26 22:07         ` Óscar Fuentes
2008-04-27  2:30           ` Vinicius Jose Latorre
2008-04-27  2:59             ` Vinicius Jose Latorre
2008-04-27  4:04             ` Óscar Fuentes
     [not found]               ` <48146DF3.3090706@ig.com.br>
     [not found]                 ` <48147BC0.6080406@ig.com.br>
2008-04-27 15:15                   ` Óscar Fuentes
2008-04-27 17:30                     ` Vinicius Jose Latorre
2008-04-27 20:05                       ` Óscar Fuentes [this message]
2008-05-01  0:34                         ` Vinicius Jose Latorre
2008-05-01  1:04                           ` Óscar Fuentes
2008-05-02 14:22                           ` Stefan Monnier
2008-05-07  0:25                             ` Vinicius Jose Latorre
2008-05-07  2:04                               ` Stefan Monnier
2008-05-10  0:45                                 ` Vinicius Jose Latorre

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=hcdn83mj.fsf@telefonica.net \
    --to=ofv@wanadoo.es \
    --cc=emacs-devel@gnu.org \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).