aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-03-08Implement persp-merge-list as a frame parameter.Nicholas Hubbard
2022-03-08Wrap persp-consult-source in with-eval-after-loadIvan Popovych
2022-03-08Clarify usage of narrowing in README, add missing quotesIvan Popovych
2022-03-06Add consult integrationIvan Popovych
2022-03-04Remove brackets around perspective-merging header.Nicholas Hubbard
2022-03-03Document perspective merging.Nicholas Hubbard
2022-03-02Fixed typo in error message.Nicholas Hubbard
2022-03-01Fixed variable name typo.Nicholas Hubbard
2022-03-01Test persp-merge and persp-unmerge.Nicholas Hubbard
2022-03-01Add perspective buffer list merging.Nicholas Hubbard
2022-03-01Clarify the distinction between persp-mode-map and perspective-map.gcv
2022-02-25Change suggested use-package form to use :init.gcv
2022-02-25Rewrite persp-other-buffer to respect ido-ignore-buffers.gcv
2021-12-12Add metadata to persp-kill-buffer*.gcv
2021-12-12Merge pull request #172 from intramurz/fix/multibyte-buffer-names-restoregcv
Fix restore of multibyte buffer names when loading state from file.
2021-12-11Fix restore of multibyte buffer names when loading state from file.Sergey V. Firsov
Restore names as they were saved in the file, without backslash sequences for multibyte characters.
2021-11-21Mention Vertico in the README.gcv
2021-11-21Put last-buffer kill check behind a feature flag.gcv
2021-11-21Reenable check for killing last buffer, but attempt to optimize it.gcv
2021-11-21Merge pull request #170 from aaronjensen/do-not-requiregcv
Do not require which-key and xref
2021-11-21Do not require xref, respond to it being requiredAaron Jensen
2021-11-21Do not require which-key, respond to it being requiredAaron Jensen
2021-11-03Update changelog.Constantine Vetoshev
2021-11-02Add 'buffer category to persp-switch-to-buffer*.Constantine Vetoshev
2021-11-01Temporarily remove persp-maybe-kill-buffer from kill-buffer-query-functions ↵Constantine Vetoshev
— the current implementation causes massive performance problems.
2021-11-01Working on a real fix to #163 and #167.Constantine Vetoshev
2021-10-31Try to fix https://github.com/nex3/perspective-el/issues/167Constantine Vetoshev
2021-10-23Merge branch 'mehw-scratch_buffer_properly_create'Constantine Vetoshev
2021-10-21basic-persp-header-line-format-default-value: fix typoMatthew White
Remove leading tab.
2021-10-21basic-persp-switch-to-scratch-buffer: test *scratch* switchingMatthew White
New ert test designed to test 'persp-switch-to-scratch-buffer'. Test switching to a perspective's scratch buffer. Test if the scratch buffer is created when there isn't one.
2021-10-21persp-switch-to-scratch-buffer: switch to the scratch bufferMatthew White
Utility function to switch to the current perspective's scratch buffer, or to create one if it does not exist yet. Add binding "C-x x B" to call 'persp-switch-to-scratch-buffer'.
2021-10-21persp-other-buffer: use persp-get-scratch-buffer if neededMatthew White
Call 'persp-get-scratch-buffer', when needed, to get/create a perspective's scratch buffer. The former function is able to properly set a newly created perspective's scratch buffer.
2021-10-21basic-persp-get-scratch-buffer: test persp-get-scratch-bufferMatthew White
Test that the function 'persp-get-scratch-buffer' can get a scratch buffer from different perspectives without modifying it. Test that its created scratch buffer is conformant to a default scratch buffer.
2021-10-21persp-get-scratch-buffer: get or create a scratch bufferMatthew White
Delegate 'persp-get-scratch-buffer' to get/create a perspective's scratch buffer named "*scratch* (NAME)". Modify 'persp-new' into using this new function. When a scratch buffer is created by 'persp-get-scratch-buffer' it is properly set. An existing buffer is returned as is.
2021-10-21persp-new: enable initial-major-mode only if neededMatthew White
Like 'command-line' does, enable the 'initial-major-mode' in the scratch buffer only when the buffer is in 'fundamental-mode'.
2021-10-21persp-new: properly insert the initial-scratch-messageMatthew White
Like 'command-line-1' does, we need to 'substitute-command-keys' in 'initial-scratch-message'. Unsetting the scratch buffer's modified flag is also a good idea.
2021-10-21persp-switch: remove duplicated codeMatthew White
Use 'persp-new' directly to get an existing perspective, or to create a new one.
2021-10-21persp-new: return the existing perspective or create a new oneMatthew White
Do not modify an existing perspective, just return it. If the perspective doesn't exist, create a new one. A perspective's scratch buffer is not re-created, and the list of buffer is preserved as is when the perspective exists.
2021-10-21basic-persp-get-scratch-buffer: test *scratch* buffer creationMatthew White
New ert test that verifies that the created scratch buffer conforms to the startup scratch buffer. The scratch buffer should be created with 'initial-scratch-message' command key descriptions resolved to command names. Also, its mode should be 'initial-major-mode'. It shouldn't have a modified flag.
2021-10-21persp-maybe-kill-buffer: disassociate buffer via persp-forget-bufferMatthew White
Use 'persp-forget-buffer' rather than 'persp-remove-buffer' to disassociate a buffer with other perspectives.
2021-10-21persp-set-buffer: disassociate buffer via persp-forget-bufferMatthew White
Use 'persp-forget-buffer' rather than 'persp-remove-buffer' to disassociate a buffer with other perspectives.
2021-10-21persp-remove-buffer: disassociate buffer via persp-forget-bufferMatthew White
Update docstring. Use 'persp-forget-buffer' to disassociate a buffer that is shared with other perspectives.
2021-10-21basic-persp-forget-buffer: test persp-forget-bufferMatthew White
Test 'persp-forget-buffer' and 'persp-remove-buffer', also test the function 'persp-set-buffer'. The function 'persp-forget-buffer' should disassociate buffers with perspectives, never killing them. The function 'persp-remove-buffer' should disassociate buffers when they are shared between perspectives and kill unshared buffers, aka buffers not found in any other perspective.
2021-10-21persp-forget-buffer: disassociate buffer with perspectiveMatthew White
New function to disassociate a buffer with the current perspective, without killing it when it's not left in any perspective.
2021-10-21persp-maybe-kill-buffer: don't kill a perspective's last bufferMatthew White
Prevent killing or removing the last buffer left in perspectives, unless a perspective is killed, to avoid adding a buffer of other perspectives to the perspective where the last buffer is removed.
2021-10-21basic-persp-killing-buffers: test killing buffersMatthew White
A buffer should not be killable when it's a perspective's last left buffer. This prevents adding a buffer from another perspective. A perspective can be killed, though, even if it has only one buffer. It should be possible to remove buffers from perspectives, unless a buffer is the perspective's last left buffer.
2021-10-21persp-reset-windows: keep window-prev-buffers emptyMatthew White
Up to Emacs 27.2, 'switch-to-buffer-preserve-window-point' allows 'delete-window' to update 'window-prev-buffers' of all windows if it isn't set to nil. After calling 'persp-reset-windows', 'window-prev-buffers' should be empty to prevent perspectives from pulling in buffers of other perspectives.
2021-10-21basic-persp-window-prev-buffers: ert test window-prev-buffersMatthew White
A dirty 'window-prev-buffers' may allow a perspective to pull in buffers from other perspectives. Till Emacs 27.2, 'delete-window' may update 'window-prev-buffers' for all windows. This means that after 'persp-reset-windows' the single window left may end up with a dirty 'window-prev-buffers', unless 'switch-to-buffer-preserve-window-point' is nil. Upstream commit 8f63f0078a23421eada97b4da51b9308b82532ce reverted window/winner changes (Revert 0454bfd3313) in Emacs (bug#23621). So, what said above should not apply any more after that commit, and 'switch-to-buffer-preserve-window-point' could not be used."
2021-10-20persp-remove-buffer: bury buffer walking windows in one way loopMatthew White
A one way loop, with pre-defined start and end, prevents any infinite ping-pong. This is not just syntactic sugar. In a "while buried buffer found in window" loop, there is the risk that when the buffer is buried in one window, it may be un-buried in another (for "mystic" reasons) and the loop will never end.
2021-10-20persp-remove-buffer: force update current-buffer when burying itMatthew White
If burying the 'current-buffer' inside 'with-selected-window', then force update the current buffer after, since 'with-selected-window' may restore the buried buffer as current buffer after executing its BODY.