Skip to content

damienrg/whitespace-cleanup-mode

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 

Repository files navigation

whitespace-cleanup-mode.el

This Emacs library minor mode will intelligently call whitespace-cleanup before buffers are saved.

whitespace-cleanup is a handy function, but putting it in before-save-hook for every buffer is overkill, and causes messy diffs when editing third-party code that did not initially have clean whitespace.

Additionally, whitespace preferences are often project-specific, and it's inconvenient to set up before-save-hook in a .dir-locals.el file.

whitespace-cleanup-mode is a minor mode which calls whitespace-cleanup before saving the current buffer, but only if the whitespace in the buffer was initially clean. It determines this by quickly checking to see if whitespace-cleanup would have any effect on the buffer.

Installation

If you choose not to use one of the convenient packages in Melpa and Marmalade, you'll need to add the directory containing whitespace-cleanup-mode.el to your load-path, and then (require 'whitespace-cleanup-mode).

Usage

Enable whitespace-cleanup-mode in an individual buffer like this:

M-x whitespace-cleanup-mode

Optionally enable it everywhere by default using global-whitespace-cleanup-mode. (You can override that by setting whitespace-cleanup-mode to nil in file or directory local variables.)

Alternatively, enable whitespace cleanup for a particular major mode:

(add-hook 'ruby-mode-hook 'whitespace-cleanup-mode)

To enable it for an entire project, set whitespace-cleanup-mode to t in your .dir-locals.el file.

This mode is built upon some functionality built into whitespace-mode, namely whitespace-action: if you would rather see a warning when saving a file with bogus whitespace, or even have the save aborted, then set that variable.


Steve Purcell's blog // @sanityinc on Twitter

About

In Emacs, intelligently call whitespace-cleanup on save

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Emacs Lisp 100.0%