[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 535e2be 3/3: Add a new command to switch between er
From: |
Lars Ingebrigtsen |
Subject: |
[Emacs-diffs] master 535e2be 3/3: Add a new command to switch between erc buffers |
Date: |
Thu, 04 Feb 2016 07:03:30 +0000 |
branch: master
commit 535e2bef6dd7b9abe2567f865c8b24a06a555178
Author: Mark Oteiza <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>
Add a new command to switch between erc buffers
* doc/misc/eww.texi: Document eww-switch-to-buffer and its keybinding
* etc/NEWS: Mention new command
* lisp/net/eww.el (eww-mode-map): Bind eww-switch-to-buffer to "s"
(eww-mode-map): Add menu item
(eww-switch-to-buffer): New command
---
doc/misc/eww.texi | 6 +++++-
etc/NEWS | 5 +++++
lisp/net/eww.el | 20 ++++++++++++++++++++
3 files changed, 30 insertions(+), 1 deletions(-)
diff --git a/doc/misc/eww.texi b/doc/misc/eww.texi
index 0e9bedb..afb1caf 100644
--- a/doc/misc/eww.texi
+++ b/doc/misc/eww.texi
@@ -164,12 +164,16 @@ You can view stored bookmarks with @kbd{B}
(@code{eww-list-bookmarks}). This will open the bookmark buffer
@file{*eww bookmarks*}.
address@hidden eww-switch-to-buffer
@findex eww-list-buffers
address@hidden s
@kindex S
@cindex Multiple Buffers
To get summary of currently opened EWW buffers, press @kbd{S}
(@code{eww-list-buffers}). The @file{*eww buffers*} buffer allows you
-to quickly kill, flip through and switch to specific EWW buffer.
+to quickly kill, flip through and switch to specific EWW buffer. To
+switch EWW buffers through a minibuffer prompt, press @kbd{s}
+(@code{eww-switch-to-buffer}).
@findex eww-browse-with-external-browser
@vindex shr-external-browser
diff --git a/etc/NEWS b/etc/NEWS
index 3150432..faf49b0 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -52,6 +52,11 @@ in these situations.
* Changes in Specialized Modes and Packages in Emacs 25.2
+** eww
+
++++
+*** A new `s' command for switching to another eww buffer via the minibuffer.
+
+++
** The commands that add ChangeLog entries now prefer a VCS root directory
for the ChangeLog file, if none already exists. Customize
diff --git a/lisp/net/eww.el b/lisp/net/eww.el
index 503651c..bc74a0d 100644
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@ -689,6 +689,7 @@ the like."
(define-key map "R" 'eww-readable)
(define-key map "H" 'eww-list-histories)
(define-key map "E" 'eww-set-character-encoding)
+ (define-key map "s" 'eww-switch-to-buffer)
(define-key map "S" 'eww-list-buffers)
(define-key map "F" 'eww-toggle-fonts)
(define-key map [(meta C)] 'eww-toggle-colors)
@@ -712,6 +713,7 @@ the like."
["View page source" eww-view-source]
["Copy page URL" eww-copy-page-url t]
["List histories" eww-list-histories t]
+ ["Switch to buffer" eww-switch-to-buffer t]
["List buffers" eww-list-buffers t]
["Add bookmark" eww-add-bookmark t]
["List bookmarks" eww-list-bookmarks t]
@@ -1498,6 +1500,24 @@ If CHARSET is nil then use UTF-8."
(eww-reload nil 'utf-8)
(eww-reload nil charset)))
+(defun eww-switch-to-buffer ()
+ "Prompt for an EWW buffer to display in the selected window."
+ (interactive)
+ (let ((completion-extra-properties
+ '(:annotation-function (lambda (buf)
+ (with-current-buffer buf
+ (format " %s" (eww-current-url)))))))
+ (switch-to-buffer
+ (read-buffer "Switch to EWW buffer: "
+ (cl-loop for buf in (nreverse (buffer-list))
+ if (with-current-buffer buf (derived-mode-p
'eww-mode))
+ return buf)
+ t
+ (lambda (bufn)
+ (with-current-buffer
+ (if (consp bufn) (cdr bufn) (get-buffer bufn))
+ (derived-mode-p 'eww-mode)))))))
+
(defun eww-toggle-fonts ()
"Toggle whether to use monospaced or font-enabled layouts."
(interactive)