[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/engine-mode 8851758d4d 21/71: Allow defengine to assign cu
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/engine-mode 8851758d4d 21/71: Allow defengine to assign custom docstrings |
Date: |
Wed, 21 Dec 2022 09:59:06 -0500 (EST) |
branch: elpa/engine-mode
commit 8851758d4d30cd0a08a5d2557e7097a07118f133
Author: Harry Schwartz <hello@harryrschwartz.com>
Commit: Harry Schwartz <hello@harryrschwartz.com>
Allow defengine to assign custom docstrings
When defengine creates a search function it assigns it a generic
automatically-generated docstring. This looks like:
"Search [engine-name] for the selected text. Prompt for input if none is
provided."
That's fine, but sometimes we want to be able to assign our own custom
docstrings. This commit provides an "docstring" keyword argument to
defengine, which we can use as follows:
(defengine ctan
"http://www.ctan.org/search/?x=1&PORTAL=on&phrase=%s"
:keybinding "c"
:docstring "Search the Comprehensive TeX Archive Network (ctan.org)")
Thanks to @clemso for the suggestion and preliminary implementation!
---
engine-mode.el | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/engine-mode.el b/engine-mode.el
index 0c753e598f..662eb2b866 100644
--- a/engine-mode.el
+++ b/engine-mode.el
@@ -97,14 +97,17 @@
`(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)
+(cl-defmacro defengine (engine-name search-engine-url &key keybinding
docstring)
"Define a custom search engine.
`engine-name' is a symbol naming the engine.
`search-engine-url' is the url to be queried, with a \"%s\"
standing in for the search term.
-The keyword argument `keybinding' is a string describing the key
-to bind the new function.
+The optional keyword argument `keybinding' is a string describing
+the key to bind the new function.
+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.
Keybindings are prefixed by the `engine/keymap-prefix', which
defaults to `C-c /'.
@@ -113,7 +116,8 @@ For example, to search Wikipedia, use:
(defengine wikipedia
\"http://www.wikipedia.org/search-redirect.php?language=en&go=Go&search=%s\"
- :keybinding \"w\")
+ :keybinding \"w\"
+ :docstring \"Search Wikipedia!\")
Hitting \"C-c / w\" will be bound to the newly-defined
`engine/search-wikipedia' function."
@@ -121,7 +125,7 @@ Hitting \"C-c / w\" will be bound to the newly-defined
(assert (symbolp engine-name))
`(prog1
(defun ,(engine/function-name engine-name) (search-term)
- ,(engine/docstring engine-name)
+ ,(or docstring (engine/docstring engine-name))
(interactive
(list (engine/get-query ,(symbol-name engine-name))))
(engine/execute-search ,search-engine-url search-term))
- [nongnu] elpa/engine-mode 9a1271b005 38/71: Update documentation to change to `C-x /` prefix, (continued)
- [nongnu] elpa/engine-mode 9a1271b005 38/71: Update documentation to change to `C-x /` prefix, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 2ddc5ec627 20/71: Switch engine keybinding to be a keyword argument, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 615e55a806 31/71: Add GPLv3 badge to README, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 2935da0bc8 15/71: Link to @sshaw's script to import from Chrome/OSX, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 7b0872e297 23/71: Provide a hook to transform the search term, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode f7b5aadafa 47/71: Fix cl/-lib usage, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 5d99c1d49d 41/71: Add autoload cookie for lazy loading, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 2c92e76819 56/71: Bump version to 2.1.2, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 3d4870c337 50/71: Fall back to the browse-url-browser-function, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode f12a4e5ed1 03/71: rename engine -> engine-mode for consistency, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 8851758d4d 21/71: Allow defengine to assign custom docstrings,
ELPA Syncer <=
- [nongnu] elpa/engine-mode 4e1d462a30 18/71: Add link to the EmacsNYC presentation, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode feb41a46e3 48/71: Escape docstring bol open-parentheses, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 08d1a52ce6 43/71: Autoload engine-mode, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode def7195c87 55/71: Include dependency on format-spec, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 75bca85a18 10/71: minor tweaks, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode bd2ea005b3 11/71: add a docstring for the defengine macro, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode c73489f15b 22/71: Add README documentation for custom docstrings, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode 449c09afe5 26/71: Nest prefixed keymaps correctly, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode e44d23f6c9 28/71: Add melpa-stable badge to README, ELPA Syncer, 2022/12/21
- [nongnu] elpa/engine-mode c37373e36c 06/71: requiring engine-mode, ELPA Syncer, 2022/12/21