[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/hyperbole ab16a35 06/20: * Changes: Renamed this file f
From: |
Robert Weiner |
Subject: |
[elpa] externals/hyperbole ab16a35 06/20: * Changes: Renamed this file from ChangeLog since Elpa release builds |
Date: |
Tue, 9 Aug 2016 19:17:07 +0000 (UTC) |
branch: externals/hyperbole
commit ab16a351c09ae56c7ba0e6d393caa9cf42245e01
Author: Bob Weiner <address@hidden>
Commit: Bob Weiner <address@hidden>
* Changes: Renamed this file from ChangeLog since Elpa release builds
overwrite any file named ChangeLog with git log information which
has less history than Hyperbole's Changes.
* hui-mini.el (hui-search-web): Added so can invoke the Hyperbole
Find/Web search menu directly.
hyperbole.el (hkey-initialize): Bound above command to {C-c /}.
* hsettings.el (hyperbole-web-search-browser-function):
(hyperbole-web-search-alist):
(hyperbole-web-search): Added.
hui-mini.el (hui:menu-web-search): Added and called within hui:menus.
hui-menu.el (hui-menu-web-search): Added and called in
infodock-hyperbole-menu.
* hinit.el (hyperb:init-menubar): Fixed so sets after-init-hook only
if not after-init-time. Also forced a return value of nil.
hui-menu.el (hyperbole-menubar-menu): Changed so this always updates
the menubar with the latest version of the Hyperbole menu; previously
it only added the menu if it was not there.
---
ChangeLog => Changes | 26 ++-
hinit.el | 16 +-
hsettings.el | 54 +++++
hui-menu.el | 88 ++++----
hui-mini.el | 613 ++++++++++++++++++++++++++------------------------
hui-mouse.el | 13 +-
hyperbole.el | 3 +
7 files changed, 465 insertions(+), 348 deletions(-)
diff --git a/ChangeLog b/Changes
similarity index 99%
rename from ChangeLog
rename to Changes
index ec57656..fdfbf54 100644
--- a/ChangeLog
+++ b/Changes
@@ -1,15 +1,37 @@
-- Almost all changes listed herein are new as of 2016. --
+2016-07-31 Bob Weiner <address@hidden>
+
+* Changes: Renamed this file from ChangeLog since Elpa release builds
+ overwrite any file named ChangeLog with git log information which
+ has less history than Hyperbole's Changes.
+
+* hui-mini.el (hui-search-web): Added so can invoke the Hyperbole
+ Find/Web search menu directly.
+ hyperbole.el (hkey-initialize): Bound above command to {C-c /}.
+
+* hsettings.el (hyperbole-web-search-browser-function):
+ (hyperbole-web-search-alist):
+ (hyperbole-web-search): Added.
+ hui-mini.el (hui:menu-web-search): Added and called within hui:menus.
+ hui-menu.el (hui-menu-web-search): Added and called in
infodock-hyperbole-menu.
+
+* hinit.el (hyperb:init-menubar): Fixed so sets after-init-hook only
+ if not after-init-time. Also forced a return value of nil.
+ hui-menu.el (hyperbole-menubar-menu): Changed so this always updates
+ the menubar with the latest version of the Hyperbole menu; previously
+ it only added the menu if it was not there.
+
2016-07-29 Bob Weiner <address@hidden>
+* README.md: Added menu images and screenshots for easy access.
+
* hui-mouse.el (action-key-eol-function, assist-key-eol-function): Added these
2
options to control what the Action and Assist Keys do at the end of a line.
Default behaviors remain as before but now one can set these to `complete'
for example to mimic standard Emacs behavior at end of lines, rather than
scrolling, if desired.
-* README.md: Added menu images and screenshots for easy access.
-
2016-07-28 Bob Weiner <address@hidden>
* hyperbole.el: Updated the header fields to better match GNU standards for use
diff --git a/hinit.el b/hinit.el
index 2483485..dd3acd2 100644
--- a/hinit.el
+++ b/hinit.el
@@ -39,15 +39,17 @@
;;;###autoload
(defun hyperb:init-menubar ()
- "Add a pulldown menu for Hyperbole, if appropriate."
+ "Add a pulldown menu for Hyperbole after Emacs is initialized."
(interactive)
(unless (featurep 'infodock)
- ;; Initialize now for when this is loaded after startup.
- (and (or hyperb:emacs-p (and (boundp 'current-menubar) current-menubar))
- after-init-time
- (hyperbole-menubar-menu))
- ;; Initialize at startup. This really is needed.
- (add-hook 'after-init-hook #'hyperbole-menubar-menu)))
+ ;; Initialize now since Emacs startup has finished.
+ (if (and (or hyperb:emacs-p (and (boundp 'current-menubar)
current-menubar))
+ after-init-time)
+ (hyperbole-menubar-menu)
+ ;; Defer initialization until after Emacs startup. This really is
needed.
+ (add-hook 'after-init-hook #'hyperbole-menubar-menu))
+ ;; Avoid returning the large Hyperbole menu.
+ nil))
;;; ************************************************************************
;;; Menu Support Functions
diff --git a/hsettings.el b/hsettings.el
index 994cfaa..719ed54 100644
--- a/hsettings.el
+++ b/hsettings.el
@@ -99,6 +99,60 @@ down a windowful."
;;
;; and Hyperbole should be loaded after this setting is made.
+;; Web search setttings for Hyperbole Find/Web menu.
+(require 'browse-url)
+
+(defcustom hyperbole-web-search-browser-function browse-url-browser-function
+ "*Function of one url argument called by any Hyperbole Find/Web search."
+ :type 'boolean
+ :group 'hyperbole-commands)
+
+(defcustom hyperbole-web-search-alist
+ '(("Amazon" . "http://www.amazon.com/s/field-keywords=%s")
+ ("Bing" . "http://www.bing.com/search?q=%s")
+ ;; Wikipedia Dictionary
+ ("Dictionary" . "https://en.wiktionary.org/wiki/%s")
+ ("Elisp" . "http://www.google.com/search?q=%s+filetype:el")
+ ;; Facebook Hashtags
+ ("Facebook" . "https://www.facebook.com/hashtag/%s")
+ ;; To search for a Facebook user, use "https://www.facebook.com/%s".
+ ("Google" . "http://www.google.com/search?q=%s")
+ ("Hub(git)" . "https://github.com/search?ref=simplesearch&q=%s")
+ ("Images" . "http://www.google.com/images?hl=en&q=%s")
+ ("Maps" . "http://maps.google.com/maps?q=%s")
+ ("RFCs" . "https://tools.ietf.org/html/rfc%s")
+ ("StackOverflow" . "https://stackoverflow.com/search?q=%s")
+ ("Twitter" . "https://twitter.com/search?q=%s")
+ ("Wikipedia" . "https://en.wikipedia.org/wiki/%s")
+ ("Youtube" . "https://www.youtube.com/results?search_query=%s"))
+ "*Alist of (web-service-name . url-with-%s-parameter) elements.
+The first character of each web-service-name must be unique.
+This is used in the Hyperbole Find/Web menu where the %s parameter is
+replaced with an interactively obtained search string."
+ :type '(alist :key-type string :value-type string)
+ :group 'hyperbole-commands)
+
+(defun hyperbole-web-search (&optional service-name search-term)
+ "Search web SERVICE-NAME for SEARCH-TERM.
+Both arguments are optional and are prompted for when not given or when null.
+Uses `hyperbole-web-search-alist' to match each service to its search url.
+Uses `hyperbole-web-search-browser-function' and the `browse-url'
+package to display search results."
+ (interactive (list nil nil))
+ (while (or (not (stringp service-name)) (equal service-name ""))
+ (setq service-name (completing-read "Search service: "
hyperbole-web-search-alist
+ nil t)))
+ (while (or (not (stringp search-term)) (equal search-term ""))
+ (setq search-term (read-string (format "Search %s for: " service-name))))
+ (if (assoc service-name hyperbole-web-search-alist)
+ (let ((browse-url-browser-function
+ hyperbole-web-search-browser-function))
+ (browse-url
+ (format (cdr (assoc service-name hyperbole-web-search-alist))
+ search-term)))
+ (user-error "(Hyperbole): Invalid web search service `%s' or search term
`%s'"
+ service-name search-term)))
+
;;; ************************************************************************
;;; GNU EMACS AND XEMACS CONFIGURATION
;;; ************************************************************************
diff --git a/hui-menu.el b/hui-menu.el
index c5b73b8..259c960 100644
--- a/hui-menu.el
+++ b/hui-menu.el
@@ -24,30 +24,26 @@
;; Add Hyperbole menu to menubar.
(defun hyperbole-menubar-menu ()
- "Add the Hyperbole menu to the global menubar."
- (cond ((and (boundp 'menubar-configuration)
- (not (memq 'Hyperbole menubar-configuration)))
- ;; Hyperbole may be included as part of the menubar but
- ;; may be invisible due to a menubar configuration
- ;; setting. Make it visible here.
- (if (fboundp 'customize-set-variable)
- (customize-set-variable 'menubar-configuration
- (cons 'Hyperbole menubar-configuration))
- (setq menubar-configuration
- (cons 'Hyperbole menubar-configuration)))
+ "Add to or update the Hyperbole menu on the global menubar."
+ (cond ((boundp 'menubar-configuration)
+ (unless (memq 'Hyperbole menubar-configuration)
+ ;; Hyperbole may be included as part of the menubar but
+ ;; may be invisible due to a menubar configuration
+ ;; setting. Make it visible here.
+ (if (fboundp 'customize-set-variable)
+ (customize-set-variable 'menubar-configuration
+ (cons 'Hyperbole menubar-configuration))
+ (setq menubar-configuration
+ (cons 'Hyperbole menubar-configuration))))
(set-menubar-dirty-flag))
- ((not (if hyperb:emacs-p
- (global-key-binding [menu-bar Hyperbole])
- (and (boundp 'current-menubar)
- (car (find-menu-item current-menubar '("Hyperbole"))))))
- (let ((add-before (cond ((and (boundp 'infodock-menubar-type)
- (eq infodock-menubar-type
'menubar-infodock))
- "Key")
- ((global-key-binding [menu-bar Koutline])
- "Koutline")
- ((global-key-binding [menu-bar OO-Browser])
- "OO-Browser"))))
- (add-submenu nil (infodock-hyperbole-menu) add-before))))
+ (t (let ((add-before (cond ((and (boundp 'infodock-menubar-type)
+ (eq infodock-menubar-type
'menubar-infodock))
+ "Key")
+ ((global-key-binding [menu-bar Koutline])
+ "Koutline")
+ ((global-key-binding [menu-bar OO-Browser])
+ "OO-Browser"))))
+ (add-submenu nil (infodock-hyperbole-menu) add-before))))
;; Force a menu-bar update.
(force-mode-line-update))
@@ -300,22 +296,26 @@
["Types"
(hui:htype-help-current-window 'actypes) t]
)
- '("Find"
- ["Manual" (id-info-item "menu, Find") t]
- "----"
- ;; Show numbered line matches in all specified files.
- ["Grep-Files" hypb:rgrep t]
- ;; Show numbered line matches for regexp in all file-based
buffers.
- ["Locate-Files" locate t]
- ;; Show numbered line matches for regexp in all file-based
buffers.
- ["Match-File-Buffers" moccur t]
- ;; Show numbered line matches for regexp from this buffer.
- ["Occur-Here" occur t]
- ;; Following point, remove all lines that match regexp.
- ["Remove-Lines-Here" hypb:remove-lines t]
- ;; Following point, keep only lines that match regexp.
- ["Save-Lines-Here" hypb:save-lines t]
- )
+ (nconc
+ '("Find"
+ ["Manual" (id-info-item "menu, Find") t]
+ "----"
+ ;; Show numbered line matches in all specified files.
+ ["Grep-Files" hypb:rgrep t]
+ ;; Show numbered line matches for regexp in all
file-based buffers.
+ ["Locate-Files" locate t]
+ ;; Show numbered line matches for regexp in all
file-based buffers.
+ ["Match-File-Buffers" moccur t]
+ ;; Show numbered line matches for regexp from this buffer.
+ ["Occur-Here" occur t]
+ ;; Following point, remove all lines that match regexp.
+ ["Remove-Lines-Here" hypb:remove-lines t]
+ ;; Following point, keep only lines that match regexp.
+ ["Save-Lines-Here" hypb:save-lines t]
+ "----"
+ "Search-with:")
+ (hui-menu-web-search)
+ )
'("Global-Button"
:filter hui-menu-global-buttons
["Create" hui:gbut-create t]
@@ -461,6 +461,16 @@ Return t if cutoff, else nil."
(hui-menu-of-frames)
(hui-menu-of-windows)))
+(defun hui-menu-web-search ()
+ ;; Pulldown menu
+ (let ((web-pulldown-menu
+ (mapcar (lambda (service)
+ (vector service
+ (list #'hyperbole-web-search service nil)
+ t))
+ (mapcar 'car hyperbole-web-search-alist))))
+ web-pulldown-menu))
+
;;; ************************************************************************
;;; Private variables
;;; ************************************************************************
diff --git a/hui-mini.el b/hui-mini.el
index 1d0d550..898632c 100644
--- a/hui-mini.el
+++ b/hui-mini.el
@@ -37,301 +37,6 @@
(defvar hui:menus nil
"Hyperbole minibuffer command menus.")
-(setq
- hui:menus
- (delq nil
- (list (cons
- 'hyperbole
- (append
- (let ((version (if (= (aref hyperb:version 0) ?0)
- (substring hyperb:version 1)
- hyperb:version)))
- (list (list (concat "Hy" version ">"))))
- (delq nil
- (list
- '("Act" hui:hbut-act
- "Activates button at point or prompts for explicit button.")
- '("Butfile/" (menu . butfile)
- "Quick access button files menus.")
- '("Cust/" (menu . cust)
- "Customizes Hyperbole by setting major options.")
- '("Doc/" (menu . doc)
- "Quick access to Hyperbole documentation.")
- '("Ebut/" (menu . ebut)
- "Explicit button commands.")
- '("Find/" (menu . find)
- "Find matching line commands.")
- '("Gbut/" (menu . gbut)
- "Global button commands.")
- '("Hist" (hhist:remove current-prefix-arg)
- "Jumps back to location prior to last Hyperbole button
follow.")
- '("Ibut/" (menu . ibut)
- "Implicit button and button type commands.")
- (if hyperb:kotl-p
- '("Kotl/" (menu . otl)
- "Autonumbered outlining and hyperlink capabilities."))
- '("Msg/" (menu . msg)
- "Mail and News messaging capabilities.")
- '("Rolo/" (menu . hyrolo)
- "Hierarchical, multi-file rolo lookup and edit commands.")
- '("Screen/" (menu . screen)
- "Screen display management commands.")
- '("Win/" (menu . win)
- "Window configuration management commands.")
- ))))
- '(butfile .
- (("Butfile>")
- ("DirFile" (find-file hbmap:filename)
- "Edits directory-specific button file.")
- ("Info"
- (id-info "(hyperbole)Button Files")
- "Displays manual section on button files.")
- ("PersonalFile" (find-file
- (expand-file-name hbmap:filename hbmap:dir-user))
- "Edits user-specific button file.")
- ))
- '(cust .
- (("Cust>")
- ("All-Options" (customize-browse 'hyperbole)
- "Display tree of Hyperbole customizable options by group.")
- ("Debug-Toggle" hkey-toggle-debug
- "Toggle display of Smart Key context after each press, for
debugging.")
- ("Find-File-URLs" hpath:find-file-urls-mode
- "Toggle find-file support for ftp and www URLs.")
- ("Isearch-Invisible" hypb:toggle-isearch-invisible
- "Toggle whether isearch searches invisible text or not.")
- ("KeyBindings/" (menu . cust-keys) "Rebinds global Hyperbole keys.")
- ("Msg-Toggle-Ebuts" hyperbole-toggle-messaging
- "Toggle Hyperbole support for explicit buttons in mail and news
buffers.")
- ("Override-Local-Keys" hkey-toggle-override-local-bindings
- "Toggle whether conflicting local key bindings are overridden by
Hyperbole.")
- ("Referents/" (menu . cust-referents)
- "Sets where Hyperbole button referents are displayed.")
- ("Smart-Key-at-Eol/" (menu . cust-eol)
- "Sets how scrolling via end of line presses works.")
- ("Toggle-Rolo-Dates" hyrolo-toggle-datestamps
- "Toggle whether date stamps are updated when rolo entries are
edited.")
- ("URL-Display/" (menu . cust-urls) "Sets where URLs are displayed.")))
- '(cust-eol .
- (("Smart Key press at eol scrolls>")
- ("Proportionally" (setq smart-scroll-proportional t))
- ("Windowful" (setq smart-scroll-proportional nil))))
- '(cust-keys .
- (("Change Keys>")
- ("ActionKey" (hui:bind-key #'hkey-either)) ;; {M-RET}
- ("ButRename" (hui:bind-key #'hui:ebut-rename)) ;; {C-c C-r}
- ("DragKey" (hui:bind-key #'hkey-operate)) ;; {M-o}
- ("HypbMenu" (hui:bind-key #'hyperbole)) ;; {C-h h}
- ("MarkThing" (hui:bind-key #'hui-select-thing)) ;; {C-c RET}
- ("SmartHelp" (hui:bind-key #'hkey-help)) ;; {C-h A}
- ("WinControl" (hui:bind-key #'hycontrol-windows)) ;; {C-c \}
- ))
- '(cust-referents .
- (("Ref display>")
- ("Any-Frame" (setq hpath:display-where 'other-frame))
- ("Current-Win" (setq hpath:display-where 'this-window))
- ("Diff-Frame-One-Win"
- (setq hpath:display-where 'other-frame-one-window))
- ("New-Frame" (setq hpath:display-where 'new-frame))
- ("Other-Win" (setq hpath:display-where 'other-window))
- ("Single-Win" (setq hpath:display-where 'one-window))))
- '(cust-urls .
- (("URL display>")
- ("Chrome" (setq browse-url-browser-function #'browse-url-chrome))
- ("Default" (setq browse-url-browser-function
- (if (and (boundp 'browse-url-generic-program)
(stringp browse-url-generic-program))
- #'browse-url-generic
- #'browse-url-default-browser)))
- ("EWW" (setq browse-url-browser-function #'eww-browse-url))
- ("Firefox" (setq browse-url-browser-function #'browse-url-firefox))
- ("KDE" (setq browse-url-browser-function #'browse-url-kde))
- ("XTerm" (setq browse-url-browser-function #'browse-url-text-xterm))
- ))
- '(doc .
- (("Doc>")
- ("About" (hypb:display-file-with-logo
- (expand-file-name "HY-ABOUT" hyperb:dir))
- "Overview of Hyperbole.")
- ("Demo" (hypb:display-file-with-logo
- (expand-file-name "DEMO" hyperb:dir))
- "Demonstrates Hyperbole features.")
- ("Files" (find-file-read-only
- (expand-file-name "MANIFEST" hyperb:dir))
- "Summarizes Hyperbole system files. Click on an entry to view it.")
- ("Glossary"
- (id-info "(hyperbole)Glossary")
- "Glossary of Hyperbole terms.")
- ("Info" (id-info "(hyperbole)Top")
- "Online Info version of Hyperbole manual.")
- ("New" (hypb:display-file-with-logo
- (expand-file-name "HY-NEWS" hyperb:dir))
- "Recent changes to Hyperbole.")
- ("SmartKeys" (find-file-read-only (hypb:hkey-help-file))
- "Summarizes Smart Key mouse or keyboard handling.")
- ("Types/" (menu . types)
- "Provides documentation on Hyperbole types.")
- ))
- '(ebut .
- (("EButton>")
- ("Act" hui:hbut-act
- "Activates button at point or prompts for explicit button.")
- ("Create" hui:ebut-create)
- ("Delete" hui:ebut-delete)
- ("Edit" hui:ebut-modify "Modifies any desired button attributes.")
- ("Help/" (menu . ebut-help) "Summarizes button attributes.")
- ("Info"
- (id-info "(hyperbole)Explicit Buttons")
- "Displays manual section on explicit buttons.")
- ("Modify" hui:ebut-modify "Modifies any desired button attributes.")
- ("Rename" hui:ebut-rename "Relabels an explicit button.")
- ("Search" hui:ebut-search
- "Locates and displays personally created buttons in context.")
- ("Types" (hui:htype-help-current-window 'actypes)
- "Displays documentation for one or all action types used by explicit
buttons.")
- ))
- '(ebut-help .
- (("Help on>")
- ("BufferButs" (hui:hbut-report -1)
- "Summarizes all explicit buttons in buffer.")
- ("CurrentBut" (hui:hbut-report)
- "Summarizes only current button in buffer.")
- ("OrderedButs" (hui:hbut-report 1)
- "Summarizes explicit buttons in lexicographically order.")
- ))
- '(find .
- (("Find>")
- ("GrepFiles" hypb:rgrep "Show numbered line matches in all
specified files.")
- ("LocateFiles" hypb:locate "Locate matching file names
anywhere across a system.")
- ("MatchFileBuffers" moccur "Show numbered line matches for
regexp in all file-based buffers.")
- ("OccurHere" occur "Show numbered line matches for
regexp from this buffer.")
- ("RemoveLines" hypb:remove-lines "Following point, remove all
lines that match regexp.")
- ("SaveLines" hypb:save-lines "Following point, keep only
lines that match regexp.")
- ))
- '(gbut .
- (("GButton>")
- ("Act" gbut:act "Activates global button by name.")
- ("Create" hui:gbut-create "Adds a global button to gbut:file.")
- ("Edit" hui:gbut-modify "Modifies global button attributes.")
- ("Help" gbut:help "Reports on a global button by name.")
- ("Info" (id-info "(hyperbole)Global Buttons")
- "Displays manual section on global buttons.")
- ("Modify" hui:gbut-modify "Modifies global button attributes.")
- ))
- '(ibut .
- (("IButton>")
- ("Act" hui:hbut-current-act "Activates implicit button at
point.")
- ("DeleteIButType" (hui:htype-delete 'ibtypes)
- "Deletes specified button type.")
- ("Help" hui:hbut-help "Reports on button's attributes.")
- ("Info" (id-info "(hyperbole)Implicit Buttons")
- "Displays manual section on implicit buttons.")
- ("Types" (hui:htype-help 'ibtypes 'no-sort)
- "Displays documentation for one or all implicit button types.")
- ))
- '(msg .
- (("Msg>")
- ("Compose-Hypb-Mail"
- (hmail:compose "address@hidden" '(hact 'hyp-config))
- "Send a message to the Hyperbole discussion list.")
- ("Join-Hypb-List"
- (hmail:compose "address@hidden" nil
- "Just send the message; subject and body are
ignored.")
- "Subscribe to the Hyperbole discussion list.")
- ("Leave-Hypb-List"
- (hmail:compose "address@hidden" nil
- "Just send the message; subject and body are
ignored.")
- "Unsubscribe from the Hyperbole discussion list.")
- ("Report-Hypb-Bug"
- (hmail:compose "address@hidden" '(hact 'hyp-config))
- "Send a message to the Hyperbole bug reporting list.")
- ("Subscribe-Hypb-Bug"
- (hmail:compose "address@hidden" nil
- "Just send the message; subject and body are
ignored.")
- "Subscribe to the Hyperbole bug reporting list.")
- ("Unsub-Hypb-Bug"
- (hmail:compose "address@hidden" nil
- "Just send the message; subject and body are
ignored.")
- "Unsubscribe from the Hyperbole bug reporting list.")
- ))
- (if hyperb:kotl-p
- '(otl
- . (("Kotl>")
- ("All" kotl-mode:show-all "Expand all collapsed cells.")
- ("Blanks" kvspec:toggle-blank-lines
- "Toggle blank lines between cells on or off.")
- ("Create" kfile:find "Create or edit an outline file.")
- ("Downto" kotl-mode:hide-sublevels
- "Hide all cells in outline deeper than a particular level.")
- ("Examp" kotl-mode:example
- "Display a self-descriptive example outline file.")
- ("Hide" (progn (kotl-mode:is-p)
- (kotl-mode:hide-tree (kcell-view:label)))
- "Collapse tree rooted at point.")
- ("Info"
- (id-info "(hyperbole)Koutliner")
- "Display manual section on Hyperbole Koutliner.")
- ("Kill" kotl-mode:kill-tree
- "Kill ARG following trees starting from point.")
- ("Link" klink:create
- "Create and insert an implicit link at point.")
- ("Overvw" kotl-mode:overview
- "Show first line of each cell.")
- ("Show" (progn (kotl-mode:is-p)
- (kotl-mode:show-tree (kcell-view:label)))
- "Expand tree rooted at point.")
- ("Top" kotl-mode:top-cells
- "Hide all but top-level cells.")
- ("Vspec" kvspec:activate
- "Prompt for and activate a view specifiction.")
- )))
- '(hyrolo .
- (("Rolo>")
- ("Add" hyrolo-add "Add a new rolo entry.")
- ("Display" hyrolo-display-matches
- "Display last found rolo matches again.")
- ("Edit" hyrolo-edit "Edit an existing rolo entry.")
- ("Info" (id-info "(hyperbole)HyRolo")
- "Displays manual section on Hyperbole rolo.")
- ("Kill" hyrolo-kill "Kill an existing rolo entry.")
- ("Mail" hyrolo-mail-to "Mail to address following point.")
- ("Order" hyrolo-sort "Order rolo entries in a file.")
- ("RegexFind" hyrolo-grep "Find entries containing a regexp.")
- ("StringFind" hyrolo-fgrep "Find entries containing a string.")
- ("WordFind" hyrolo-word "Find entries containing words.")
- ("Yank" hyrolo-yank
- "Find an entry containing a string and insert it at point.")
- ))
- '(screen .
- (("Screen>")
- ("FramesControl" hycontrol-frames
- "Interactively delete, jump to, move, replicate, and resize frames.")
- ("WindowsControl" hycontrol-windows
- "Interactively delete, jump to, rebalance, resize, and split
windows.")))
- '(types .
- (("Types>")
- ("ActionTypes" (hui:htype-help-current-window 'actypes)
- "Displays documentation for one or all action types.")
- ("IButTypes" (hui:htype-help-current-window 'ibtypes 'no-sort)
- "Displays documentation for one or all implicit button types.")
- ))
- '(win .
- (("WinConfig>")
- ("AddName" hywconfig-add-by-name
- "Name current window configuration.")
- ("DeleteName" hywconfig-delete-by-name
- "Delete named window configuration.")
- ("RestoreName" hywconfig-restore-by-name
- "Restore frame to window configuration given by name.")
- ("PopRing" (progn (hywconfig-delete-pop)
- (hyperbole 'win))
- "Restores window configuration from ring and removes it from ring.")
- ("SaveRing" (hywconfig-ring-save)
- "Saves current window configuration to ring.")
- ("YankRing" (progn (call-interactively 'hywconfig-yank-pop)
- (hyperbole 'win))
- "Restores next window configuration from ring.")
- ))
- )))
;;; ************************************************************************
;;; Public functions
@@ -635,6 +340,22 @@ constructs. If not given, the top-level Hyperbole menu is
used."
(concat menu-prompt (mapconcat 'car (cdr menu-alist) " "))
menu-line)))
+(defun hui:menu-web-search ()
+ (let ((web-mini-menu
+ (cons 'web
+ (cons '("Web>")
+ (mapcar (lambda (service)
+ (list service
+ (list #'hyperbole-web-search service)
+ (format "Search %s" service)))
+ (mapcar 'car hyperbole-web-search-alist))))))
+ web-mini-menu))
+
+(defun hui-search-web ()
+ "Prompt for a web search engine and search term and then perform the search."
+ (interactive)
+ (hyperbole 'web))
+
;;; ************************************************************************
;;; Private variables
;;; ************************************************************************
@@ -667,6 +388,308 @@ constructs. If not given, the top-level Hyperbole menu
is used."
(define-key hui:menu-mode-map (char-to-string i) 'hui:menu-enter)
(setq i (1+ i)))))
+;;; ************************************************************************
+;;; Hyperbole Minibuffer Menus
+;;; ************************************************************************
+
+(setq
+ hui:menus
+ (delq nil
+ (list (cons
+ 'hyperbole
+ (append
+ (let ((version (if (= (aref hyperb:version 0) ?0)
+ (substring hyperb:version 1)
+ hyperb:version)))
+ (list (list (concat "Hy" version ">"))))
+ (delq nil
+ (list
+ '("Act" hui:hbut-act
+ "Activates button at point or prompts for explicit button.")
+ '("Butfile/" (menu . butfile)
+ "Quick access button files menus.")
+ '("Cust/" (menu . cust)
+ "Customizes Hyperbole by setting major options.")
+ '("Doc/" (menu . doc)
+ "Quick access to Hyperbole documentation.")
+ '("Ebut/" (menu . ebut)
+ "Explicit button commands.")
+ '("Find/" (menu . find)
+ "Find matching line commands.")
+ '("Gbut/" (menu . gbut)
+ "Global button commands.")
+ '("Hist" (hhist:remove current-prefix-arg)
+ "Jumps back to location prior to last Hyperbole button
follow.")
+ '("Ibut/" (menu . ibut)
+ "Implicit button and button type commands.")
+ (if hyperb:kotl-p
+ '("Kotl/" (menu . otl)
+ "Autonumbered outlining and hyperlink capabilities."))
+ '("Msg/" (menu . msg)
+ "Mail and News messaging capabilities.")
+ '("Rolo/" (menu . hyrolo)
+ "Hierarchical, multi-file rolo lookup and edit commands.")
+ '("Screen/" (menu . screen)
+ "Screen display management commands.")
+ '("Win/" (menu . win)
+ "Window configuration management commands.")
+ ))))
+ '(butfile .
+ (("Butfile>")
+ ("DirFile" (find-file hbmap:filename)
+ "Edits directory-specific button file.")
+ ("Info"
+ (id-info "(hyperbole)Button Files")
+ "Displays manual section on button files.")
+ ("PersonalFile" (find-file
+ (expand-file-name hbmap:filename hbmap:dir-user))
+ "Edits user-specific button file.")
+ ))
+ '(cust .
+ (("Cust>")
+ ("All-Options" (customize-browse 'hyperbole)
+ "Display tree of Hyperbole customizable options by group.")
+ ("Debug-Toggle" hkey-toggle-debug
+ "Toggle display of Smart Key context after each press, for
debugging.")
+ ("Find-File-URLs" hpath:find-file-urls-mode
+ "Toggle find-file support for ftp and www URLs.")
+ ("Isearch-Invisible" hypb:toggle-isearch-invisible
+ "Toggle whether isearch searches invisible text or not.")
+ ("KeyBindings/" (menu . cust-keys) "Rebinds global Hyperbole keys.")
+ ("Msg-Toggle-Ebuts" hyperbole-toggle-messaging
+ "Toggle Hyperbole support for explicit buttons in mail and news
buffers.")
+ ("Override-Local-Keys" hkey-toggle-override-local-bindings
+ "Toggle whether conflicting local key bindings are overridden by
Hyperbole.")
+ ("Referents/" (menu . cust-referents)
+ "Sets where Hyperbole button referents are displayed.")
+ ("Smart-Key-at-Eol/" (menu . cust-eol)
+ "Sets how scrolling via end of line presses works.")
+ ("Toggle-Rolo-Dates" hyrolo-toggle-datestamps
+ "Toggle whether date stamps are updated when rolo entries are
edited.")
+ ("URL-Display/" (menu . cust-urls) "Sets where URLs are displayed.")))
+ '(cust-eol .
+ (("Smart Key press at eol scrolls>")
+ ("Proportionally" (setq smart-scroll-proportional t))
+ ("Windowful" (setq smart-scroll-proportional nil))))
+ '(cust-keys .
+ (("Change Keys>")
+ ("ActionKey" (hui:bind-key #'hkey-either)) ;; {M-RET}
+ ("ButRename" (hui:bind-key #'hui:ebut-rename)) ;; {C-c C-r}
+ ("DragKey" (hui:bind-key #'hkey-operate)) ;; {M-o}
+ ("HypbMenu" (hui:bind-key #'hyperbole)) ;; {C-h h}
+ ("MarkThing" (hui:bind-key #'hui-select-thing)) ;; {C-c RET}
+ ("SmartHelp" (hui:bind-key #'hkey-help)) ;; {C-h A}
+ ("WinControl" (hui:bind-key #'hycontrol-windows)) ;; {C-c \}
+ ))
+ '(cust-referents .
+ (("Ref display>")
+ ("Any-Frame" (setq hpath:display-where 'other-frame))
+ ("Current-Win" (setq hpath:display-where 'this-window))
+ ("Diff-Frame-One-Win"
+ (setq hpath:display-where 'other-frame-one-window))
+ ("New-Frame" (setq hpath:display-where 'new-frame))
+ ("Other-Win" (setq hpath:display-where 'other-window))
+ ("Single-Win" (setq hpath:display-where 'one-window))))
+ '(cust-urls .
+ (("URL display>")
+ ("Chrome" (setq browse-url-browser-function #'browse-url-chrome))
+ ("Default" (setq browse-url-browser-function
+ (if (and (boundp 'browse-url-generic-program)
(stringp browse-url-generic-program))
+ #'browse-url-generic
+ #'browse-url-default-browser)))
+ ("EWW" (setq browse-url-browser-function #'eww-browse-url))
+ ("Firefox" (setq browse-url-browser-function #'browse-url-firefox))
+ ("KDE" (setq browse-url-browser-function #'browse-url-kde))
+ ("XTerm" (setq browse-url-browser-function #'browse-url-text-xterm))
+ ))
+ '(doc .
+ (("Doc>")
+ ("About" (hypb:display-file-with-logo
+ (expand-file-name "HY-ABOUT" hyperb:dir))
+ "Overview of Hyperbole.")
+ ("Demo" (hypb:display-file-with-logo
+ (expand-file-name "DEMO" hyperb:dir))
+ "Demonstrates Hyperbole features.")
+ ("Files" (find-file-read-only
+ (expand-file-name "MANIFEST" hyperb:dir))
+ "Summarizes Hyperbole system files. Click on an entry to view it.")
+ ("Glossary"
+ (id-info "(hyperbole)Glossary")
+ "Glossary of Hyperbole terms.")
+ ("Info" (id-info "(hyperbole)Top")
+ "Online Info version of Hyperbole manual.")
+ ("New" (hypb:display-file-with-logo
+ (expand-file-name "HY-NEWS" hyperb:dir))
+ "Recent changes to Hyperbole.")
+ ("SmartKeys" (find-file-read-only (hypb:hkey-help-file))
+ "Summarizes Smart Key mouse or keyboard handling.")
+ ("Types/" (menu . types)
+ "Provides documentation on Hyperbole types.")
+ ))
+ '(ebut .
+ (("EButton>")
+ ("Act" hui:hbut-act
+ "Activates button at point or prompts for explicit button.")
+ ("Create" hui:ebut-create)
+ ("Delete" hui:ebut-delete)
+ ("Edit" hui:ebut-modify "Modifies any desired button attributes.")
+ ("Help/" (menu . ebut-help) "Summarizes button attributes.")
+ ("Info"
+ (id-info "(hyperbole)Explicit Buttons")
+ "Displays manual section on explicit buttons.")
+ ("Modify" hui:ebut-modify "Modifies any desired button attributes.")
+ ("Rename" hui:ebut-rename "Relabels an explicit button.")
+ ("Search" hui:ebut-search
+ "Locates and displays personally created buttons in context.")
+ ("Types" (hui:htype-help-current-window 'actypes)
+ "Displays documentation for one or all action types used by explicit
buttons.")
+ ))
+ '(ebut-help .
+ (("Help on>")
+ ("BufferButs" (hui:hbut-report -1)
+ "Summarizes all explicit buttons in buffer.")
+ ("CurrentBut" (hui:hbut-report)
+ "Summarizes only current button in buffer.")
+ ("OrderedButs" (hui:hbut-report 1)
+ "Summarizes explicit buttons in lexicographically order.")
+ ))
+ '(find .
+ (("Find>")
+ ("GrepFiles" hypb:rgrep "Show numbered line matches in all
specified files.")
+ ("LocateFiles" hypb:locate "Locate matching file names
anywhere across a system.")
+ ("MatchFileBuffers" moccur "Show numbered line matches for
regexp in all file-based buffers.")
+ ("OccurHere" occur "Show numbered line matches for
regexp from this buffer.")
+ ("RemoveLines" hypb:remove-lines "Following point, remove all
lines that match regexp.")
+ ("SaveLines" hypb:save-lines "Following point, keep only
lines that match regexp.")
+ ("Web/" (menu . web) "Searches major web sites.")
+ ))
+ '(gbut .
+ (("GButton>")
+ ("Act" gbut:act "Activates global button by name.")
+ ("Create" hui:gbut-create "Adds a global button to gbut:file.")
+ ("Edit" hui:gbut-modify "Modifies global button attributes.")
+ ("Help" gbut:help "Reports on a global button by name.")
+ ("Info" (id-info "(hyperbole)Global Buttons")
+ "Displays manual section on global buttons.")
+ ("Modify" hui:gbut-modify "Modifies global button attributes.")
+ ))
+ '(ibut .
+ (("IButton>")
+ ("Act" hui:hbut-current-act "Activates implicit button at
point.")
+ ("DeleteIButType" (hui:htype-delete 'ibtypes)
+ "Deletes specified button type.")
+ ("Help" hui:hbut-help "Reports on button's attributes.")
+ ("Info" (id-info "(hyperbole)Implicit Buttons")
+ "Displays manual section on implicit buttons.")
+ ("Types" (hui:htype-help 'ibtypes 'no-sort)
+ "Displays documentation for one or all implicit button types.")
+ ))
+ '(msg .
+ (("Msg>")
+ ("Compose-Hypb-Mail"
+ (hmail:compose "address@hidden" '(hact 'hyp-config))
+ "Send a message to the Hyperbole discussion list.")
+ ("Join-Hypb-List"
+ (hmail:compose "address@hidden" nil
+ "Just send the message; subject and body are
ignored.")
+ "Subscribe to the Hyperbole discussion list.")
+ ("Leave-Hypb-List"
+ (hmail:compose "address@hidden" nil
+ "Just send the message; subject and body are
ignored.")
+ "Unsubscribe from the Hyperbole discussion list.")
+ ("Report-Hypb-Bug"
+ (hmail:compose "address@hidden" '(hact 'hyp-config))
+ "Send a message to the Hyperbole bug reporting list.")
+ ("Subscribe-Hypb-Bug"
+ (hmail:compose "address@hidden" nil
+ "Just send the message; subject and body are
ignored.")
+ "Subscribe to the Hyperbole bug reporting list.")
+ ("Unsub-Hypb-Bug"
+ (hmail:compose "address@hidden" nil
+ "Just send the message; subject and body are
ignored.")
+ "Unsubscribe from the Hyperbole bug reporting list.")
+ ))
+ (if hyperb:kotl-p
+ '(otl
+ . (("Kotl>")
+ ("All" kotl-mode:show-all "Expand all collapsed cells.")
+ ("Blanks" kvspec:toggle-blank-lines
+ "Toggle blank lines between cells on or off.")
+ ("Create" kfile:find "Create or edit an outline file.")
+ ("Downto" kotl-mode:hide-sublevels
+ "Hide all cells in outline deeper than a particular level.")
+ ("Examp" kotl-mode:example
+ "Display a self-descriptive example outline file.")
+ ("Hide" (progn (kotl-mode:is-p)
+ (kotl-mode:hide-tree (kcell-view:label)))
+ "Collapse tree rooted at point.")
+ ("Info"
+ (id-info "(hyperbole)Koutliner")
+ "Display manual section on Hyperbole Koutliner.")
+ ("Kill" kotl-mode:kill-tree
+ "Kill ARG following trees starting from point.")
+ ("Link" klink:create
+ "Create and insert an implicit link at point.")
+ ("Overvw" kotl-mode:overview
+ "Show first line of each cell.")
+ ("Show" (progn (kotl-mode:is-p)
+ (kotl-mode:show-tree (kcell-view:label)))
+ "Expand tree rooted at point.")
+ ("Top" kotl-mode:top-cells
+ "Hide all but top-level cells.")
+ ("Vspec" kvspec:activate
+ "Prompt for and activate a view specifiction.")
+ )))
+ '(hyrolo .
+ (("Rolo>")
+ ("Add" hyrolo-add "Add a new rolo entry.")
+ ("Display" hyrolo-display-matches
+ "Display last found rolo matches again.")
+ ("Edit" hyrolo-edit "Edit an existing rolo entry.")
+ ("Info" (id-info "(hyperbole)HyRolo")
+ "Displays manual section on Hyperbole rolo.")
+ ("Kill" hyrolo-kill "Kill an existing rolo entry.")
+ ("Mail" hyrolo-mail-to "Mail to address following point.")
+ ("Order" hyrolo-sort "Order rolo entries in a file.")
+ ("RegexFind" hyrolo-grep "Find entries containing a regexp.")
+ ("StringFind" hyrolo-fgrep "Find entries containing a string.")
+ ("WordFind" hyrolo-word "Find entries containing words.")
+ ("Yank" hyrolo-yank
+ "Find an entry containing a string and insert it at point.")
+ ))
+ '(screen .
+ (("Screen>")
+ ("FramesControl" hycontrol-frames
+ "Interactively delete, jump to, move, replicate, and resize frames.")
+ ("WindowsControl" hycontrol-windows
+ "Interactively delete, jump to, rebalance, resize, and split
windows.")))
+ '(types .
+ (("Types>")
+ ("ActionTypes" (hui:htype-help-current-window 'actypes)
+ "Displays documentation for one or all action types.")
+ ("IButTypes" (hui:htype-help-current-window 'ibtypes 'no-sort)
+ "Displays documentation for one or all implicit button types.")
+ ))
+ '(win .
+ (("WinConfig>")
+ ("AddName" hywconfig-add-by-name
+ "Name current window configuration.")
+ ("DeleteName" hywconfig-delete-by-name
+ "Delete named window configuration.")
+ ("RestoreName" hywconfig-restore-by-name
+ "Restore frame to window configuration given by name.")
+ ("PopRing" (progn (hywconfig-delete-pop)
+ (hyperbole 'win))
+ "Restores window configuration from ring and removes it from ring.")
+ ("SaveRing" (hywconfig-ring-save)
+ "Saves current window configuration to ring.")
+ ("YankRing" (progn (call-interactively 'hywconfig-yank-pop)
+ (hyperbole 'win))
+ "Restores next window configuration from ring.")
+ ))
+ (hui:menu-web-search)
+ )))
+
(provide 'hui-mini)
;;; hui-mini.el ends here
diff --git a/hui-mouse.el b/hui-mouse.el
index 2876eab..9c1286f 100644
--- a/hui-mouse.el
+++ b/hui-mouse.el
@@ -154,9 +154,11 @@ Set it to #'complete if you want behavior similar to that
of standard Emacs."
(t (scroll-up))) .
(scroll-down)))
;;
- ;; Within an OO-Browser OOBR-FTR buffer, an *Implementors* listing
- ;; buffer, or an Element signatures listing buffer of the
- ;; OO-Browser.
+ ;; Support the OO-Browser when available. It is a separate Emacs
+ ;; package not included with Hyperbole. Within an OO-Browser
+ ;; OOBR-FTR buffer, an *Implementors* listing buffer, or an
+ ;; Element signatures listing buffer of the OO-Browser, display
+ ;; the associated element.
((or (string-equal (buffer-name) "*Implementors*")
(string-match "-Elements\\'" (buffer-name))
(and (boundp 'br-feature-tags-file)
@@ -309,8 +311,9 @@ Set it to #'complete if you want behavior similar to that
of standard Emacs."
((eq major-mode 'gomoku-mode) .
((gomoku-human-plays) . (gomoku-human-takes-back)))
;;
- ;; Support the OO-Browser, a part of InfoDock and XEmacs, and an add on
- ;; to Emacs. It is not included with Hyperbole.
+ ;; Support the OO-Browser when available. It is a separate Emacs
+ ;; package not included with Hyperbole. Hyperbole supplies a stub
+ ;; `br-in-browser' test for use here.
((or (br-in-browser) (eq major-mode 'br-mode)) .
((smart-br-dispatch) . (smart-br-assist-dispatch)))
;;
diff --git a/hyperbole.el b/hyperbole.el
index ef45e86..a3d4fab 100644
--- a/hyperbole.el
+++ b/hyperbole.el
@@ -247,6 +247,9 @@ Entry format is: (key-description key-sequence
key-binding)."
;; Binds {C-c \} to interactively manage windows and frames.
(hkey-maybe-global-set-key "\C-c\\" 'hycontrol-windows)
;;
+ ;; Binds {C-c /} to display the Hyperbole Find/Web search menu.
+ (hkey-maybe-global-set-key "\C-c/" 'hui-search-web)
+ ;;
;; Binds {C-c .} to jump between the start and end of an delimited thing.
;; Don't override local bindings of this key.
(hkey-maybe-global-set-key "\C-c." 'hui-select-goto-matching-delimiter t)
- [elpa] externals/hyperbole updated (81e8485 -> df14034), Robert Weiner, 2016/08/09
- [elpa] externals/hyperbole b0724a8 18/20: Updates to release, package and elpa targets., Robert Weiner, 2016/08/09
- [elpa] externals/hyperbole 5ae3550 03/20: * hactypes.el (exec-shell-cmd): Replaced call to old function 'show-output-from-shell', Robert Weiner, 2016/08/09
- [elpa] externals/hyperbole fbee779 10/20: Minor hibtypes.el edit., Robert Weiner, 2016/08/09
- [elpa] externals/hyperbole 3174664 11/20: Fixed misnamed reference to hpath:file-suffix-regexp., Robert Weiner, 2016/08/09
- [elpa] externals/hyperbole e28b8bf 02/20: * HY-ANNOUNCE (About):, Robert Weiner, 2016/08/09
- [elpa] externals/hyperbole 6e38a4b 17/20: Merge branch 'master' of http://git.savannah.gnu.org/r/hyperbole into externals/hyperbole., Robert Weiner, 2016/08/09
- [elpa] externals/hyperbole ab16a35 06/20: * Changes: Renamed this file from ChangeLog since Elpa release builds,
Robert Weiner <=
- [elpa] externals/hyperbole a2b8a90 04/20: * hyperbole.el: Updated the header fields to better match GNU standards for use, Robert Weiner, 2016/08/09
- [elpa] externals/hyperbole 7e1675e 05/20: * README.md: Added menu images and screenshots for easy access., Robert Weiner, 2016/08/09
- [elpa] externals/hyperbole 275331f 16/20: Updated package, release and elpa targets., Robert Weiner, 2016/08/09
- [elpa] externals/hyperbole 390a976 01/20: * hload-path.el (hyperb:dir): If the Emacs Package Manager has already added this, Robert Weiner, 2016/08/09
- [elpa] externals/hyperbole df14034 20/20: Merge branch 'master' of http://git.savannah.gnu.org/r/hyperbole into externals/hyperbole, Robert Weiner, 2016/08/09
- [elpa] externals/hyperbole 12651d8 19/20: Upcased mistyped HYPB_VERSION in release target., Robert Weiner, 2016/08/09
- [elpa] externals/hyperbole ad7a089 13/20: * hys-org.el (defib org-mode, org-mode:help): Ensured trigger only in org-mode and simplified logic., Robert Weiner, 2016/08/09
- [elpa] externals/hyperbole 77a075f 07/20: * README.md.html - Added., Robert Weiner, 2016/08/09
- [elpa] externals/hyperbole 71b8e73 08/20: 2016-08-05 Bob Weiner <address@hidden>, Robert Weiner, 2016/08/09
- [elpa] externals/hyperbole 62547e0 12/20: * hmouse-tag.el (smart-asm-include-file, smart-c-include-file): Simplified conditionals a bit., Robert Weiner, 2016/08/09