From 8d97d1f2063f19c0c679e54fc082691a495c9303 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Sun, 10 Jan 2016 23:43:14 -0500 Subject: Rewrite configuration with use-package --- lisp/km-buffer-cleanup.el | 52 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 lisp/km-buffer-cleanup.el (limited to 'lisp/km-buffer-cleanup.el') diff --git a/lisp/km-buffer-cleanup.el b/lisp/km-buffer-cleanup.el new file mode 100644 index 0000000..ac0b008 --- /dev/null +++ b/lisp/km-buffer-cleanup.el @@ -0,0 +1,52 @@ +;;; km-buffer-cleanup.el --- Clean up buffer on save + +;; Copyright (C) 2012-2016 Kyle Meyer + +;; Author: Kyle Meyer +;; URL: https://github.com/kyleam/emacs.d + +;; 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 . + +;;; Code: + +(require 'whitespace) + +(defvar-local km/prevent-cleanup nil + "If set, `km/cleanup-buffer' does not perform clean up on save.") + +(defun km/toggle-prevent-cleanup () + "Toggle state of `km/prevent-cleanup'." + (interactive) + (if km/prevent-cleanup + (progn + (message "Allowing cleanup on save") + (kill-local-variable 'whitespace-style) + (global-whitespace-mode 0) + (global-whitespace-mode 1)) + (message "Preventing cleanup on save") + (setq-local whitespace-style + '(face trailing indentation + tab-mark space-mark newline-mark)) + (global-whitespace-mode 0) + (global-whitespace-mode 1)) + (setq km/prevent-cleanup (not km/prevent-cleanup))) + +(defun km/cleanup-buffer () + (interactive) + (unless km/prevent-cleanup + (whitespace-cleanup) + (delete-trailing-whitespace))) + +(provide 'km-buffer-cleanup) +;;; km-buffer-cleanup.el ends here -- cgit v1.2.3