0

Despite respectable variety of display-buffer-* functions some of them stand out with lack of flexibility, such as display-buffer-at-bottom or display-buffer-below-selected that exist in absence of reverse variant.

Assuming that decision was intentional, I would like to know what limitations are stopping these procedures from following the suit, or if there exists an easy way to create opposite implementation on the spot using existing inventory.

To make it more clear, here's my own attempt at making display-buffer-above-selected which only exposes the duplication that lays burden on those that seek to replace missing functionality.

7
  • Here is a left and right example, which should be sufficient for you to see how to create your own function for above and/or below: stackoverflow.com/a/21544307/2112489 When using window-in-direction it is either 'above, 'below, 'left, or 'right. Commented Apr 1, 2015 at 16:36
  • Here is my own above example: (defun lawlist-display-buffer-above (buffer alist) (let ((window (cond ((get-buffer-window buffer (selected-frame)) (get-buffer-window buffer (selected-frame))) ((window-in-direction 'above) (window-in-direction 'above)) ((window-in-direction 'left) (window-in-direction 'left)) (t (selected-window))))) (window--display-buffer buffer window 'window alist display-buffer-mark-dedicated) (select-window (get-buffer-window (buffer-name buffer))) )) You will need to adjust the conditions to suit your needs. Commented Apr 1, 2015 at 16:40
  • Please consider sending your info about shortcomings, possible improvements, and suggestions for improvement (bug fixes or enhancement requests) to Emacs Dev, by using M-x report-emacs-bug. Commented Apr 1, 2015 at 16:40
  • lawlist, can't help but point out, in case you find it useful, that (cond (x x) (y y) (z z)) is the same as (cond (x) (y) (z)) and also (or x y z). Thanks for the advice, I will make use of it. Commented Apr 1, 2015 at 16:58
  • Drew, thanks for encouragement, I will make it so. Commented Apr 1, 2015 at 16:58

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.