diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 90e612529..5b06db9d0 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -35,6 +35,13 @@ value in call to =java=. After editing a source block, Org will restore the window layout when ~org-src-window-setup~ is set to a value that modifies the layout. +*** New option to show source buffers using "plain" display-buffer + +Added option ~plain~ to ~org-src-window-setup~ to show source buffers +using ~display-buffer~. This allows users to control how source +buffers are displayed by modifying ~display-buffer-alist~ or +~display-buffer-base-action~. + ** New functions *** ~org-columns-toggle-or-columns-quit~ == bound to ~org-columns-toggle-or-columns-quit~ replaces the diff --git a/lisp/org-src.el b/lisp/org-src.el index 878821b14..52e99cf04 100644 --- a/lisp/org-src.el +++ b/lisp/org-src.el @@ -148,6 +148,9 @@ the existing edit buffer." "How the source code edit buffer should be displayed. Possible values for this option are: +plain Show edit buffer using `display-buffer'. Users can + further control the display behavior by modifying + `display-buffer-alist' and its relatives. current-window Show edit buffer in the current window, keeping all other windows. split-window-below Show edit buffer below the current window, keeping all @@ -801,6 +804,9 @@ Raise an error when current buffer is not a source editing buffer." (defun org-src-switch-to-buffer (buffer context) (pcase org-src-window-setup + (`plain + (when (eq context 'exit) (quit-restore-window)) + (pop-to-buffer buffer)) (`current-window (pop-to-buffer-same-window buffer)) (`other-window (switch-to-buffer-other-window buffer))