diff --git a/oni-files.el b/oni-files.el new file mode 100644 index 0000000..9dfd6b5 --- /dev/null +++ b/oni-files.el @@ -0,0 +1,65 @@ +;;; oni-files.el --- File handling configuration -*- lexical-binding: t; -*- + +;; Copyright (C) 2017 Tom Willemse + +;; Author: Tom Willemse +;; Keywords: local +;; Version: 20171207003147 + +;; 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 is the generic file handling configuration for Emacs. It sets +;; the backup directory, automatic removal of trailing whitespace, +;; auto save settings, ensuring a final newline in every file, +;; versioned backups and time stamps. + +;;; Code: + +;;;###autoload(require 'oni-files) + +(defun oni-files--destroy-trailing-whitespace () + "Delete trailing whitespace everywhere, except in Markdown buffers." + (if (not (eq major-mode 'markdown-mode)) + (delete-trailing-whitespace))) + +(add-hook 'before-save-hook #'oni-files--destroy-trailing-whitespace) + +(add-hook 'before-save-hook 'time-stamp) + +(add-to-list 'auto-save-file-name-transforms + `(".*" ,(concat user-emacs-directory "data/auto-save-files/") t) + :append) + +(setq auto-save-list-file-prefix + (concat user-emacs-directory "data/auto-save-list/.saves-")) + +(setq backup-directory-alist + `((".*" . ,(concat user-emacs-directory "data/backup-files/")))) + +(setq delete-old-versions t) + +(setq kept-new-versions 20) + +(setq kept-old-versions 20) + +(setq require-final-newline t) + +(setq vc-make-backup-files t) + +(setq version-control t) + +(provide 'oni-files) +;;; oni-files.el ends here