feature/workspaces: save to autosave if name is omitted
This commit is contained in:
parent
a127952f70
commit
6a026fade2
2 changed files with 20 additions and 14 deletions
|
@ -91,8 +91,11 @@ Returns t on success, nil otherwise."
|
||||||
(defun +workspace-save-session (&optional name)
|
(defun +workspace-save-session (&optional name)
|
||||||
"Save a whole session as NAME. If NAME is nil, use `persp-auto-save-fname'.
|
"Save a whole session as NAME. If NAME is nil, use `persp-auto-save-fname'.
|
||||||
Return t on success, nil otherwise."
|
Return t on success, nil otherwise."
|
||||||
(let ((fname (or name persp-auto-save-fname)))
|
(when (or (not name)
|
||||||
(and (persp-save-state-to-file fname) t)))
|
(equal name persp-auto-save-fname))
|
||||||
|
(setq name persp-auto-save-fname
|
||||||
|
persp-auto-save-opt 0))
|
||||||
|
(and (persp-save-state-to-file name) t))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +workspace-new (name)
|
(defun +workspace-new (name)
|
||||||
|
@ -169,9 +172,11 @@ session."
|
||||||
"Session to load: "
|
"Session to load: "
|
||||||
(directory-files persp-save-dir nil "^[^_.]")
|
(directory-files persp-save-dir nil "^[^_.]")
|
||||||
nil t))))
|
nil t))))
|
||||||
(let ((name (or name "last")))
|
(condition-case ex
|
||||||
(+workspace-load-session name)
|
(let ((name (or name persp-auto-save-fname)))
|
||||||
(+workspace-message (format "'%s' workspace loaded" name) 'success)))
|
(+workspace-load-session name)
|
||||||
|
(+workspace-message (format "'%s' workspace loaded" name) 'success))
|
||||||
|
'(error (+workspace-error (cadr ex) t))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +workspace/save (name)
|
(defun +workspace/save (name)
|
||||||
|
@ -197,10 +202,10 @@ the session as."
|
||||||
"Save session as: "
|
"Save session as: "
|
||||||
(directory-files persp-save-dir nil "^[^_.]")))))
|
(directory-files persp-save-dir nil "^[^_.]")))))
|
||||||
(condition-case ex
|
(condition-case ex
|
||||||
(let ((name (or name "last")))
|
(let ((name (or name persp-auto-save-fname)))
|
||||||
(if (+workspace-save-session name)
|
(if (+workspace-save-session name)
|
||||||
(+workspace-message (format "Saved session as %s" name) 'success)
|
(+workspace-message (format "Saved session as '%s'" name) 'success)
|
||||||
(error "Couldn't save session as %s" name)))
|
(error "Couldn't save session as '%s'" name)))
|
||||||
'(error (+workspace-error (cadr ex) t))))
|
'(error (+workspace-error (cadr ex) t))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
|
|
|
@ -1,13 +1,14 @@
|
||||||
;;; feature/workspaces/config.el
|
;;; feature/workspaces/config.el
|
||||||
|
|
||||||
;; `persp-mode' gives me workspaces, a workspace-restricted `buffer-list', and
|
;; `persp-mode' gives me workspaces, a workspace-restricted `buffer-list', and
|
||||||
;; file-based session persistence. I had used workgroups2 for this, but
|
;; file-based session persistence. I had used workgroups2 before this, but
|
||||||
;; abandoned it because of its instability and impact on performance.
|
;; abandoned it because of its instability and impact on performance.
|
||||||
;; `persp-mode' has proven faster and more reliable (and it's still maintained).
|
;; `persp-mode' has proven faster and more reliable (and it's still maintained).
|
||||||
;;
|
;;
|
||||||
;; I've disabled auto-load/save. I prefer that session persistence be manual.
|
;; By default, sessions are auto-saved, but not auto-loaded. Use :ss or
|
||||||
;; You can save a session with :ss or `+workspace/save-session', and load the
|
;; `+workspace/save-session' to save, and :sl or `+workspace/load-session' to
|
||||||
;; last saved session with :sl or `+workspace/load-session'.
|
;; load the last autosaved session. You can give sessions a custom name so they
|
||||||
|
;; can be loaded much later.
|
||||||
;;
|
;;
|
||||||
;; Note: persp-mode requires `workgroups' for file persistence in Emacs 24.4.
|
;; Note: persp-mode requires `workgroups' for file persistence in Emacs 24.4.
|
||||||
|
|
||||||
|
@ -28,8 +29,8 @@
|
||||||
persp-init-new-frame-behaviour-override 'auto-temp
|
persp-init-new-frame-behaviour-override 'auto-temp
|
||||||
;; Don't auto-load on startup
|
;; Don't auto-load on startup
|
||||||
persp-auto-resume-time -1
|
persp-auto-resume-time -1
|
||||||
;; Don't auto-save
|
;; auto-save on kill
|
||||||
persp-auto-save-opt 0)
|
persp-auto-save-opt 1)
|
||||||
|
|
||||||
(add-hook 'after-init-hook 'persp-mode)
|
(add-hook 'after-init-hook 'persp-mode)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue