[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/engine-mode 2c327f1785 24/71: Set engine-specific browsers
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/engine-mode 2c327f1785 24/71: Set engine-specific browsers |
Date: |
Wed, 21 Dec 2022 09:59:08 -0500 (EST) |
branch: elpa/engine-mode
commit 2c327f178598a41c753b3e3a5b3bc9d4d064fe2a
Author: Harry Schwartz <hello@harryrschwartz.com>
Commit: Harry Schwartz <hello@harryrschwartz.com>
Set engine-specific browsers
Sometimes we want to the results of a specific engine with a nonstandard
browser. This provides the `:browser` keyword argument to `defengine`,
which allows us to override the browser on a per-engine basis.
---
README.md | 15 +++++++++++++++
engine-mode.el | 18 ++++++++++--------
2 files changed, 25 insertions(+), 8 deletions(-)
diff --git a/README.md b/README.md
index f93b68c69c..1b1d15e06e 100644
--- a/README.md
+++ b/README.md
@@ -60,6 +60,21 @@ contains a comprehensive list of possible browsing
functions. You can
get to that by hitting `C-h v browser-url-browser-function <RETURN>`
and following the link to `browse-url.el`.
+## Changing your browser on a per-engine basis
+
+To only change the browser for a single engine, use the `:browser`
+keyword argument when you define the engine. For example, to use `eww`
+only for your GitHub search results, try:
+
+```emacs
+(defengine github
+ "https://github.com/search?ref=simplesearch&q=%s"
+ :browser 'eww-browse-url)
+```
+
+As mentioned about, see the implementation of the
+`browse-url-browser-function` for a definitive list of browsers.
+
## Changing the keymap prefix
The default keymap prefix for `engine-mode` is `C-c /`. If you'd like
diff --git a/engine-mode.el b/engine-mode.el
index e5830bfdc0..f48ce9c5b5 100644
--- a/engine-mode.el
+++ b/engine-mode.el
@@ -1,7 +1,7 @@
;;; engine-mode.el --- Define and query search engines from within Emacs.
;; Author: Harry R. Schwartz <hello@harryrschwartz.com>
-;; Version: 2015.05.02
+;; Version: 2015.05.17
;; URL: https://github.com/hrs/engine-mode/engine-mode.el
;; This file is NOT part of GNU Emacs.
@@ -74,12 +74,13 @@
(buffer-substring (region-beginning) (region-end))
(engine/prompted-search-term engine-name)))
-(defun engine/execute-search (search-engine-url search-term)
+(defun engine/execute-search (search-engine-url browser-function search-term)
"Display the results of the query."
(interactive)
- (browse-url
- (format search-engine-url
- (url-hexify-string search-term))))
+ (let ((browse-url-browser-function browser-function))
+ (browse-url
+ (format search-engine-url
+ (url-hexify-string search-term)))))
(defun engine/function-name (engine-name)
(intern (concat "engine/search-" (downcase (symbol-name engine-name)))))
@@ -97,7 +98,7 @@
`(define-key engine-mode-map (kbd ,(engine/scope-keybinding keybinding))
(quote ,(engine/function-name engine-name)))))
-(cl-defmacro defengine (engine-name search-engine-url &key keybinding
docstring (term-transformation-hook 'identity))
+(cl-defmacro defengine (engine-name search-engine-url &key keybinding
docstring (browser 'browse-url-browser-function) (term-transformation-hook
'identity))
"Define a custom search engine.
`engine-name' is a symbol naming the engine.
@@ -106,7 +107,8 @@ standing in for the search term.
The optional keyword argument `docstring' assigns a docstring to
the generated function. A reasonably sensible docstring will be
generated if a custom one isn't provided.
-
+The optional keyword argument `browser` assigns the browser
+function to be used when opening the URL.
The optional keyword argument `term-transformation-hook' is a
function that will be applied to the search term before it's
substituted into `search-engine-url'. For example, if we wanted
@@ -141,7 +143,7 @@ Hitting \"C-c / w\" will be bound to the newly-defined
,(or docstring (engine/docstring engine-name))
(interactive
(list (engine/get-query ,(symbol-name engine-name))))
- (engine/execute-search ,search-engine-url (,term-transformation-hook
search-term)))
+ (engine/execute-search ,search-engine-url ,browser
(,term-transformation-hook search-term)))
,(engine/bind-key engine-name keybinding)))
(provide 'engine-mode)
- [nongnu] elpa/engine-mode 96b3488a6d 54/71: Bump version to 2.1.1, (continued)
- [nongnu] elpa/engine-mode 96b3488a6d 54/71: Bump version to 2.1.1, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 30a361b27f 71/71: Remove the rfcs search engine from the docs, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode e99f205873 57/71: Document a definition of the Qwant search engine, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 4f2abf66d9 53/71: Ensure that local keymaps aren't propagated, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode d99f9b4ab2 63/71: Prevent browse-url-browser-function shadowing, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 7617af1c21 04/71: avoid multiple-evaluation issue for engine-name, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode b84d806f75 07/71: fix documentation typo, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode b804a5d6c8 13/71: use symbol under point as the default search term, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 3d4d39f29c 16/71: License under GPLv3, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 243d046914 35/71: make engine-mode keybinding prefix customizable, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 2c327f1785 24/71: Set engine-specific browsers,
ELPA Syncer <=
- [nongnu] elpa/engine-mode 244610231f 34/71: Include a MELPA badge on the README, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 59f1d463fa 39/71: Fix rebind key conflict., ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 224919b648 29/71: Corrected Project Gutenberg URL., ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode eff5f26894 25/71: Add a custom variable to set the default browser, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 282f5d5910 62/71: Fix link to MELPA Stable status badge, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode f955a5b889 67/71: Fix issues found by package-lint, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode fac252e11d 19/71: Add documentation for redefining the keymap prefix, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 4fa7ee6c06 14/71: Add documentation for changing the default browser, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 70bbde97bf 12/71: define a prefix key (which defaults to "C-c /"), ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 65e9a37fd0 44/71: Minimise side-effects when loading, ELPA Syncer, 2022/12/21