Function: projectile-session-save
projectile-session-save is an autoloaded, interactive and
byte-compiled function defined in projectile.el.
Signature
(projectile-session-save &optional PROJECT)
Documentation
Save the current window layout and buffers as PROJECT's session.
PROJECT defaults to the current project's root. The layout is captured
from the selected frame, so this saves whichever project's tab is
current. Buffers are recorded via projectile-session-buffer-serializers;
a layout with no serializable buffer is not saved. Return non-nil on a
successful save.
Key Bindings
Source Code
;; Defined in ~/.emacs.d/elpa/projectile-20260820.1509/projectile.el
;;;###autoload
(defun projectile-session-save (&optional project)
"Save the current window layout and buffers as PROJECT's session.
PROJECT defaults to the current project's root. The layout is captured
from the selected frame, so this saves whichever project's tab is
current. Buffers are recorded via `projectile-session-buffer-serializers';
a layout with no serializable buffer is not saved. Return non-nil on a
successful save."
(interactive)
(let ((root (or project (projectile-project-root))))
(unless root
(user-error "Not in a project"))
(let* ((buffers (projectile-session--frame-buffers))
(records (delq nil (mapcar #'projectile-session--serialize-buffer
buffers))))
(cond
((null records)
(when (called-interactively-p 'any)
(message "No serializable buffers to save for %s" root))
nil)
((projectile-session--write
root
(list :projectile-session-version projectile-session--format-version
:root root
:buffers records
:window-state (window-state-get (frame-root-window) t)))
(when (called-interactively-p 'any)
(message "Saved session for %s" root))
t)
(t
(when (called-interactively-p 'any)
(message "Could not write session for %s" root))
nil)))))