~bkhl/trimspace-mode

Emacs minor mode to trim trailing whitespace/newlines on save
Fail CI job if checkdoc produces any output
Commentary formatting fixes
Minor CI config improvements

clone

read-only
https://git.sr.ht/~bkhl/trimspace-mode
read/write
git@git.sr.ht:~bkhl/trimspace-mode

You can also use your local clone with git send-email.

trimspace-mode - A minor mode to trim trailing whitespace and newlines

Author: Björn Lindström bkhl@elektrubadur.se
Version: 1.1

This package provides a very minimal minor mode that adds a hook to run delete-trailing-whitespace before saving a file.

It also has the function trimspace-mode-maybe, which activates the mode only if the buffer does not already have traling whitespace or newlines.

In addition, require-final-newline is enabled, since it's assumed that if you want the editor to maintain trailing whitespace, you are most likely to also want to maintain a trailing final newline in all files.

This package provides a minimalistic minor mode that enables Emacs' built-in functions to trim/fix:

  • whitespace trailing off ends of lines.
  • multiple newlines at the end of a file.
  • empty lines at the end of a file.
  • missing newline at end of file.

It contains the function trimspace-mode-maybe, which activates the mode conditionally, only if it can not find pre-existing issues of any of these types.

The package has functions to detect if the file has any of these issues previously, but only uses built-in Emacs functionality to perform the clean-up, by specifically:

  • setting the variables require-final-newline and delete-trailing-lines locally.
  • adding the function delete-trailing-whitespace to before-save-hook.

This package is intentionally minimalistic and only concerned with whitespace trailing off lines and files, not other whitespace issues like multiple spaces, erronous mixing of tabs and spaces, &c. For that you may be interested in the package whitespace-mode, included in Emacs.

To enable this mode for any new files opened, but only if they are already clean of trailing whitespace and newlines, you can use this:

(add-hook 'prog-mode-hook 'trimspace-mode-maybe)
(add-hook 'text-mode-hook 'trimspace-mode-maybe)

Or something like this with use-package:

(use-package trimspace-mode
  :hook
  (prog-mode . trimspace-mode-maybe)
  (text-mode . trimspace-mode-maybe))

If you open a file with trailing whitespace and want to clean them out, you can enable the mode anyway with M-x trimspace-mode, which will then make Emacs perform clean-up the next time you save the file.


Converted from trimspace-mode.el by el2markdown.