summaryrefslogtreecommitdiff
path: root/man/hyperbole.texi
AgeCommit message (Collapse)Author
2019-08-11V7.0.3b test release: Basic DEMO updatesBob Weiner
2019-07-28Expanded Org mode doc; introduce 'key series' term in GlossaryBob Weiner
2019-07-23Most changes for 7.0.3a releaseBob Weiner
2019-07-21Most changes for 7.0.3a releaseBob Weiner
2019-07-207.0.3a changes for creating and modifying ibut labels, small fixesBob Weiner
2019-07-14Add labeled implicit buttons, in-buffer links to g/e/ibutsBob Weiner
2019-05-11Small fixes and doc updates in preparation for next releaseBob Weiner
2019-04-23Add Gitlab to DEMO; MSWindows path handling; company-mode Smart KeysBob Weiner
2019-02-16Update for treemacs compatibility; {M-o i} push button fixesBob Weiner
2019-02-06Fixed a few bugsBob Weiner
2019-02-03Large set of BW changes for V7.0.2b pre-release.Bob Weiner
2017-12-22Added 'k' to klink ids exported to html;Bob Weiner
Added hui-select-get-region*; Extended github-reference and gitlab-reference with 'people' and 'contributors' 2017-12-20 Bob Weiner <rsw@gnu.org> * kotl/kexport.el (kexport:html-file-klink) (kexport:html): (kexport:html-replacement-alist): Added 'k' to precede klink HTML HREF references since these must start with a letter. * hui-select.el (hui-select-get-region): Added this to be used in other libraries. (hui-select-get-region-boundaries): Added and used in hui-select-thing. 2017-12-19 Bob Weiner <rsw@gnu.org> * hib-social.el (github-reference, gitlab-reference): Added "people" reference support to list people who are part of a formal organization as well as a "staff" alias. Added "contributors" reference support to list project contributors as well.
2017-12-19Added extensive gitlab-reference ibtype; improved github-referenceBob Weiner
* hib-social.el (github-reference): Added =item-id syntax. (gitlab-reference): Added to support Gitlab references. 2017-12-18 Bob Weiner <rsw@gnu.org> * hib-social.el (github-reference): Fixed resolution of these formats of issue reference: gh#gh-34 and gh#issue/34 (needed to be plural).
2017-12-127.0.2a test update:Bob Weiner
company completion support; ripgrep match handling; directional movement of buffers across windows; hkey-{drag, replace, swap, throw} commands integrated with ace-window; hmouse-click commands to perform cross-window drags, replacements and throws with 3 mouse clicks; * hversion.el: Pushed 7.0.2a test update. * hmouse-drv.el (hkey-throw): Modified to show a message if the frame of release is different than the frame of depress, since this frame is typically hidden by the depress frame. * hmouse-tag.el (smart-lisp-mode-p): Added change-log-mode since such files often contain Lisp references. * hypb.el (hypb:select-window-frame): Added and used in hmouse-item-to-window. (hypb:save-selected-window-and-input-focus): Added and used in hkey-throw. * kotl/kotl-mode.el (kotl-mode): Fixed setq close paren error that skipped 4 settings of paragraph-start, selective-display, selective-display-ellipses and track-eol. 2017-12-10 Bob Weiner <rsw@gnu.org> * man/hyperbole.texi (Menu Commands, HyRolo Menu): Documented how to invoke the Koutliner and HyRolo popup menus in Emacs. * hyrolo-menu.el (hyrolo-menubar-menu): kotl/kmenu.el (kotl-menubar-menu): For GNU Emacs, use standard binding of C-mouse-3 to popup mode-specific menu instead of mouse-3. 2017-12-08 Bob Weiner <rsw@gnu.org> * hmouse-drv.el (hkey-ace-window-setup): Autoloaded since might be added to an init file before Hyperbole is loaded. * hycontrol.el (hycontrol-quit-frames-mode, hycontrol-quit-windows-mode): Added conditionals to allow for quitting from help buffers with {q} while remaining in HyControl, e.g. if display a key binding help window. Added {Q} binding to unconditionally quit from HyControl. * hmouse-drv.el (hkey-buffer-move): Added directional movement commands that call this function. hkey-buffer-move-left, hkey-buffer-move-right, hkey-buffer-move-down and hkey-buffer-move-up. 2017-12-07 Bob Weiner <rsw@gnu.org> * hload-path.el (hyperb:emacs-p): Removed Emacs19 test. (hyperb:kotl-p): Removed since all versions of Emacs in use now support the Koutliner. * hlvar.el - Removed this since colons are now handled by Emacs 26 in local variable names. * hypb.el (hypb:rgrep): Added support for ripgrep. hibtypes.el (ripgrep-msg): Added implicit button support for ripgrep (rg) messages where the associated pathname is output once before all mataching lines. See "https://github.com/BurntSushi/ripgrep". 2017-12-04 Bob Weiner <rsw@gnu.org> * hmouse-drv.el (hmouse-alist): Reload the def of this variable if its value is null. (hkey-mouse-click-to-replace): Added to allow moving buffers with the mouse by clicking on the from and to windows. (hmouse-click-to-drag, hmouse-click-to-drag-to, hmouse-click-to-replace, hmouse-click-to-throw, hmouse-choose-windows): Added to perform cross-window drags, replacements and throws with 3 mouse clicks. 2017-12-03 Bob Weiner <rsw@gnu.org> * hui-treemacs.el: Removed replacements for treemacs functions; as of Treemacs 1.14, all needed changes are included. 2017-12-01 Bob Weiner <rsw@gnu.org> * hmouse-drv.el (hkey-drag-stay, hkey-replace): Added for use as ace-window commands. (hkey-throw): Rewrote so if not on an item, then throws the current buffer. hkey-replace is the inverse, it grabs the specified buffer and places it into the selected window ({p} command key for ace-window). hkey-drag-stay does a drag but leaves point in the originally selected window. (hmouse-click-to-drag, hmouse-click-to-drag-stay, hmouse-click-to-drag-to) hmouse-click-to-replace, hmouse-click-to-swap, hmouse-click-to-throw): Added to click with the mouse twice on two different windows to select the windows using hmouse-choose-windows. (hkey-drag, hkey-drag-stay, hkey-drag-to, hkey-replace, hkey-swap, hkey-throw): Added and made interactive with ace-window window parameter selection. (hkey-buffer-to): Added to copy a buffer from-window to-window, using ace-window to select the windows. (hkey-swap-buffers): Added to swap buffers between from-window and to-window, using ace-window to select the windows. * hui-treemacs.el (smart-treemacs): Added standard Hyperbole end-of-line scrolling support. * hui-mouse.el (smart-company-to-definition, smart-company-help): Added to support company completion mode. hmouse-sh.el (hmouse-shifted-setup, hmouse-unshifted-setup): Added Action and Assist Key local bindings for company-mode for GNU Emacs. 2017-11-30 Bob Weiner <rsw@gnu.org> * man/hyperbole.texi (Glossary): Added Jedi item with link to its home page. Added link to the OO-Browser home page in its item. * hmouse-tag.el (smart-python-jedi-to-definition-p): Added and called in smart-python to use the Jedi package when its server is running. It jumps to the proper definition of multi-level module references definitions, e.g. a.b.c. Also fixed error where the default action was not jumping to a tag definition at point because it was testing that the identifier parameter was non-nil (no identifier is sent in such usage). * hui-mouse.el (hkey-alist): Moved smart-python prior to Imenu for more advanced definition lookups * hyperbole.el (temp-buffer-show-hook, temp-buffer-show-function): Added Hyperbole hkey-help-show function rather than replacing any existing hook values. 2017-11-29 Bob Weiner <rsw@gnu.org> * hibtypes.el (markdown-internal-link): Rewrote (and added support functions) to handle markdown infile links properly. Previous use of markdown-do was removed because that now does things other than following links. 2017-11-28 Bob Weiner <rsw@gnu.org> * hmouse-drv.el (hkey-help-show): Added conditionals to support org-mode org-goto *Org Help* buffer properly. 2017-11-27 Bob Weiner <rsw@gnu.org> * hmouse-drv.el (hkey-ace-window-setup): Made new ace-window frames (window id = z) inherit the size of the prior selected frame; same as HyWindow. * hui-window.el (hmouse-kill-and-yank-region, hmouse-yank-region): Added select-frame-set-input-focus in case released in a different frame. 2017-11-26 Bob Weiner <rsw@gnu.org> * hmouse-drv.el (hkey-throw): Restored input focus to start-win rather than just making it the selected window. (hkey-drag-to): Fixed predicate test to call hmouse-at-item-p instead of hmouse-drag-item-to-display and set input focus to release-window if dragging an item.
2017-11-23Added keyboard 'throws' of items for display in specific windows; fixed ↵Bob Weiner
compilation error; released 7.0.2 * hversion.el: Released 7.0.2. * hui-window.el (hmouse-at-item-p): Added to test if on a draggable item. * hmouse-drv.el (hkey-throw): Added to throw a drag item to a specific window via the ace-window package and the key sequence {M-o t <window-id>}, leaving the original source window selected. * man/hyperbole.texi (Keyboard Drags): Added description of throwing an item. * hui-mouse.el: Fixed a compilation time problem with when hmouse-alist was defined. ============================================================================== V7.0.2 changes ^^^^: ==============================================================================
2017-11-21Documented latest changes and allowed for small movements in Smart Mouse Key ↵Bob Weiner
modeline clicks * hversion.el: Updated to 7.0.1 for release. * DEMO (Displaying File and Buffer Items): Added description of ace-window integration. * HY-WHY.kotl: Added link to Delimited Thing drags; mention of Treemacs * man/hyperbole.texi (Smart Key - Treemacs): Added and updated with other improvements for this release. (Keyboard Drags): Added this section and documented integration with ace-window package. * hui-window.el (hmouse-modeline-click): Loosened check to allow a small movement between press and release as long as it is less than whatever amount of movement registers a drag (used to require exact pixel match).
2017-11-21Keyboard drags; Treemacs item drags; Ace-Window item throws and HyRolo ↵Bob Weiner
Google Contacts improvements Enabled keyboard-based drag emulation and associated help with {C-h A}. Made HyRolo support of Google Contacts usable by eliminating repeated login requests. Added item drags for Treemacs file viewer package. Added {i} key to Ace-Window package operations to display an item in a specific window. * hmouse-drv.el (hkey-ace-window-setup): Setup keyboard-based display of items in windows specified by short ids. See its doc string for how to use. (hkey-drag, hkey-drag-jump): Added for mouse drag emulation via keyboard from a single function that uses the selected window point for depress location and the parameter RELEASE-WINDOW for the window and its point for release. hkey-drag-jump is useful as a command in the ace-window package's aw-dispatch-alist, e.g. {i} for insert item, because it leaves RELEASE-WINDOW selected. * hui-select.el (hui-select-ignore-quoted-sexp-modes): Added so major modes to ignore for syntactic pair selection can be customized. (hui-select-at-delimited-thing-p): Changed to not trigger when on an Emacs button. * hui-window.el (hmouse-drag-between-frames): Replaced calls to window-valid-p with window-live-p. (hmouse-drag-window-side, hmouse-drag-between-windows, hmouse-drag-same-window, hmouse-drag-outside-all-windows, hmouse-drag-item-to-display, hmouse-item-to-window): Added window-live-p checks for cases where a window has been deleted between depress and release. * hmouse-drv.el (hmouse-window-at-absolute-pixel-position): Updated to support keyboard drag emulation. (hkey-help): Changed hkey-forms to use hmouse-alist instead of hkey-alist so mouse drags are accounted for when emulating drags from the keyboard and then invoking {C-h A} for help. hui-window.el (hmouse-drag-outside-all-windows): Triggered only if an action/assist-key press has occurred, e.g. could be called by hkey-help when no press has occurred. (hmouse-x-coord, hmouse-y-coord): Removed error when there is no valid coordinate and returned nil instead to support keyboard drag emulation help. 2017-11-20 Bob Weiner <rsw@gnu.org> * hmouse-drv.el (hkey-absolute-pixel-position): Added and used in Action/Assist Key functions. (hmouse-set-point): Fixed hkey-operate bug by wrapping final (posn-at-point) in a list with an event type symbol so if called from a keyboard event, returns a proper format event. (hkey-operate): Changed so output messages only when called interactively. * hui-treemacs.el: Added for Smart Key support of the Treemacs file manager. (smart-treemacs): Added. (smart-treemacs-modeline): Added to allow toggling of Treemacs display on Action Key clicks on buffer id of modeline. hui-mouse.el (hkey-alist, action-key-modeline-buffer-id-function): Added Smart Key treemacs package support. hui-window.el (action-key-modeline): Updated to call action-key-modeline-buffer-id-function. hactypes.el (link-to-buffer-tmp): Added optional 2nd parameter of POINT to display. 2017-11-19 Bob Weiner <rsw@gnu.org> * hui-window.el (hmouse-item-to-window): Added support for hmouse-drag-item-mode-forms sending a sequence of (buffer position) rather than just buffer. (hmouse-drag-item-mode-forms): Added support for dragging items from the treemacs hierachical file viewer package. 2017-11-17 Bob Weiner <rsw@gnu.org> * hyrolo.el (hyrolo-initialize-file-list): Fixed to set hyrolo-file-list. (hyrolo-retrieve-google-contacts): Updated to cache Google passphrase whenever Google contacts are used so the user is not prompted for his passphrase on every HyRolo search. man/hyperbole.texi (HyRolo Settings): Updated Google Contacts settings handling to document this caching. * man/im/C-hh.png - Added showing Hyperbole mini-buffer menu prefix key binding. 2017-11-16 Bob Weiner <rsw@gnu.org> * hywconfig.el (hywconfig-delete-pop): Fixed bug that removed the ring entry before using it to restore the window configuration. ============================================================================== V7.0.1 changes ^^^^: ==============================================================================
2017-11-15Fixed a bunch of small issues and released Hyperbole 7.Bob Weiner
* hversion.el: Updated to 7.0.0 for major release. * hui-window.el (hmouse-drag-window-side): Fixed coordinate error when drag release is outside of Emacs. * hui-mouse.el (smart-helm-assist): Fixed message formatting bugs in hkey-debug message. * hlvar.el (hack-local-variables): Changed from use of older inhibit-local-variables variable to newer (inhibit-local-variables-p) function call. * Makefile (version): Removed HY-ANNOUNCE-SHORT from distribution. * kotl/kexport.el (kexport:html): Changed to wrap cell contents in <PRE></PRE> tags if soft-newline-flag is nil rather than using <BR> hard newlines, so all cell formatting is preserved. Also changed NAME attribute to ID for HTML5. 2017-11-14 Bob Weiner <rsw@gnu.org> * kotl/kimport.el (kimport:star-heading): Added and replaced use of hard-coded regexps in star outline importation. Also, stopped allowing leading whitespace before outline heading stars so can use indented stars as list items rather than outline headings. * hibtypes.el (text-toc): Expanded file names to include DEMO and TUTORIAL. DEMO: Added Table of Contents and a section on using it, Table of Contents Browsing. * hbut.el (ebut:label-p): Changed last parameter to limit search to two lines rather than one, so Info node matches can span two lines as they often do. * HY-ABOUT: Added link to HY-WHY.kotl. HY-WHY.kotl: Added links to relevant DEMO sections throughout. DEMO (Koutliner): Updated this section. hui-menu.el (infodock-hyperbole-menu): Added Why-Use? entry. hui-mini.el (hui:menus): Added WhyUse entry to display HY-WHY.kotl, list of Hyperbole use cases. man/hyperbole.css (code, tt): Removed leading and trailing padding of 5px from code samples so display inline better.
2017-11-06Many bug fixes; added HyRolo DEMO section; many Hyperbole Manual updates ↵Bob Weiner
including images * hyrolo-demo.el (hyrolo-demo-quit): Added to unload hyrolo-demo code and used in demo. * man/hyperbole.texi (Menus): Documented hyperbole-popup-menu. * hui-menu.el (hyperbole-popup-menu): With a non-nil prefix arg, rebuild the Hyperbole popup menu in case it did not initialize properly for any reason. * man/hyperbole.texi (Using URLs with Find-File): Added URL browser customization menu reference and image. (Smart Key - WWW URLs): Added browse-url-browser-function and Cust/URL-Display reference. (Referent Display): Added this section and documented display options for standard link referents. * hyrolo-logic.el (hyrolo-map-logic): Removed improper outline test for old format Emacs outlines. (hyrolo-fgrep-logical): Fixed to include sub-entries in logical searches. * hib-kbd.el (kbd-key:mark-spaces-to-keep): Added to preserve spaces in (), [], or <> delimited sections of Hyperbole sequences of brace delimited keys; used this function in kbd-key:normalize. 2017-11-04 Bob Weiner <rsw@gnu.org> * hycontrol.el (hycontrol-windows-grid-buffer-list): Replaced all uses of (eq major-mode 'dired-mode) with (derived-mode-p 'dired-mode) to generalize. 2017-11-03 Bob Weiner <rsw@gnu.org> * man/hyperbole.texi (HyRolo Settings): Added Google Contacts set up and use description. * hyrolo.el (hyrolo-file-list-initialize): Made interactive and displayed a message with the resulting list if called interactively. Added autoload. (hyrolo-initialize-file-list): Renamed from hyrolo-file-list-initialize. * hui-window.el (hmouse-split-window): Changed to split selected window parallel to its shortest dimension. * DEMO: Added new section on HyRolo. DEMO-ROLO.otl: Added. hyrolo-demo.el: Added with the functions hyrolo-demo-fgrep and hyrolo-demo-fgrep-logical. hyrolo-logic.el (hyrolo-map-logic): Fixed issue where a buffer was required but a buffer name was given as an argument preventing search from matching. (hyrolo-fgrep-logical): Fixed that logical searches were not forced to case insensitive to match hyrolo-fgrep. Also updated to handle non-logical string searches. * hbut.el (ebut:operate): Fixed issue where user had selected a region to use as a button label but then the same text was inserted when the label was created. Solved by moving point to the beginning of any marked region so buffer text comparison succeeds. * hui-window.el (hmouse-x-coord, hmouse-y-coord): Simplified logic in GNU Emacs clause. (hmouse-emacs-modeline-event-p): If a drag release was to an unselected frame mode-line, on click-to-focus systems, the release event will not include the mode-line area when release was on the mode-line, so manually compute if that was the location. 2017-11-02 Bob Weiner <rsw@gnu.org> * hmouse-drv.el (hkey-help): Fixed that arguments were being stripped from action calls in the help output. * hibtypes.el (pathname): Fixed to handle "-subr.elc" whose prefix character "-" tells Hyperbole to load, not display subr.elc. Also handled subr.el.gz compressed source files. * hib-kbd.el (kbd-key): Prevented matches to brace delimited things that are not preceded by whitespace or at the beginning of buffers, e.g. ${variable}. * man/hyperbole.texi (Implicit Buttons): Added examples. hib-kbd.el (kbd-key): Improved doc. * hibtypes.el (hyp-address): Fixed to grab email address using thing-at-point and work in mail-mode not just whatever mode hmail:composer is. (Info-node): Added check for ``dual single quotes'' used in Texinfo smart quotes. * hpath.el (hpath:substitute-value): (hpath:substitute-dir): Fixed to handle unbound symbol names. This fixed an error when an environment variable matched a symbol but the symbol was unbound, e.g. (hpath:substitute-value "${PATH}/python")
2017-11-02Updated HY-NEWS with all new features for next major release.Bob Weiner
* HY-NEWS: Updated for next major release * man/hyperbole.texi (Button Colors): Added doc on hproperty:but-highlight-flag. (Hook Variables): Added doc of: action-key-depress-hook, action-key-release-hook, assist-key-depress-hook and assist-key-release-hook. * hsettings.el (hproperty:but-highlight-flag): Added as a setting. hui-em-but.el (hproperty:but-highlight-p): Renamed to hproperty:but-highlight-flag. (hproperty:but-emphasize-p): Renamed to hproperty:but-highlight-flag. hui-xe-but.el (hproperty:but-highlight-p): Renamed to hproperty:but-highlight-flag. (hproperty:but-emphasize-p): Renamed to hproperty:but-highlight-flag.
2017-11-01Corrected mouse-position and mouse-pixel-position to return selected frame; ↵Bob Weiner
added key sequences with args support. * hib-kbd.el (kbd-key:special-sequence-p): Added and used in implicit button type kbd-key and kbd-key:act. (kbd-key:key-and-arguments): Added to allow for key sequences with interactive arguments and added an example in DEMO. * hui-mini.el (hui:menus): hui-menu.el (hui-menu-key-bindings): Added Find Web and Jump Thing key binding change entries. * hyperbole.el (mouse-position-function): Added this setting to make mouse-position and mouse-pixel-position always return the selected frame. * hsettings.el (helm-allow-mouse): Changed to require Hyperbole-modified branch of Helm named global_mouse and set helm-allow-mouse to the proper value of 'global-mouse-bindings.
2017-11-01Prep and bug fixes for next major release; fixed Smart Mouse Key point ↵Bob Weiner
location issue; renamed to kotl/kotl-autoloads.el * man/hyperbole.texi (Version): Updated to 6.0.2g and rebuilt output formats. * hui-window.el (hmouse-prior-active-region): Changed to call use-region-p rather than active-region-p, for a tighter test. This is used as a predicate; fixed bug that moved point, causing Smart Key release logic to use the wrong point. * hmouse-key.el (hmouse-add-unshifted-smart-keys): Removed GNU Emacs-only dependencies. * kotl/kotl-autoloads.el: Renamed from kotl/kotl-loaddefs.el to match package autoload naming scheme. * hmouse-sh.el (hmouse-unshifted-setup): In Info-mode, Emacs uses key-translation-map to link mouse-1 to do whatever mouse-2 does but because Hyperbole uses both down and up bindings on mouse2, this does not work. So we rebind mouse-1 and double-mouse-1 in Info mode to be actual Action Mouse Keys (which makes them follow Info links/cross-references properly, doing a superset of what they did before). (hmouse-posn-set-point): Added to handle frames rather than windows returned by some events; used in hmouse-move-point-emacs. * hui-mouse.el (hmouse-tag): Added require of hmouse-info and hmouse-tag for smart-info, smart-lisp etc. when autoload file is not available. * hmouse-sh.el (hmouse-bind-key-emacs): hui-select.el (hui-select-initialize): Added missing double-down-* and triple-down-* bindings. 2017-10-31 Bob Weiner <rsw@gnu.org> * hyperbole.el (hyperb:init): Added an "Initializing Hyperbole..." message at the beginning of this function. Removed 'Hyperbole loading' message at the beginning of this file since Emacs load function outputs a similar message. Moved Hyperbole 'ready for action' message here rather than at the end of this file since Hyperbole initialization may be deferred until after Emacs initializaton time. Hyperbole init. is complete only after this function is run. 2017-10-30 Bob Weiner <rsw@gnu.org> * man/hyperbole.texi (Glossary): Removed mention of old remote file access packages: ange-ftp and EFS. Use Tramp only now. (Searching and Summarizing): Renamed from Location. * hpath.el (hpath:remote-at-p): Fixed to return /ftp: pre-pended to ftp paths since Tramp requires it. * hibtypes.el (mail-address): Made lower priority than pathname so when an email-like user@domain is part of a remote pathname, this won't trigger. * hpath.el (hpath:rfc): Prepended /ftp: to value so tramp recognizes it as a remote file path. * man/hyperbole.texi (Smart Mouse Key Modifiers): hmouse-mod.el: Disabled this feature since it conflicts with present Emacs bindings of Control- and Meta- mouse keys. * hui-mini.el (Doc/Manifest): hui-menu.el (Documentation/Manifest): Changed to use hypb:display-file-with-logo so can quit after viewing. * hversion.el (id-browse-file): Changed alias from find-file-read-only to view-file. hui-mini.el (Doc/SmartKeys): Changed command used to match that used when same doc is displayed with a click at the right of a modeline. * man/hyperbole.texi (Smart Keys): Added section on Smart Mouse Key Drags to match those in the DEMO file. (Global Key Bindings): Replaced hkey-toggle-bindings with proper reference to hyperbole-toggle-bindings. (Smart Key Bindings): Included hyperbole-toggle-bindings (toggles keyboard and mouse keys) rather than hmouse-toggle-bindings (toggles only mouse keys); moved the latter to the Global Key Bindings appendix.
2017-10-27Action Mouse Key drag to modeline splits destination window before ↵Bob Weiner
displaying the target item/buffer; added css to format Hyperbole HTML manual * man/hyperbole.css: Added to format HTML version of the Hyperbole manual like the Hyperbole web page, greatly improving its appearance. * man/hkey-help.txt: man/hyperbole.texi (Modeline Clicks and Drags): Documented new drag below. hui-window.el (hmouse-alist): Added context of a drag from a window with a release to a modeline which for Action Mouse Key splits the release window (which contains the modeline) and then displays the item or the buffer from the depress window in the release window. With the Assist Mouse Key, just swaps buffers with no new window creation. (hmouse-modeline-click): Updated to do full testing for a click, so this can be called at any point after Smart Mouse Key release. (hmouse-buffer-to-window, hmouse-item-to-window): Added optional boolean new-window parameter to force a new window before buffer display. (hmouse-split-window): Added. (hmouse-modeline-event-p): Fixed conditional error that caused fall through past Modern GNU Emacs clause. (action-mouse-key, assist-mouse-key): Set above new variables. (action-key, assist-key): Added clear of any value of *-key-depress/release-position. hmouse-drv.el (action-key-release-position, assist-key-release-position): Added these to compare to existing *-key-depress-position value. * README.md, HY-ANNOUNCE: Updated for public release.
2017-10-26Added global {C-c @} binding. Fixed some mouse handling bugs. Mostly ↵Bob Weiner
finalized DEMO and manual. * man/hyperbole.texi (Smart Mouse Drags outside a Window): Added this new section. Updated manual with all new drag actions. * hui-window.el (hmouse-goto-region-point, hmouse-prior-active-region): Rewrote these to work properly so that Smart Mouse yanking and killing feature works as documented. Previously, it was not switching to the buffer of the depress point when checking foran active region. * hmouse-drv.el: Updated doc. * MANIFEST (topwin): Renamed to topwin.py. * hycontrol.el (hycontrol-windows-grid): Improved doc. * hyperbole.el (hkey-initialize): Added global {C-c @} binding to hycontrol-windows-grid. hui-mini.el (hui:menus): Under cust-keys, added GridOfWindows key change entry. hui-menu.el (hui-menu-key-bindings): Added Grid-of-Windows-Key entry. man/hyperbole.texi (Global Key Bindings): Documented this binding. * DEMO (Modeline Mouse Clicks): Added section, "Running Dired on the Current Directory". * man/hyperbole.texi (Smart Key - Image Thumbnails): Added this section. Wrapped all images with @example and removed @center so do not appear way to the left of text when formatted as html. (Koutliner): Centralized all key binding index entries under "koutliner, ". (Glossary): Added Windows Grid entry. (HyControl): Added Concept Index entries. (Manual Overview): Improved pointer to DEMO. * hycontrol.el (hycontrol-windows-grid-rows-columns): Renamed to hycontrol-make-windows-grid. (hycontrol--frames-prompt-format, hycontrol--windows-prompt-format): Changed FRAME: and WINDOW: prompt to plural to match mode and variable names.
2017-10-25Renamed @ command functions to hycontrol-windows-grid. Updated manual and ↵Bob Weiner
DEMO with newest commands. * hycontrol.el: Extended initial commentary with new features and improved explanations. (hycontrol-split-windows-rows-columns): Modified to temporarily exit HyControl mode if need to read a rows-columns argument. (hycontrol-split-windows-buffer-list, hycontrol-split-windows, hycontrol-split-windows-by-major-mode hycontrol-split-windows-repeatedly, hycontrol-split-windows-rows-columns): Renamed by replacing 'split-windows' with 'windows-grid'. (hycontrol-window-minimize-lines): Previously did not resize window if it could not display all of the buffer lines in the window. Now will resize to 1 line if cannor or if all lines are already displayed. (hycontrol-split-windows-buffer-list): Added doc string. * DEMO (HyControl): Added interactive examples of newest HyControl commands. * hui-window.el (hmouse-goto-depress-prev-point): Fixed to handle when no prev-point is saved. (hmouse-drag-region-active): Return nil if no prev-point saved. * hpath.el (hpath:is-p): Fixed to handle single % in path argument when sent as format string near the end of the function. * hib-kbd.el (kbd-key:normalize): Quoted % characters as %% to prevent format from treating them specially. (kbd-key:hyperbole-hycontrol-key-p): Added to match key sequences within HyControl since its prefix arguments are specified without C-u or ESC or META prefixes. (kbd-key, kbd-key:act): Used above function here. * hmouse-drv.el (hkey-either): Fixed to ignore prefix args set by HyControl. * hyperbole.el (hkey-initialize): hui-menu.el (hui-menu-key-bindings): Changed {C-c \} entry from hycontrol-windows to new hycontrol-enable-windows-mode.
2017-10-24Hyperbole 6.0.2f pre-releaseBob Weiner
* man/hyperbole.texi (Version): Updated to 6.0.2f and rebuilt output formats.
2017-10-24HyControl changes: now a global minor mode; added @ window grid creation ↵Bob Weiner
command; inverted selected mode-line for emphasis 2017-10-24 Bob Weiner <rsw@gnu.org> * hycontrol.el (hycontrol-universal-arg-digit): Removed first argument and replaced with global hycontrol-arg, so could set this value internally. (hycontrol--debug, hycontrol-setup): Changed from -1 to 0 as debug setting since -1 is used to turn off HyControl minor modes. (hycontrol-debug): Renamed from hycontrol--debug. Made public so can be set directly. (hycontrol-setup, hycontrol-frames, hycontrol-windows): : Removed debug parameter; no longer needed since all events are handled normally by Emacs now. (hycontrol-windows-mode-map): [ and ] bindings; don't call these interactively because a prefix arg of 1 tries to make one window 1 line tall. (hycontrol-split-windows-repeatedly): Added to allow rapid visual testing of various window layouts until satisfied. (hycontrol-post-command-hook): Made this automatically quit from HyControl whenever a minibuffer prompt becomes active so can use regular keys to type. (hycontrol-invert-mode-line-flag, hycontrol-invert-mode-line): Added to invert mode-line to emphasize the special key bindings in effect in HyControl modes. 2017-10-23 Bob Weiner <rsw@gnu.org> * hycontrol.el (hycontrol-split-windows-buffer-list): Added to prefix buffer-list with any marked items when in a Dired, Buffer-Menu or iBuffer listing buffer. If any such items exist, the buffer-list is not filtered by hycontrol-display-buffer-predicate-list. (hycontrol-pre-command-hook): Added and changed setting of prefix-arg to pre-command-hook. This set it properly for HyControl commands. (hycontrol--prompt-format): Added to generalize help prompt handling. (hycontrol-post-command-hook): Replaced windows and frames post-command-hook with this one. (hycontrol-frames-mode, hycontrol-windows-mode): Made these global minor modes and added their variables to the hyperbole-screen group. Buffer local minor modes renamed to hycontrol-local-*-mode. (hycontrol-quit-frames-mode, hycontrol-quit-windows-mode): Changed defs to disable its global minor mode. (hycontrol-post-command-hook): Fixed so HyControl help messages are not logged to the *Messages* buffer. (hycontrol-disable-modes): Added. * set.el (set:create): Added autoload in case is ever used without a require. * hycontrol.el (hycontrol-split-windows, hycontrol-split-windows-rows-columns, hycontrol-split-windows-by-major-mode): Incredible new autoloaded commands that split a frame into a number of balanced windows specified by rows and columns (typically as prefix arg digits). Each window shows a different buffer, if possible, with the by-major-mode command preferring buffers with the specified major mode. The hycontrol-split-windows chooses the by-major-mode command when given a prefix arge of 0; otheriwse, the rows-column one. (hycontrol-window-display-buffer, hycontrol-display-buffer-predicate-list) hycontrol--invert-display-buffer-predicates): Added to support new commands. (require 'set): Added for set:create used in hycontrol-split-windows-by-major-mode. (hycontrol-*-mode-map): Bound {@} to hycontrol-split-windows-rows-columns, also in Buffer-menu, IBuffer and Dired modes. * hycontrol.el (hycontrol--initial-which-key-inhibit): Added. (hycontrol-end-mode, hycontrol-frames, hycontrol-windows): Used above flag. (hycontrol-setup): Refactored common parts of hycontrol-frames and hycontrol-windows here. (hycontrol-frames-setup, hycontrol-windows-setup): Added and used in hycontrol-frames and hycontrol-windows, respectively. 2017-10-22 Bob Weiner <rsw@gnu.org> * Makefile ($(pkg_dir)/hyperbole-$(HYPB_VERSION).tar): Ensured `topwin' script was made executable. hmouse-drv.el (hmouse-window-at-absolute-pixel-position): Changed to find `topwin' executable in hyperb:dir so no additional installation is necessary. * hycontrol.el (hycontrol-window-to-new-frame): Fixed to duplicate prior selected window size properly. * hui-window.el man/hkey-help.txt: Noted that a modeline click on a dired Buffer ID shows the parent directory. 2017-10-20 Bob Weiner <rsw@gnu.org> * hycontrol.el (hycontrol-help-flag): (hycontrol-toggle-help): Added to allow toggling minibuffer key binding help off. (hycontrol-frames-mode, hycontrol-windows-mode): Made HyControl modes into minor modes. (hycontrol-enable-frames-mode, hycontrol-enable-windows-mode): Renamed from hycontrol-toggle-to-*-mode. man/hyperbole.texi (HyControl): Updated documentation with these changes. * hbut.el (ibtype:create): Expanded this doc for defact, explaining how actions are connected to its 'at-p' parameter. * hycontrol.el (hycontrol-abort-mode): Added and used when {C-g} is pressed; exits HyControl and executes (keyboard-quit). (hycontrol-end-mode, hycontrol-quit-frames-mode, hycontrol-quit-windows-mode, hycontrol-toggle-to-frames-mode, hycontrol-toggle-to-windows-mode): Added and used as key bindings. (hycontrol-exit-mode): Deleted and replaced with above commands. (hycontrol-frame-fit-to-screen): Changed to adjust width and height separately which fixed a bug in our call to set-frame-size which kept increasing the frame height slightly. (hycontrol-frames, hycontrol-windows): Prevented `which-key' package from popping up its key help and interferring with the minibuffer message while in HyControl. Otherwise, the which-key help could be left onscreen after a quit of HyControl. * hui-window.el (hmouse-pulse-flag): Made t the default because timing and display issues with pulsing drag items were resolved now. 2017-10-19 Bob Weiner <rsw@gnu.org> * Makefile (pkg): Changed hyperbole source dir from hyperbole-<version> to hyperbole since that is the name of the git repo top-level directory from which packages are now built. * hui-jmenu.el (hui-menu-hywconfig): Fixed improper variable reference that kept Delete-Name and Restore-Name from ever being active.
2017-10-19V6.0.2e: Rewrote HyControl for improved generality, event handling and to ↵Bob Weiner
support key bindings. 2017-10-19 Bob Weiner <rsw@gnu.org> * man/hyperbole.texi (Version): Updated to 6.0.2e and rebuilt output formats. * hycontrol.el (hycontrol-frame-adjust-widths, hycontrol-frame-adjust-heights, hycontrol-frame-adjust-widths-full-height, hycontrol-frame-adjust-heights-full-width, hycontrol-set-width-percentage-full-height, hycontrol-set-height-percentage-full-width, hycontrol-frame-widths-pointer, hycontrol-frame-widths, hycontrol-frame-heights-pointer, hycontrol-frame-heights: Added to cycle through resizing height or width of frames to common sizes. Also cycle through one dimension while fixing the other dimension at full-screen size. (hycontrol--frames-prompt-format): Added {a} and {A} bindings to both frames and windows keymaps to adjust frame width and height respectively by cycle through a list of common fixed percentages such as 25% and 50%. Added to Hyperbole manual. (hycontrol-frames-post-command-hook-body, hycontrol-windows-post-command-hook-body): Added to prevent {C-g} quit from signalling an error within post-command-hook. 2017-10-18 Bob Weiner <rsw@gnu.org> * hycontrol.el (hycontrol-restore-frame-configuration, hycontrol-restore-window-configuration, hycontrol-save-configurations, hycontrol-delete-other-frames, hycontrol-delete-other-windows, hycontrol-clone-window-to-new-frame hycontrol-make-frame): Made interactive. (hycontrol-frames, hycontrol-windows): Forced arg to numeric value on entry. (hycontrol-stay-in-mode, hycontrol-universal-arg-digit, hycontrol--debug, hycontrol--exit-status, hycontrol-arg, hycontrol--frames-prompt-format, hycontrol--windows-prompt-format, hycontrol-frames-pre-command-hook, hycontrol-windows-pre-command-hook, hycontrol-frames-mode-map, hycontrol-windows-mode-map, hycontrol-exit-mode): Added. (hycontrol-prettify-event, hycontrol-handle-event): Removed. (hycontrol-frames, hycontrol-windows): Rewrote HyControl to use a frame-mode and window-mode transient keymap which allows for regular key bindings and eliminates the need for a HyControl event loop and processing of non-HyControl events. There should be no change in HyControl user-visible behavior from this other than that key bindings may now be customized (remember to update the HyControl minibuffer prompts if you do change any). 2017-10-17 Bob Weiner <rsw@gnu.org> * hycontrol.el (hycontrol-screen-offset-alist, hycontrol-set-screen-offsets, hycontrol-display-screen-offsets): Changed ordering of items to match Emacs window-edges and frame-edges. (hycontrol-fit-to-screen): Added and used to ensure resized and repositioned windows fit on the screen. (hycontrol-set-frame-height, hycontrol-set-frame-position, hycontrol-set-frame-size, hycontrol-set-frame-width): Added with calls to hycontrol-fit-to-screen. * man/hyperbole.texi: Removed InfoDock and XEmacs references since they are so old and no longer maintained that no one uses them today. * hmouse-sh.el (hmouse-unshifted-setup): Changed to enable right mouse key as Assist Key unless optional argument MIDDLE-KEY-ONLY-FLAG is non-nil (which is how it is called from hmouse-shifted-setup). * hycontrol.el (hycontrol-frame-percentage-of-screen): Automatically adjusted out of bounds percentages to the closest number of 0 and 0.998 (so does not overflow screen. Automatically moved frame if right or bottom edges are offscreen as a result of size change. * DEMO (Dragging Buffers and Windows): Renamed this from 'Moving Buffers' and added subsections. 2017-10-16 Bob Weiner <rsw@gnu.org> * man/hyperbole.texi (Smart Key Modeline Clicks): Renamed from Smart Key Modeline. Added up-to-date info on click locations and actions. (Implicit Buttons): Added git-reference, git-commit-reference and github-reference. (Future Work): Added Direct Manipulation section. (Smart Keys): Moved before Buttons chapter since Buttons references Smart Keys and the benefits of Smart Keys are quicker to understand. * hui-mouse.el (smart-dired, smart-dired-assist): Made end of first line behave just like last line for quitting and executing actions. * hmouse-drv.el (hmouse-window-at-absolute-pixel-position): Further optimized for when depress and release windows are the same and frame has an auto-raise property, then we know release window was uppermost at the point of release and can skip finding what app owned the topmost window. * hui-window.el (hmouse-dired-readin-hook): (hmouse-dired-display-here-mode): Added and used in hmouse-drag-item-mode-forms. Once a dired buffer item has been dragged, make next Action Key press on an item display it in the same dired window. man/hyperbole.texi (Smart Key - Dired Mode): Documented here and in smart-dired function. * man/hkey-help.txt: hui-window.el: Updated drag acton summaries with the latest information. * hui-window.el (hmouse-drag-vertically-within-emacs): Added to allow for modeline vertical drags between windows. * hui-mouse.el (smart-dired-pathname-up-to-point): Added this to change the behavior of smart-dired. When on the first line of a Dired buffer where its directory path is shown, treat any ancestor subdirectory of the current directory as a selectable path. Thus, you can run Dired on any ancestor subdirectory simply by pressing the Action Key at the end of the subdirectory you want. A press on the first / character, runs dired on the root directory. man/hyperbole.texi (Smart Key - Dired Mode): Updated doc to reflect this change.
2017-10-16Added drags between frames and outside Emacs, new mode-line drags, dired ↵Bob Weiner
item drags, hyperbole.el commentary, texinfo @findex and @vindex implicit buttons, hycontrol frame quadrant movement by virtual numeric keypad, greater hycontrol WINDOW/FRAME commonality, hycontrol rapid frame percentage resizing along a single edge, improved smart key help 2017-10-16 Bob Weiner <rsw@gnu.org> * hib-debbugs.el (debbugs-query:at-p): eliminated match of #id-number and always required 'bug' or similar prefix so there is no ambiguity with social references including git #commit-number. * hmouse-drv.el (hkey-help): Updated to handle call-interactively actions and 'or'ed action intelligently when printing action documentation. 2017-10-15 Bob Weiner <rsw@gnu.org> * hmouse-drv.el (action-key-depress-position, assist-key-depress-position): Added to test whether or not last Action Mouse Key event was a mouse click (non-drag event). 2017-10-14 Bob Weiner <rsw@gnu.org> * hmouse-drv.el (hmouse-window-at-absolute-pixel-position): Added optional Python script, topwin, for macOS window-system only. It determines the topmost application window at the given position and returns the application name, so Emacs can tell if its frame is obscured by another application or not. (hmouse-verify-release-window-flag): Added so can turn off use of the macOS Python script when desired since it slows Smart Key action handling at least 1/3 of a second. * hycontrol.el (hycontrol-frames): Changed = command call to set-frame-size to use pixel dimensions rather than chars/lines for better accuracy. (hycontrol-window-to-new-frame): Same. * hui-menu.el (hui-menu-key-binding-item): Added. * hmouse-drv.el (hmouse-set-point): Fixed to return a posn object as a fallback, i.e. what event-start and event-end return; previously, had returned point as a marker in this case. Keyboard-based emulation of mouse drags via hkey-operate had been broken; this fixed it. * hui-window.el (hmouse-x-coord, hmouse-y-coord): Updated to accept a posn. (hmouse-modeline-event-p): Ignored case where args is a posn or point-marker, not an event. 2017-10-13 Bob Weiner <rsw@gnu.org> * hversion.el (hyperb:window-sys-term): Emacs set-frame-parameter does not return the value, so this function was always returning nil. Fixed it to return what the doc says it does. * hycontrol.el (hycontrol-frame-at-left-p, hycontrol-frame-at-top-p, hycontrol-frame-at-right-p, hycontrol-frame-at-bottom-p): Added. (hycontrol-frame-expand-to-*): Rewrote these: first they expand a frame to a particular edge; then the next invocation when already at that edge, cuts that frame dimension in half from the opposite side (or to any percentage specified as an argument), leaving the particular edge fixed. Renamed to hycontrol-frame-resize-to-*. This allows both rapid expansion and contraction of frames with just 4 keys whenever needed. (hycontrol-frame-resize-percentage, hycontrol-frame-resize-arg): Added as support functions. (hycontrol-frame-edges): Added to ensure outer edges of frames are always used. (hycontrol-frames): Added arg as a 0-100 percentage for i,j,k,m commands. (hycontrol-windows): Added same c (cycle frame positions), i,j,k,m keys and numeric keypad keys to here. (hycontrol-frames/windows): Added p (virtual numeric keypad) to allow keyboard-based frame quadrant movement when a numeric keypad is not available. This can be interrupted with a q to return to the control menu or a C-g to abort the control menu. * hui-window.el (hmouse-horizontal-action-drag): Replaced doc typo of 'vertical' with 'horizontal'. * DEMO (Help buffers): Added description of how to get help for Smart Mouse Key-only events. * hycontrol.el (hycontrol-windows, hycontrol-frames): In window-control mode, changed {f} to clone window to new frame without deleting the source window to match similar Action Key drag from window/modeline to outside of any Emacs window. Added {F} to clone but delete the source window. Added these 2 bindings to frame-control mode too. Documented in Hyperbole manual. Expanded control help to 4 lines, added = command to equalize sizes of windows/frames, added f/F commands. * hibtypes.el (texinfo-ref): Added doc display for Emacs Lisp @findex (function) and @vindex (variable) entries. Changed so does nothing if function or variable is unbound. Updated its doc string and doc in the Hyperbole manual. * hmouse-drv.el (hkey-help): Changed to print "WHICH WILL:" rather than "WHICH:" when the first word of the doc string does not end in an 's', e.g. "Display this" instead of "Displays this". * hui-window.el (hmouse-release-left-edge): Noted that left edge mode-line clicks must be on the first blank character of the mode-line because Emacs overrides the Smart Mouse Key bindings immediately after that position. Noted in Hyperbole manual as well. * Makefile (version): Added hyperbole.el to version check. hyperbole.el: Updated the Commentary with a description of Hyperbole in case the Emacs package system or a user looks here for it. * hycontrol.el (hycontrol-clone-window-to-new-frame): Added and used in hmouse-alist. 2017-10-12 Bob Weiner <rsw@gnu.org> * hycontrol.el (hycontrol-window-to-frame): Renamed to hycontrol-window-to-new-frame. (hycontrol-keep-window-flag): Added: When non-nil (default is nil), leave original window when tear off window to another frame. * hui-window.el (hmouse-emacs-modeline-event-p, hmouse-modeline-event-p): Added. (hmouse-modeline-depress, hmouse-modeline-release): Simplified and speeded up for GNU Emacs. (action-key-modeline, assist-key-modeline): man/hyperbole.texi (Modeline Clicks and Drags): Updated with new modeline buffer id click actions. man/hkey-help.txt: Updated with most new drag and click actions. * hywconfig.el: Changed all (called-interactively-p 'interactive) to (called-interactively-p) so will work if called interactively from one of the Smart Key lists. * DEMO: Fixed a number of small issues with implicit buttons therein. * hui-window.el (hmouse-drag-diagonally, hmouse-drag-horizontally, hmouse-drag-vertically): Added explicit test that press and release are in the same window. (hmouse-drag-item-to-display, hmouse-item-to-window): Added dired support. (hmouse-pulse-flag): Disabled by default due to sluggishness and improper visuals at times. (hmouse-map-modes-to-form, hmouse-drag-item-mode-forms): Added. (hmouse-drag-item-to-display, hmouse-item-to-window): Updated to use the new variable, hmouse-drag-item-mode-forms so users can add new modes for named item drags. * hui-window.el (hmouse-drag-between-frames): Added and used in hmouse-alist. (hmouse-alist): Added modeline drags between frames and outside of Emacs. Added window drags outside of any window (outside of Emacs). (hmouse-clone-window-to-frame): Added and used in hmouse-alist. man/hkey-help.txt: Updated with latest modeline and between window drag movements. 2017-10-11 Bob Weiner <rsw@gnu.org> * hycontrol.el (hycontrol-window-to-frame): Modified in the case of only one window in the frame, then clone the window into a new frame. This allows you to create a bunch of tiled frames when in Window Control mode. Also made this an autoload and called in "hui-window" within hmouse-alist. * hui-window.el (hmouse-drag-outside-all-windows): Added to handle the case where a drag release is outside of any Emacs window or frame and used in hmouse-alist. * hmouse-drv.el (hmouse-vertical-line-spacing): Added and used to compute vertical character positions. (hmouse-key-release-window-emacs): Renamed to hmouse-key-release-window and used in hmouse-function to set action/assist-key-release-window accurately. (hmouse-function): Fixed so action/assist-key-release-prev-point is set properly, before point is set to the location of the mouse button release. * hui-window.el (hmouse-drag-thing): Fixed to handle when release location is outside Emacs and end-point is nil. (hmouse-drag-same-window): Added and used in horizontal and vertical drag tests. * hmouse-key.el (hmouse-update-smart-keys): Extended to also re-initialize Smart Key bindings. * hmouse-drv.el (smart-scroll-up): Removed 's' from the end of verbs in all function comments, e.g. scroll window instead of scrolls window, for consistency within the file. (hmouse-window-at-absolute-pixel-position, hmouse-window-coordinates): Added to compute the actual window and location of the release of a mouse drag which Emacs does not compute. Proper top-to-bottom listing of frames is available only in Emacs 26 and above. For prior versions, the ordering of the frames returned is not guaranteed, so the frame whose window is returned may not be the uppermost. (hmouse-key-release-window-emacs, hmouse-key-release-args-emacs): Updated to use new window of release functions. Now drags between frames work properly.
2017-10-11Added gh#status to show github status; eliminated annot-bib matches from ↵Bob Weiner
programming modes. 2017-10-10 Bob Weiner <rsw@gnu.org> * hyperbole.el (after-init-time): Add hyperb:init to the end of after-init-hook; previously was added at the beginning. This is intended to ensure that Hyperbole key bindings are set after any others, notably {M-RET}. * hypb.el (hypb:rgrep-command): Changed to zgrep when available to handle compressed source files. 2017-10-09 Bob Weiner <rsw@gnu.org> * hibtypes.el (annot-bib): Eliminated matches for any programming mode (modes derived from `prog-mode'). * README.md: Fixed link markup in Mailing Lists and Ftp and Git Source Code-only Downloads 2017-10-08 Bob Weiner <rsw@gnu.org> * man/hyperbole.texi (Implicit Buttons): Re-arranged types to reflect newest prioritization. * hib-social.el (github-reference): Added support for showing status of Github services with gh#status. 2017-10-06 Bob Weiner <rsw@gnu.org> * man/hyperbole.texi (Hiding and Showing): Added paragraph on using {C-x 4 c} to clone a Koutline and display multiple views of it. But commented this out because of an Emacs bug which alters the narrowing of indirect buffers after an outline hide or show.
2017-10-06V6.0.2d - Improved README and added git#=branch:file implicit button syntax.Bob Weiner
* man/hyperbole.texi (Version): Updated to 6.0.2d and rebuilt output formats. * Makefile (README.md.html): Added build rule as part of 'make doc'. README*: Rewrote the Summary intro paragraph and first two numbered items in simpler terms for new users. * hib-social.el (git-commit-reference): Added new implicit button type to display a diff for any commit listed in 'git log' output. (git-reference): Fixed a few typos and added support for git#=branch:file syntax to view (not edit) a file from a specific branch. Hyperbole finds which project the branch and file are associated with if a default is not specified. Documented in this file and DEMO.
2017-10-04V6.0.2c - Smart Key and popup menu buffer fixes; simplified Assist Key ↵Bob Weiner
handling code 2017-10-04 Bob Weiner <rsw@gnu.org> * man/hyperbole.texi (Version): Updated to 6.0.2c and rebuilt output formats. * hmouse-sh.el (hmouse-bind-key): Renamed to hmouse-bind-key-emacs since is emacs-only. (hmouse-bind-shifted-key): Renamed to hmouse-bind-shifted-key-emacs. 2017-10-03 Bob Weiner <rsw@gnu.org> * hui-window.el (hmouse-alist): In hmouse-drag-horizontally test, removed check of (not (hmouse-drag-between-windows)) since was tested earlier in hmouse-alist. (hmouse-resize-window-side, hmouse-release-left-edge, hmouse-swap-buffers, hmouse-swap-windows, hmouse-modeline-resize-window, hmouse-release-right-edge, hmouse-modeline-click, hmouse-modeline-release): Removed optional assist-flag arg; used assist-flag free variable instead. * hmouse-tag.el (smart-tags-display): Fixed to include tags-table found in any ancestor directory of current directory when tags-table-list already contains items. * hpath.el (hpath:find-program): Changed so Hyperbole external and internal file suffix lists are consulted before using standard directory or image display methods. So for example, Emacs.app on macOS, which is actually a directory, can be displayed/run externally. (hpath:external-display-alist-macos): Added .app suffix. * hui-jmenu.el (hui-menu-buffer-mode-name): mode-name might not be a string; pass it through format-mode-line to ensure it is a string. Without this, hui-menu-of-buffers could trigger an error on some buffers.
2017-10-01V6.0.2b; Fixed ebut creation argument prompting; Normal key seqs and ESC for ↵Bob Weiner
meta allowed in HyControl 2017-10-01 Bob Weiner <rsw@gnu.org> * hycontrol.el (hycontrol-handle-event): (hycontrol-prettify-event): Fixed to handle large integer code events, e.g. M-p. 2017-09-30 Bob Weiner <rsw@gnu.org> * man/hyperbole.texi (HyControl): hycontrol.el (hycontrol-frames, hycontrol-windows): Removed ESC as a quit command since now that key sequences are supported, this is often used as a meta key prefix. Use {q} to quit. * hact.el (actype:act, actype:action): Fixed regexp match to beginning of string; quote mark used had somehow been changed to the end of string match regexp. As a result, when explicit buttons were being created or modified, no arguments were prompted for. * hargs.el (hargs:delimited): Removed unneeded properties from any returned string. * hpath.el (hpath:at-p): Added missing non-exist parameter to hpath:delimited-possible-path call. This extends the prior bug fix for hpath:at-p. See below. * hmouse-drv.el (hmouse-key-release-args-emacs): Updated to handle cross-frame drags properly for when Emacs' event system is fixed to return the proper frame for a cross-frame drag release event (as of 25.3, it returns the depress frame rather than the release frame). 2017-09-29 Bob Weiner <rsw@gnu.org> * hycontrol.el (hycontrol-prettify-event): Added. 2017-09-28 Bob Weiner <rsw@gnu.org> * hycontrol.el (hycontrol-handle-event): Expanded to handle single non-self-inserting keys and key sequences.
2017-09-28Minor bug fixes for Koutlines; updated Hyperbole manual versionBob Weiner
* man/hyperbole.texi (Version): Updated to 6.02a and rebuilt output formats. * man/hyperbole.texi (View Specs): Noted that ellipses can no longer be turned off. kotl/kvspec.el (kvspec:compute): Removed `e' ellipses viewspec because it no longer works with modern Emacs outlining. (kvspec:update): Force display of `e' viewspec. (kvspec:activate): Changed to always compute new kvspec:current even if requested view-spec seems the same so the 'e' viespec is added if not included. * kotl/kotl-mode.el (kotl-mode): Handled removal of newest outline-minor-mode mode-line indication for Koutlines.
2017-09-25File/Dir linking fix; Smart Key reloading; helm mouse control improvements; ↵Bob Weiner
Hyperbole menu use doc strings * hui-mini.el (hui:menu-item): Improved so that if menu item has no help string but its action is a function with a doc string, then it will use the first line of the action doc string for displaying help on the item. * hmouse-key.el (hmouse-check-action-key, hmouse-check-assist-key): Added to check that both depress and release events are set to Smart Mouse Keys. Mainly for use with helm. Called from smart-helm and smart-helm-assist respectively. * hui-mouse.el (action-key-error, assist-key-error): Maded explicit these are messages from Hyperbole. (smart-helm-at-header): Corrected doc string. (smart-helm-at): Added to test type of helm thing point is at. (smart-helm, smart-helm-assist): Updated to complement each other better; made section header clicks work. * hmouse-key.el (hmouse-add-unshifted-smart-keys): Renamed from hmouse-add-unshifted-keys. Made interactive and added error if invoked under something other than GNU Emacs 19 or higher. (hmouse-update-smart-keys): Added to provide interactive updating of Smart Keys whenever a matching context or action has been changed in the source code; reloads any changes to "hui-mouse", "hui-window", "hibtypes" or "hactypes", most notably changes to hkey-alist and hmouse-alist. * hui-mouse.el (hkey-alist, smart-outline-char-invisible-p, smart-eolp): Added and used to improve and narrow matching of end-of-lines. Previously, did not handle new-style Emacs outlines properly nor helm section header lines. * kotl/kotl-mode.el (kotl-mode:action-key, kotl-mode:assist-key): hui-mouse.el (smart-outline, smart-outline-assist): Changed to invoke action/assist-key-eol-function for end-of-line scrolling, eliminating hard-coded call. man/hyperbole.texi (Smart Key - Emacs Outline Mode): Documented this change. * hargs.el (hargs:at-p): Fixed bug when linking to files or directories, would choose symbol at Action Key release point rather than the file or directory containing that symbol. This was caused by allowing matches to non-existent files and dirs when the 'no-default' argument was t. Now prevented such matching. This could occur when creating or editing explicit button links.
2017-09-182017-09-18 Bob Weiner <rsw@gnu.org>Bob Weiner
* hui-mouse.el (smart-helm): Finalized and added doc. of contexts and actions. * hui-window.el (smart-coords-in-window-p): (hmouse-drag-window-side): Handled null value of coords. 2017-09-17 Bob Weiner <rsw@gnu.org> * hui-mouse.el (hkey-alist): Changed minibuffer handling to support Helm. * man/hkey-help.txt: Small updates to Special Mode doc. * hmouse-key.el (hmouse-add-unshifted-keys): Added to allow user init of unshifted Smart Keys. For GNU Emacs only, this binds [mouse-2] to the Action Key and [mouse-3] to the Assist Key. man/hyperbole.texi (Smart Key Bindings): Added doc for hmouse-add-unshifted-keys. * hmouse-sh.el (hmouse-get-unshifted-bindings): Uncommented inclusion of mouse-3 for times when user manually sets mouse-3 as the Assist Key. Otherwise, hmouse-toggle-bindings will never change its value. (hmouse-bind-key, hmouse-bind-shifted-key): Added and used these to ensure depress and release bindings are wholly reset before rebinding them under GNU Emacs. 2017-09-14 Bob Weiner <rsw@gnu.org> * hpath.el (hpath:external-open-office-suffixes): Added .odt suffix. * hui-select.el (hui-select-at-p): Protect against empty buffer error. 2017-09-12 Bob Weiner <rsw@gnu.org> * hibtypes.el (grep-msg): (pathname): Don't match in helm completion buffers. * hui-mouse.el (smart-helm-line-has-action): Ignore any actions helm imputes to header lines and candidate separator lines in helm completion buffers, as they are non-actionable lines. Also, ignore if at the end of the buffer. (hkey-alist): Lowered smart-helm priority so can use Smart Key end-of-line functions in such buffers. * hsys-www.el (eww-link-at-point): Basic stylistic improvements. 2017-09-11 Bob Weiner <rsw@gnu.org> hyrolo.el: Added basic commentary to the file header.
2017-09-112016-09-08 Bob Weiner <rsw@gnu.org>Bob Weiner
* man/hyperbole.texi: Documented Pages Directory Listing handling. * kotl/klink.el: (require 'hbut): Added to define defib when compiled. 2016-08-26 Bob Weiner <rsw@gnu.org> * hui-mouse.el (hkey-alist): Added Smart Key jump to associated page in pages-directory-mode (page-ext.el). man/hkey-help.txt: Documented Pages Directory Listing and Imenu Programming Identifier handling.
2016-08-08* hactypes.el (link-to-web-search): Added so Hyperbole global and explicit ↵Bob Weiner
buttons can execute web searches. hsettings.el (hyperbole-read-web-search-arguments): Added and used in hyperbole-web-search and link-to-web-search. DEMO (Sample Explicit Buttons and Types): man/hyperbole.texi (Action Types): Documented link-to-web-search. * INSTALL, README, README.md, README.md.html: Added Browsing the Source section with ftp tarball download information. * hpath.el (hpath:delimited-possible-path): Added non-ascii quote characters to possible delimiters. (hpath:delete-trailer): Added quoting characters to deletion to fix bug where remote pathname retrieval would include a trailing quote mark. * hargs.el (hargs:delimited): Added support for up to 2-line delimited regions as long as point is on the first line. Normalized any newline followed by whitespace to a single space in the string returned. Added (require 'hypb).
2016-08-08* hmouse-tag.el (smart-asm-include-file, smart-c-include-file): Simplified ↵Bob Weiner
conditionals a bit. * hpath.el (hpath:is-p): Fixed improper parsing issue with hash links that included commas such as: "DEMO#Grep, Occurrence, Debugger and Compiler Error Buttons, and Cscope Analyzer". * Demo (Org Mode): man/hyperbole.texi (Implicit Buttons): hsys-org.el (org-mode): Changed so if not at an end of line, on an org mode link or on an existing heading, then invokes the Org mode standard binding of M-RET, (org-meta-return). 2016-08-07 Bob Weiner <rsw@gnu.org> * hpath.el (hpath:markup-link-anchor-regexp, hpath:to-markup-anchor): Modified to support hash-style links to Emacs outline file section headlines, matching as is done with Github-style Markdown section links. DEMO: man/hyperbole.texi: Updated to document the above change. * hypb.el (hypb:file-major-mode): Added. 2016-08-06 Bob Weiner <rsw@gnu.org> * man/hyperbole.texi (Customization): Renamed from Configuration. (Web Search Engines): Added this section under Customization. (HyControl): Added FramesControl key sequence. (Smart Key - Smart Scrolling): Documented {action,assist}-key-eol-function variables. * hsmail.el (mail-indent-citation, mail-yank-original): Updated for Emacs 25 compatibility.
2016-08-05* hibtypes.el (annot-bib): Added markdown-mode to the excluded list to avoid ↵Bob Weiner
conflict with its links. (markdown-internal-link): Added to follow internal Markdown links. man/hyperbole.texi: (Implicit Buttons): Added markdown-internal-link. * hsys-www.el: Renamed from hsys-w3.el since it is not related to the Emacs W3 web browser any longer. * Demo (HTML and Markdown Hash Links): Added this section. hib-social.el (social-reference): Changed so disabled this implicit button type in html and related modes only if within double or single quotes. hibtypes.el (pathname): hpath.el (hpath:to-markup-anchor): Renamed from hpath:to-html-anchor and generalized for use with Markdown as well. Added recognition of section links like: - [Why was Hyperbole developed?](#why-was-hyperbole-developed) so the pathname implicit button type matches when the Action Key is pressed anywhere on or after the hash character and jumps to the section: ## Why was Hyperbole developed? accounting for any trailing punctuation and differences in case. (hpath:markdown-suffix-regexp, hpath:markdown-anchor-id-pattern, hpath:markdown-section-pattern): Added. (hpath:markup-link-anchor-regexp): Renamed from hpath:html-link-anchor-regexp.
2016-08-052016-08-05 Bob Weiner <rsw@gnu.org>Bob Weiner
* hib-social.el (social-reference): Disabled this implicit button type in html and related modes so in-file link references are not matched as social hash tags and made the list of modes a variable, hpath.el (hpath:to-html-anchor): Added. (hpath:find): Rewrote to follow HTML in-file anchor references. 2016-08-04 Bob Weiner <rsw@gnu.org> * hpath.el (hpath:html-suffix-regexp, hpath:html-anchor-id-pattern, hpath:html-link-anchor-regexp): Added. * README, README.md, README.md.html: Added a new testimonial. * Makefile (elpa, ftp): Added these targets to install Hyperbole releases for ELPA or ftp download. Changed so release target depends on package target so you can build a package prior to a release. * hpath.el (hpath:remote-available-p): Fixed tramp package check prior to loading by adding a test for tramp-autoload-file-name-handler. * README.md.html: Fixed bookmarks/in-file link ids. 2016-08-03 Bob Weiner <rsw@gnu.org> * hsettings.el (hyperbole-web-search-alist): Made any edit update all Hyperbole menus with the new value. DEMO (Hyperbole Menus): Added description and exercise using the new Find/Web menu. hui-mini.el (Cust/Web-Search): Added to allow setting of hyperbole-web-search-browser-function. hui-menu.el (infodock-hyperbole-menu): Added optional rebuild-flag to force rebuilding of the Hyperbole menubar menu. * man/hyperbole.texi (HyControl): Documented ESC as a way to quit from HyControl.
2016-08-02* README.md.html - Added.Bob Weiner
2016-08-01 Bob Weiner <rsw@gnu.org> * hui-menu.el (hui-menu-browser): Added to allow setting of hyperbole-web-search-browser-function. (infodock-hyperbole-menu): Added missing quote in Display-Referents-in setq, fixing invalid code generation. * README.md (Invocation): HY-ANNOUNCE (Invocation): INSTALL (Invocation): README (Files): DEMO (HyControl): Added pointer to HyControl video and {C-c \} binding. hyperbole.texi (HyControl): Updated {C-c \} binding description. * hycontrol.el (hycontrol-frames, hycontrol-windows): Added ESC as an additional key that quits form HyControl. * man/hyperbole.texi (Global Key Bindings): Documented {C-c /} prefix key. (Menus): Added Find/Web menu.
2016-07-29* README.md: Added menu images and screenshots for easy access.Bob Weiner
* 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.
2016-07-26* hyperbole.el: Added Date: header with release date and updated date inBob Weiner
man/version.texi used in hyperbole.texi. * README.md: Added this, a markdown formatted introduction combining README, INSTALL and HY-ABOUT.
2016-07-25Updated manual release date.Bob Weiner
2016-07-25* README: Renamed this file from HY-README. Moved installation and invocationBob Weiner
instructions to "INSTALL" file. These changes were to eliminate release problems with INSTALL and README being symbolic links. * hmouse-tag.el (smart-tags-display): Added with-no-warnings around find-tag call to prevent obsolete warnings and removed setting of byte-compile-warnings.
2016-07-23* Makefile (hyperbole-$(HYPB_VERSION).tar): Added HY-ABOUT and HY-ANNOUNCEBob Weiner
to files installed outside the tar archive for reference. * man/hyperbole.texi (Installation): Updated to latest version. 2016-07-22 Bob Weiner <rsw@gnu.org> * man/hyperbole.texi: Added new @kitem and @kitemx macros to surround keyboard items in tables with braces. * Makefile (version): Added HY-ANNOUNCE. HY-ANNOUNCE: Added release announcement. INSTALL: HY-NEWS: Small improvements.
2016-07-22* man/hyperbole.texi (Implicit Buttons):Bob Weiner
hib-social.el (social-reference): Improved doc for this ibtype. * man/hyperbole.texi (Implicit Buttons, Explicit Buttons): Improved clarity. (Global Buttons): Explained how to use global buttons.
2016-07-22* hyperbole.el (hyperbole-koutliner group): Moved definition to ensure comes ↵Bob Weiner
after hversion is loaded. * Makefile (pkg): Updated to build kotl/kotl-autoloads.el file because the Emacs Lisp Package Manager (ELPA) does not yet handle generation of autoloads for package subdirectories.
2016-07-21* hsettings.el: Renamed this from hsite.el to prevent Hyperbole V4 users fromBob Weiner
accidentally loading it manually. * hyperbole.el (hyperbole-autoloads): If this exists and autoloads kotl-mode, then skip setup to generate hyperbole-autoloads with autoloads from the kotl/ subdirectory.