aboutsummaryrefslogtreecommitdiffstats
path: root/emacs
diff options
context:
space:
mode:
authorGravatar Tom Willemse2016-07-25 22:14:22 +0200
committerGravatar Tom Willemse2016-07-25 22:14:22 +0200
commit425c0318851fbd88485185f1be091af7c56c794d (patch)
tree94b16f5af1e78fb4da59b0e1afd33e19e7ec6c8b /emacs
parentaacc23547f595da7c19202c405259e5e78856d34 (diff)
downloadnew-dotfiles-425c0318851fbd88485185f1be091af7c56c794d.tar.gz
new-dotfiles-425c0318851fbd88485185f1be091af7c56c794d.zip
Add some whitespace settings
Diffstat (limited to 'emacs')
-rw-r--r--emacs/.emacs.d/init.el15
-rw-r--r--emacs/.emacs.d/vendor-lisp/destroy-trailing-whitespace/destroy-trailing-whitespace.el66
2 files changed, 81 insertions, 0 deletions
diff --git a/emacs/.emacs.d/init.el b/emacs/.emacs.d/init.el
index 42854f0..5db6481 100644
--- a/emacs/.emacs.d/init.el
+++ b/emacs/.emacs.d/init.el
@@ -167,6 +167,21 @@ This is currently the data directory under the
;; whereabouts I am, so they just take up space.
(scroll-bar-mode -1)
+;;;; Whitespace:
+;; I hate it when trailing whitespace is left around a file. I've been
+;; using this for years, and apart from having some trouble working
+;; with people who don't pay attention to it, it has worked
+;; flawlessly.
+(ensure-library destroy-trailing-whitespace
+ :path "vendor-lisp/destroy-trailing-whitespace")
+(require 'destroy-trailing-whitespace)
+(global-destroy-trailing-whitespace-mode)
+
+;; Having a final newline at the end of the file is always a good
+;; idea. Some programs just don't work without it and others produce
+;; some strange results. Github diffs are an example.
+(setq require-final-newline t)
+
;;;; Minor modes:
;;;;; Paredit:
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