aboutsummaryrefslogtreecommitdiffstats
path: root/emacs/.emacs.d/vendor-lisp/destroy-trailing-whitespace/destroy-trailing-whitespace.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/.emacs.d/vendor-lisp/destroy-trailing-whitespace/destroy-trailing-whitespace.el')
-rw-r--r--emacs/.emacs.d/vendor-lisp/destroy-trailing-whitespace/destroy-trailing-whitespace.el66
1 files changed, 66 insertions, 0 deletions
diff --git a/emacs/.emacs.d/vendor-lisp/destroy-trailing-whitespace/destroy-trailing-whitespace.el b/emacs/.emacs.d/vendor-lisp/destroy-trailing-whitespace/destroy-trailing-whitespace.el
new file mode 100644
index 0000000..ed170df
--- /dev/null
+++ b/emacs/.emacs.d/vendor-lisp/destroy-trailing-whitespace/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