From aad653d9132846c845897612c01f2d0b10c87d0e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 2 Apr 2018 05:50:39 -0400 Subject: [PATCH] feature/workspaces: clear last workspace instead of erroring out --- .../feature/workspaces/autoload/workspaces.el | 34 ++++++++----------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/modules/feature/workspaces/autoload/workspaces.el b/modules/feature/workspaces/autoload/workspaces.el index 1500ea9de..1407c6802 100644 --- a/modules/feature/workspaces/autoload/workspaces.el +++ b/modules/feature/workspaces/autoload/workspaces.el @@ -259,25 +259,21 @@ workspace to delete." nil nil current-name) current-name)))) (condition-case-unless-debug ex - (+workspace-message - (let ((workspaces (length (+workspace-list-names)))) - (cond ((> workspaces 1) - (+workspace-delete name) - (+workspace-switch - (if (+workspace-exists-p +workspace--last) - +workspace--last - (car (+workspace-list-names)))) - (unless (doom-buffer-frame-predicate (current-buffer)) - (switch-to-buffer (doom-fallback-buffer))) - (format "Deleted '%s' workspace" name)) - ((= workspaces 1) - (format "Can't delete the last workspace!")) - (t - (+workspace-delete name) - (+workspace-switch +workspaces-main t) - (switch-to-buffer (doom-fallback-buffer)) - (format "No workspaces detected! Auto-creating '%s' workspace" +workspaces-main)))) - 'success) + (let ((workspaces (length (+workspace-list-names)))) + (cond ((> workspaces 1) + (+workspace-delete name) + (+workspace-switch + (if (+workspace-exists-p +workspace--last) + +workspace--last + (car (+workspace-list-names)))) + (unless (doom-buffer-frame-predicate (current-buffer)) + (switch-to-buffer (doom-fallback-buffer)))) + (t + (+workspace-switch +workspaces-main t) + (unless (string= (car workspaces) +workspaces-main) + (+workspace-delete name)) + (doom/kill-all-buffers))) + (+workspace-message (format "Deleted '%s' workspace" name) 'success)) ('error (+workspace-error ex t)))) ;;;###autoload