From 425c0318851fbd88485185f1be091af7c56c794d Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Mon, 25 Jul 2016 22:14:22 +0200 Subject: Add some whitespace settings --- .../destroy-trailing-whitespace.el | 66 ++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 emacs/.emacs.d/vendor-lisp/destroy-trailing-whitespace/destroy-trailing-whitespace.el (limited to 'emacs/.emacs.d/vendor-lisp/destroy-trailing-whitespace') 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 +;; 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 . + +;;; 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 -- cgit v1.2.3-54-g00ecf