mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-26 07:33:47 +00:00
Allow fetching URL at point without switching to it
* lisp/net/eww.el (eww-open-in-new-buffer): Stay on current buffer when invoked with prefix argument. (Bug#65346)
This commit is contained in:
parent
6fb1d4bb1a
commit
bef68b7bbe
@ -137,7 +137,8 @@ URL at point in a new EWW buffer, akin to opening a link in a new
|
||||
``tab'' in other browsers. When @code{global-tab-line-mode} is
|
||||
enabled, this buffer is displayed in the tab on the window tab line.
|
||||
When @code{tab-bar-mode} is enabled, a new tab is created on the frame
|
||||
tab bar.
|
||||
tab bar. If the prefix key @kbd{C-u} is avaliable, it will stay on
|
||||
current buffer.
|
||||
|
||||
@findex eww-readable
|
||||
@kindex R
|
||||
|
5
etc/NEWS
5
etc/NEWS
@ -460,6 +460,11 @@ the kill ring. Alternate links are optional metadata that HTML pages
|
||||
use for linking to their alternative representations, such as
|
||||
translated versions or associated RSS feeds.
|
||||
|
||||
+++
|
||||
*** 'eww-open-in-new-buffer' support prefix key "C-u" to stay current buffer.
|
||||
The command accept the prefix key "C-u" to open the url in a new
|
||||
buffer but stay in current buffer, won't jump to the new buffer.
|
||||
|
||||
** go-ts-mode
|
||||
|
||||
+++
|
||||
|
@ -542,24 +542,37 @@ for the search engine used."
|
||||
(call-interactively #'eww)))
|
||||
(call-interactively #'eww)))
|
||||
|
||||
(defun eww-open-in-new-buffer ()
|
||||
"Fetch link at point in a new EWW buffer."
|
||||
(interactive)
|
||||
(let ((url (eww-suggested-uris)))
|
||||
(if (null url) (user-error "No link at point")
|
||||
(when (or (eq eww-browse-url-new-window-is-tab t)
|
||||
(and (eq eww-browse-url-new-window-is-tab 'tab-bar)
|
||||
tab-bar-mode))
|
||||
(let ((tab-bar-new-tab-choice t))
|
||||
(tab-new)))
|
||||
;; clone useful to keep history, but
|
||||
;; should not clone from non-eww buffer
|
||||
(with-current-buffer
|
||||
(if (eq major-mode 'eww-mode) (clone-buffer)
|
||||
(generate-new-buffer "*eww*"))
|
||||
(unless (equal url (eww-current-url))
|
||||
(eww-mode)
|
||||
(eww (if (consp url) (car url) url)))))))
|
||||
(defun eww--open-url-in-new-buffer (url)
|
||||
"Open the URL in a new EWW buffer."
|
||||
;; clone useful to keep history, but
|
||||
;; should not clone from non-eww buffer
|
||||
(with-current-buffer
|
||||
(if (eq major-mode 'eww-mode) (clone-buffer)
|
||||
(generate-new-buffer "*eww*"))
|
||||
(unless (equal url (eww-current-url))
|
||||
(eww-mode)
|
||||
(eww (if (consp url) (car url) url)))))
|
||||
|
||||
(defun eww-open-in-new-buffer (&optional no-select url)
|
||||
"Fetch URL in a new EWW buffer.
|
||||
|
||||
If the NO-SELECT is not `nil', the forcus will stay on current buffer.
|
||||
|
||||
If the URL is `nil', it will try `eww-suggested-uris' under current cursor."
|
||||
(interactive "P")
|
||||
(if-let ((url (or url (eww-suggested-uris))))
|
||||
(if (or (eq eww-browse-url-new-window-is-tab t)
|
||||
(and (eq eww-browse-url-new-window-is-tab 'tab-bar)
|
||||
tab-bar-mode))
|
||||
(let ((tab-bar-new-tab-choice t))
|
||||
(tab-new)
|
||||
(eww--open-url-in-new-buffer url)
|
||||
(when no-select
|
||||
(tab-bar-switch-to-prev-tab)))
|
||||
(if no-select
|
||||
(save-window-excursion (eww--open-url-in-new-buffer url))
|
||||
(eww--open-url-in-new-buffer url)))
|
||||
(user-error "No link at point")))
|
||||
|
||||
(defun eww-html-p (content-type)
|
||||
"Return non-nil if CONTENT-TYPE designates an HTML content type.
|
||||
|
Loading…
Reference in New Issue
Block a user