Subject: bug#78579: 30.0.92; Global variant of delete-trailing-whitespace-mode

From: Ship Mints <[email-masked]>
Date: Sat, 24 May 2025 11:23:13 -0400

On Sat, May 24, 2025 at 11:15 AM Stefan Monnier via Bug reports for GNU
Emacs, the Swiss army knife of text editors <[email-masked]> wrote:

> > `delete-trailing-whitespace-mode` was introduced in commit 8a19c249f81.
> > Should there also be a `global-delete-trailing-whitespace-mode`?
> > This would allow
> >   (global-delete-trailing-whitespace-mode 1)
> > and turning it off in an individual buffer with
> >   (delete-trailing-whitespace-mode -1)
>
> To define such a mode, we'll need to know when to enable it and when
> not: I'd be surprised if adding `delete-trailing-whitespace` globally
> to `before-save-hook` doesn't cause problems in various circumstances.
>
> I don't have enough experience with that, so I'll let others decide if
> and how to do it.
>

FWIW, this is how I manage that and even then I might enable it for
markdown mode:

(defun my/before-save-hook ()
  "Delete trailing white space before saving a buffer, except
`markdown-mode'."
  (unless (derived-mode-p 'markdown-mode)
    (delete-trailing-whitespace)))
(add-hook 'before-save-hook #'my/before-save-hook)

I suppose an exclusion mode list or some other conditionals could be baked
into the mode.