mirror of
https://github.com/jimeh/.emacs.d.git
synced 2026-02-19 13:46:41 +00:00
40 lines
1.1 KiB
EmacsLisp
40 lines
1.1 KiB
EmacsLisp
;;; siren-reopen.el --- jimeh's Emacs Siren: reopen helpers.
|
|
|
|
;;; Commentary:
|
|
|
|
;; Helper function to reopen buffers.
|
|
|
|
;;; Code:
|
|
|
|
(defun siren-reopen ()
|
|
"Reopen current buffer.
|
|
|
|
If the current buffer is backed by a readable file, it will kill
|
|
the buffer, and reopen the file.
|
|
|
|
If current buffer is the *scratch* buffer, it will create a new scratch buffer."
|
|
(interactive)
|
|
(cond (buffer-file-name (siren-reopen--current-file))
|
|
((string= (buffer-name) "*scratch*") (siren-reopen--scratch-buffer))))
|
|
|
|
(defun siren-reopen--current-file ()
|
|
"Reopen the current file."
|
|
(interactive)
|
|
(let ((filename buffer-file-name))
|
|
(if (not (file-readable-p filename))
|
|
(message "Buffer is not visiting a readable file!")
|
|
(kill-buffer)
|
|
(find-file filename))))
|
|
|
|
(defun siren-reopen--scratch-buffer ()
|
|
"Reopen the *scratch* buffer."
|
|
(interactive)
|
|
(let ((buffer (get-buffer "*scratch*")))
|
|
(when (and buffer (not (buffer-file-name buffer)))
|
|
(with-current-buffer buffer
|
|
(kill-buffer))
|
|
(scratch-buffer))))
|
|
|
|
(provide 'siren-reopen)
|
|
;;; siren-reopen.el ends here
|