core-popups: add :noclone prop + fix replicating help popups
This commit is contained in:
parent
64bb34c163
commit
928e6754b9
1 changed files with 7 additions and 2 deletions
|
@ -59,6 +59,10 @@ is enabled/disabled.'")
|
||||||
;; when their popup is closed. Used by
|
;; when their popup is closed. Used by
|
||||||
;; `doom*delete-popup-window'
|
;; `doom*delete-popup-window'
|
||||||
;; :autoclose If non-nil, close popup if ESC is pressed from any buffer.
|
;; :autoclose If non-nil, close popup if ESC is pressed from any buffer.
|
||||||
|
;; :noclone If non-nil, don't try to clone the buffer. This helps with
|
||||||
|
;; buffers with buttons/links that, when followed, should
|
||||||
|
;; open within the popup, rather than outside of it. Like
|
||||||
|
;; help buffers or eshell-term buffers.
|
||||||
shackle-rules
|
shackle-rules
|
||||||
'(("^ ?\\*doom:.+\\*$" :size 25 :modeline minimal :regexp t :noesc t)
|
'(("^ ?\\*doom:.+\\*$" :size 25 :modeline minimal :regexp t :noesc t)
|
||||||
("^ ?\\*doom .+\\*$" :size 10 :noselect t :regexp t)
|
("^ ?\\*doom .+\\*$" :size 10 :noselect t :regexp t)
|
||||||
|
@ -71,7 +75,7 @@ is enabled/disabled.'")
|
||||||
("*Apropos*" :size 0.3)
|
("*Apropos*" :size 0.3)
|
||||||
("*Backtrace*" :size 25 :noselect t)
|
("*Backtrace*" :size 25 :noselect t)
|
||||||
("*Buffer List*" :size 20 :autokill t)
|
("*Buffer List*" :size 20 :autokill t)
|
||||||
("*Help*" :size 16)
|
("*Help*" :size 16 :autokill t :noclone t)
|
||||||
("*Messages*" :size 10 :noselect t)
|
("*Messages*" :size 10 :noselect t)
|
||||||
("*Warnings*" :size 10 :noselect t :autokill t)
|
("*Warnings*" :size 10 :noselect t :autokill t)
|
||||||
("*command-log*" :size 28 :noselect t :align right)
|
("*command-log*" :size 28 :noselect t :align right)
|
||||||
|
@ -194,7 +198,8 @@ and setting `doom-popup-rules' within it. Returns the window."
|
||||||
((bufferp (car args))
|
((bufferp (car args))
|
||||||
(shackle-match (car args))))))
|
(shackle-match (car args))))))
|
||||||
window)
|
window)
|
||||||
(when (get-buffer-window-list (car args) nil t)
|
(when (and (not (plist-get plist :noclone))
|
||||||
|
(get-buffer-window-list (get-buffer (car args)) nil t))
|
||||||
(setq plist (append (list :autokill t) plist))
|
(setq plist (append (list :autokill t) plist))
|
||||||
(setcar args (clone-indirect-buffer (buffer-name (car args)) nil t)))
|
(setcar args (clone-indirect-buffer (buffer-name (car args)) nil t)))
|
||||||
(unless (setq window (apply orig-fn args))
|
(unless (setq window (apply orig-fn args))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue