The frame buffer-predicate wasn't discriminating against buffers that
were in other perspectives, allowing you to `next-buffer` into them.
UNACCEPTABLE.
doom/{next,previous}-buffer was implemented so that these commands could
skip over unreal buffers, and land us on either a real one or the
dashboard. Using the frame's buffer-predicate parameter accomplishes
exactly this, natively.
+ Fix recursive find-file-in-project prompt with counsel-projectile.
+ Fix duplicate-workspace error (just switches to that workspace, rather
than trying to create one).
+ Fix dashboard replacing current buffer when switching to
a pre-existing project workspace.
+ Rewrite projectile integration.
+ Fix per-frame workspaces not cleaning up after itself when an
frame-associated workspace (or its frame) is destroyed.
+ Alias +workspace-p to perspective-p instead of persp-p (which isn't as
accurate, because it counts nil as a valid perspective).
+ Extract orphaned-buffer list functionality in +workspace-buffer-list
into seperate function: +workspace-orphaned-buffer-list.
+ Allow toggle-debug-on-error to catch workspace errors.
+ Remove +workspace/kill-session-and-quit (never used)
+ Ensure persp-mode is loaded as late as possible.
persp-mode provides the following hooks already (among many others):
+ persp-{before,after}-switch-functions
+ persp-renamed-functions
+ persp-created-functions
+ persp-before-kill-functions
This makes +workspace-change-hook redundant.
+ The "main" workspace is no longer treated especially, and can be
renamed or deleted. Fixes issue mentioned in #200.
+ In the disastrous event that there are no workspaces left, a main one
is generated and switched to. Under no circumstances should the use be
left in the nil perspective!
+ Fix the :tabr[ename] ex command throwing argument errors.
+ Refactored most workspace functions.
+ New command: +workspace/close-workspace-or-frame, which is bound to
C-S-w in my private module.
Properly initialize a new workspace, switch to the fallback buffer
(scratch/dash), update its default-directory to the project root, and
fuzzy-prompt for a file to open.
persp-get-by-name will sometimes return the value of `persp-not-persp'
(by default this is the symbol :nil) rather than actual nil when a persp
doesn't exist.