Results 16 issues of bmag

Currently Purpose uses `display-buffer-overriding-action` to plug into `display-buffer`, but that makes it harder to use `display-buffer-alist` for customizing display rules. We might get better results by using `display-buffer-base-action`. ### Pros:...

enhancement
refactor

When `display-buffer` is called recursively, the value of `purpose--alist` in the outer call is used in the inner call as well, instead of not affecting it. Possible bugs include infinite...

bug

This value for `prefer-other-window` doesn't prefer another window when showing a buffer with the same purpose as the selected window. Perhaps I need `purpose-display-reuse-window-buffer-other-window` and `purpose-display-reuse-window-purpose-other-window` functions, like those `prefer-other-frame`...

bug
maybe

Review the existing code, find bits of bad implementation and improve them. For example, `(purpose-flatten (mapcar #'window-list frames))` is bad and should be replaced by `(window-list-1 nil nil frames)`. (edit:...

refactor

`purpose-next-buffer` and `purpose-previous-buffer` will be similar to `next-buffer` and `previous-buffer`, and will be used for rotating between buffers with the same purpose. This is a replacement for #93. (really, why...

enhancement

Let users "anchor" current window/frame layout. "Anchor" means to add the current window or frame layout to `purpose-recent-window-layouts` or `purpose-recent-frame-layouts`, so it can be switched to via `purpose-reset-window-layout` or `purpose-reset-frame-layout`...

enhancement

Add commands to let the user specify on-the-fly how the next invocation of `display-buffer` should behave. These commands affect only the next invocation. All later invocations of `display-buffer` use the...

idea

Might be a good idea to write a split-similar display action. split-similar will look for an existing window with same purpose as the buffer to display, and split that window...

idea

After [this commit](https://github.com/bmag/imenu-list/commit/3ca8608232246340f729ab0d599bc176698ca1f5), calling `hs-hide-all` in `*Ilist*` buffer runs infinitely and has to be stopped with `C-g`.

bug

Change how imenu-list checks if the buffer needs to be updated. Use less timers, more hooks.