summaryrefslogtreecommitdiffstats
path: root/emacs/.emacs.d/site-lisp/oni-scratch.el
diff options
context:
space:
mode:
authorGravatar Tom Willemse2015-12-18 01:13:23 +0100
committerGravatar Tom Willemse2015-12-18 01:13:23 +0100
commitbcf5e2150d3406930eb10129cb287c12bb5bbfe9 (patch)
tree3655f9da6b4c536d8fc332d67e6bf6481f3ca57f /emacs/.emacs.d/site-lisp/oni-scratch.el
parenta5ee08bef3a587256bf5301788070dc1f8b4d8af (diff)
downloaddotfiles-bcf5e2150d3406930eb10129cb287c12bb5bbfe9.tar.gz
dotfiles-bcf5e2150d3406930eb10129cb287c12bb5bbfe9.zip
Move raise-scratch to separate library
Diffstat (limited to 'emacs/.emacs.d/site-lisp/oni-scratch.el')
-rw-r--r--emacs/.emacs.d/site-lisp/oni-scratch.el52
1 files changed, 52 insertions, 0 deletions
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 <tom@ryuslash.org>
+;; 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 <http://www.gnu.org/licenses/>.
+
+;;; 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