All notable changes to this project will be documented in this file. Note that Perspective was started in 2008 and this log was only added in 2021.
The format is based on Keep a Changelog.
persp-ibuffer-generate-filter-groups
: loadibuf-ext
library if needed (#202).
persp-kill-other-buffers
: kill other buffers in the current perspectives.
persp-purge-initial-persp-on-save
: support for optionally killing all buffers of the initial perspective upon callingperps-state-save
, thus treating the initial perspective as a disposable scratch area.persp-add-buffer-to-frame-global
: support for special frame-specific "global" perspectives; buffers which they contain will appear in Perspective-aware buffer listings in all perspectives in their containing framespersp-switch-to-scratch-buffer
: interactive function to switch to the current perspective's scratch buffer, creating one if missing.persp-forget-buffer
: disassociate buffer with perspective without the risk of killing it. This balancespersp-add-buffer
. Newly created buffers viaget-buffer-create
are rogue buffers not found in any perspective, this function allows to get back to that state.- Support for using Consult's
consult-buffer
as a Perspective-aware buffer switcher. persp-merge
andpersp-unmerge
: temporarily import buffers from one perspective into another.
- Avoid killing the last buffer in a perspective by default (
persp-avoid-killing-last-buffer-in-perspective
, defaultt
; this was formerly the experimental feature flagpersp-feature-flag-prevent-killing-last-buffer-in-perspective
which defaulted tonil
). - Breaking change: (Emacs 28+ only): no longer provide a default
persp-mode-prefix-key
. It wasC-x x
in the past, which conflicts with key bindings shipping with Emacs 28. Users of Emacs 28 must now pick their own prefix key. The default remains unchanged for users of Emacs 27 and earlier. persp-remove-buffer
: do not kill/remove a perspective's last left buffer.persp-switch-to-buffer*
: tag with'buffer
category so Marginalia can add its annotations.persp-other-buffer
: rewrite so it respects ignored buffer list.
persp-new
: enableinitial-major-mode
only if the scratch buffer is infundamental-mode
.persp-new
: properly substitute command keys when insertinginitial-scratch-message
into scratch buffers.persp-new
: do not recreate existing perspectives. This prevents from resetting perspectives to a state where in the perspective there's only the scratch buffer.persp-reset-windows
: setswitch-to-buffer-preserve-window-point
tonil
before callingdelete-window
, that up to Emacs 27.2 updateswindow-prev-buffers
of all windows, unless the former is turned off.persp-remove-buffer
: force update thecurrent-buffer
to the current window's buffer due towith-selected-window
saving/restoring thecurrent-buffer
when executing it's BODY. This properly updates thecurrent-buffer
to what should be the real current buffer when burying the current buffer.persp-activate
: force update thecurrent-buffer
to the current window's buffer due tomake-persp
saving/restoring thecurrent-buffer
when executing it's BODY. This properly updates thecurrent-buffer
to what should be the real current buffer when switching to a new perspective.persp-add-buffer
: discard unexisting buffer as argument.- Added a workaround for potential problems caused by recursive minibuffer use.
- Made activating
persp-mode
repeatedly idempotent (should fix interactive enable-theme invocation bug).
- Improved Helm integration.
helm-buffers-list
now lists buffers in all perspectives when called with a prefix argument. It also now has actions to add to the current perspective, and to remove buffers from the current perspective.
- Rewrote Ivy / Counsel buffer switchers to make better use of the Ivy API. As a result, C-k to kill buffers directly from the switcher now works.
persp-kill-others
- Make
xref
rings perspective-specific (so popping back will not inadvertently jump to a file in a different perspective). - Support for grouping buffers by
persp-name
in ibuffer.
- Switched from now-defunct Travis CI to GitHub Actions.
header-line-format
wrangling bug.