diff options
author | Tom Willemse | 2018-05-28 09:23:25 -0700 |
---|---|---|
committer | Tom Willemse | 2018-05-28 09:24:47 -0700 |
commit | f6bd936f91fccd51a1160f9fc012b23ab52c73b9 (patch) | |
tree | 06a38b477ac452b7a09a684ff8cd0d6cbecb8edc /emacs/.emacs.d/local-lisp | |
parent | 686ce4b560383540034fc51021572f158ef5ca49 (diff) | |
download | new-dotfiles-f6bd936f91fccd51a1160f9fc012b23ab52c73b9.tar.gz new-dotfiles-f6bd936f91fccd51a1160f9fc012b23ab52c73b9.zip |
Start moving away from Org mode
Diffstat (limited to 'emacs/.emacs.d/local-lisp')
-rw-r--r-- | emacs/.emacs.d/local-lisp/destroy-trailing-whitespace.el | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/emacs/.emacs.d/local-lisp/destroy-trailing-whitespace.el b/emacs/.emacs.d/local-lisp/destroy-trailing-whitespace.el new file mode 100644 index 0000000..ed170df --- /dev/null +++ b/emacs/.emacs.d/local-lisp/destroy-trailing-whitespace.el @@ -0,0 +1,66 @@ +;;; destroy-trailing-whitespace.el --- Destroy all trailing whitespace -*- lexical-binding: t; -*- + +;; Copyright (C) 2016 Tom Willemse + +;; Author: Tom Willemse <chelys@drd> +;; Keywords: convenience + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;; This library offers a single mode that will delete all trailing +;; whitespace before saving any file. It tries to be intelligent +;; enough to only do this for modes where trailing whitespace is not +;; meaningful. Currently it only keeps whitespace around in +;; `markdown-mode' since it uses two spaces at the end of a line to +;; signify a line break. +;; +;; To use this mode in all buffers, add the following to your init +;; file: +;; +;; (require 'destroy-trailing-whitespace) +;; (global-destroy-trailing-whitespace-mode) +;; +;; To use this mode in just some buffers add it to your preferred +;; hook. For example, to use it only in `prog-mode' buffers: +;; +;; (require 'destroy-trailing-whitespace) +;; (add-hook 'prog-mode-hook 'destroy-trailing-whitespace-mode) + +;;; Code: + +(defun destroy-trailing-whitespace () + "Delete trailing whitespace everywhere, except in Markdown buffers." + (if (not (eq major-mode 'markdown-mode)) + (delete-trailing-whitespace))) + +;;;###autoload +(define-minor-mode destroy-trailing-whitespace-mode + "Destroy all trailing whitespace before saving the buffer." + :lighter "" + (if destroy-trailing-whitespace-mode + (add-hook 'before-save-hook 'delete-trailing-whitespace nil :local) + (remove-hook 'before-save-hook 'delete-trailing-whitespace :local))) + +;;;###autoload +(define-minor-mode global-destroy-trailing-whitespace-mode + "Destroy all trailing whitespace before saving any open buffer." + :lighter "" :global t + (if global-destroy-trailing-whitespace-mode + (add-hook 'before-save-hook 'destroy-trailing-whitespace) + (remove-hook 'before-save-hook 'destroy-trailing-whitespace))) + +(provide 'destroy-trailing-whitespace) +;;; destroy-trailing-whitespace.el ends here |