From b2db71e55a43697c3e71baeb118ec9b4e6a9275e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 1 May 2025 14:48:46 -0400 Subject: [PATCH] revert: feature/workspaces: persist indirect buffers Restoring indirect buffers indiscriminately isn't so simple, and can come with unserializable data that Emacs will throw errors on while restoring a saved workspace. Revert: 5f04be599f3b Fix: #6043 --- modules/ui/workspaces/config.el | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/modules/ui/workspaces/config.el b/modules/ui/workspaces/config.el index a6e022b6a..95c16e2f8 100644 --- a/modules/ui/workspaces/config.el +++ b/modules/ui/workspaces/config.el @@ -250,30 +250,6 @@ stored in `persp-save-dir'.") :load-function (lambda (savelist &rest _) (cl-destructuring-bind (buffer-name vars &rest _rest) (cdr savelist) (magit-status (alist-get 'default-directory vars))))) - ;; Restore indirect buffers - (defvar +workspaces--indirect-buffers-to-restore nil) - (persp-def-buffer-save/load - :tag-symbol 'def-indirect-buffer - :predicate #'buffer-base-buffer - :save-function (lambda (buf tag vars) - (list tag (buffer-name buf) vars - (buffer-name (buffer-base-buffer buf)))) - :load-function (lambda (savelist &rest _rest) - (cl-destructuring-bind (buf-name _vars base-buf-name &rest _) - (cdr savelist) - (push (cons buf-name base-buf-name) - +workspaces--indirect-buffers-to-restore) - nil))) - (add-hook! 'persp-after-load-state-functions - (defun +workspaces-reload-indirect-buffers-h (&rest _) - (dolist (ibc +workspaces--indirect-buffers-to-restore) - (cl-destructuring-bind (buffer-name . base-buffer-name) ibc - (let ((base-buffer (get-buffer base-buffer-name))) - (when (buffer-live-p base-buffer) - (when (get-buffer buffer-name) - (setq buffer-name (generate-new-buffer-name buffer-name))) - (make-indirect-buffer base-buffer buffer-name t))))) - (setq +workspaces--indirect-buffers-to-restore nil))) ;;; tab-bar (add-hook! 'tab-bar-mode-hook