@@ -177,6 +177,11 @@ activated when `easysession-save-mode' is enabled."
177177 `(easysession-mode-line-misc-info
178178 easysession-mode-line-misc-info-format))))
179179
180+ (defcustom easysession-switch-to-exclude-current nil
181+ " If non-nil, don't suggest current session when switching sessions."
182+ :type 'boolean
183+ :group 'easysession )
184+
180185; ; Lighter
181186(defvar easysession-save-mode-lighter " EasySeSave"
182187 " Default lighter string for `easysession-save-mode' ." )
@@ -558,18 +563,27 @@ OVERWRITE-ALIST is an alist similar to
558563 (cdr pair)))
559564 result))
560565
561- (defun easysession--get-all-names ()
562- " Return a list of all session names."
566+ (defun easysession--get-all-names (&optional exclude-current )
567+ " Return a list of all session names.
568+ If EXCLUDE-CURRENT is non-nil, exclude the current session name from the list."
563569 (if (file-directory-p easysession-directory)
564- (remove " ." (remove " .." (directory-files easysession-directory nil
565- nil t )))
570+ (seq-filter (lambda (session-name )
571+ (not (or (string-equal session-name " ." )
572+ (string-equal session-name " .." )
573+ (and exclude-current
574+ (string-equal session-name
575+ (easysession-get-session-name))))))
576+ (directory-files easysession-directory nil nil t ))
566577 '()))
567578
568- (defun easysession--prompt-session-name (prompt &optional session-name )
579+ (defun easysession--prompt-session-name (prompt &optional session-name exclude-current )
569580 " Prompt for a session name with PROMPT.
570- Use SESSION-NAME as the default value."
581+ Use SESSION-NAME as the default value.
582+ If EXCLUDE-CURRENT is non-nil, exclude the current session from
583+ completion candidates."
571584 (completing-read (concat " [easysession] " prompt)
572- (easysession--get-all-names) nil nil nil nil session-name))
585+ (easysession--get-all-names exclude-current)
586+ nil nil nil nil session-name))
573587
574588(defun easysession--get-base-buffer-info (buffer )
575589 " Get the name and path of the buffer BUFFER.
@@ -1157,7 +1171,9 @@ initialized."
11571171 (or session-name
11581172 (easysession--prompt-session-name
11591173 " Load and switch to session: "
1160- (easysession-get-session-name))))
1174+ (unless easysession-switch-to-exclude-current
1175+ (easysession-get-session-name))
1176+ easysession-switch-to-exclude-current)))
11611177 (t (easysession-get-session-name))))
11621178 (session-file (easysession-get-session-file-path session-name))
11631179 (session-reloaded (string= session-name
0 commit comments