+doom:scratch-buffer => doom/scratch-buffer

This commit is contained in:
Henrik Lissner 2017-07-03 03:11:54 +02:00
parent 7477546892
commit 8c1fb1e6b2
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
4 changed files with 29 additions and 26 deletions

View file

@ -224,3 +224,27 @@ for function signatures or notes. Run again to clear the header line."
(setq content (replace-regexp-in-string "\\s-+" " " content))
content)))))
;;;###autoload
(defun doom/scratch-buffer (&optional beg end arg)
"Opens the scratch buffer in a popup window.
If ARG (universal argument) is non-nil, open it in the current window instead of
a popup.
If a region is active, copy it into the scratch buffer."
(interactive "rP")
(let ((text (and beg end (buffer-substring beg end)))
(mode major-mode)
(derived-p (derived-mode-p 'prog-mode 'text-mode))
(old-project (doom-project-root))
(new-buf (get-buffer-create "*doom:scratch*")))
(if arg
(switch-to-buffer new-buf)
(doom-popup-buffer new-buf))
(with-current-buffer new-buf
(setq default-directory old-project)
(when (and (not (eq major-mode mode))
derived-p
(functionp mode))
(funcall mode))
(if text (insert text)))))