From bcf5e2150d3406930eb10129cb287c12bb5bbfe9 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Fri, 18 Dec 2015 01:13:23 +0100 Subject: Move raise-scratch to separate library --- emacs/.emacs.d/site-lisp/oni-scratch.el | 52 +++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 emacs/.emacs.d/site-lisp/oni-scratch.el (limited to 'emacs/.emacs.d/site-lisp/oni-scratch.el') diff --git a/emacs/.emacs.d/site-lisp/oni-scratch.el b/emacs/.emacs.d/site-lisp/oni-scratch.el new file mode 100644 index 0000000..815ed07 --- /dev/null +++ b/emacs/.emacs.d/site-lisp/oni-scratch.el @@ -0,0 +1,52 @@ +;;; oni-scratch.el --- Scratch functions and commands -*- lexical-binding: t; -*- + +;; Copyright (C) 2015 Tom Willemse + +;; Author: Tom Willemse +;; Keywords: + +;; 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: + +;; Here are some functions and commands related to the *scratch* +;; buffer. + +;;; Code: + +;;;###autoload +(defun oni:raise-scratch (&optional mode) + "Show the *scratch* buffer. +If called with a universal argument, ask the user which mode to +use. If MODE is not nil, open a new buffer with the name +*MODE-scratch* and load MODE as its major mode." + (interactive (list (if current-prefix-arg + (read-string "Mode: ") + nil))) + (let* ((bname (if mode + (concat "*" mode "-scratch*") + "*scratch*")) + (buffer (get-buffer bname)) + (mode-sym (intern (concat mode "-mode")))) + + (unless buffer + (setq buffer (generate-new-buffer bname)) + (with-current-buffer buffer + (when (fboundp mode-sym) + (funcall mode-sym)))) + + (select-window (display-buffer buffer)))) + +(provide 'oni-scratch) +;;; oni-scratch.el ends here -- cgit v1.2.3-54-g00ecf