Skip to content

Hyperbole 7.0.3: Ace Window Integration Improvements and MSWindows Path Support

Compare
Choose a tag to compare
@rswgnu rswgnu released this 11 May 21:19
· 1617 commits to master since this release
hyperbole-7.0.3

ACE WINDOW PACKAGE INTEGRATION - fast window and buffer switching

- Selected Window Buffer Replace: Added the ability to 'replace' the
  selected window's buffer with the buffer of another window.  Use
  {M-o r <window-id>}.  To swap the buffers between the same two windows,
  use {M-o m <window-id>.  See "(hyperbole)Keyboard Drags" for setup and
  use instructions.

- New Frame Commands: Any of these M-o commands that involve two windows
  can use a new frame as the target window by using a <window-id> of 'z'.
  So, {M-o t z} throws the current buffer to a new frame with a single
  window displaying that buffer.  The new frame will be the same size as
  the prior frame to match the behavior of HyControl.

- Integrated Ace Window commands with Smart Key Drags and added commands
  for use with the mouse that select Ace Window source and target windows
  by clicking with the mouse: 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.

- {M-o i <window-id>} is now for use only when on a listing item such as
  in Dired or Buffer Menu.  It no longer creates Hyperbole buttons in
  non-item areas to avoid confusion.  Now it will just trigger an error
  if not on a listing item.

SMART (ACTION AND ASSIST) KEYS

- MSWindows Paths: Hyperbole now recognizes typical MSWindows paths (both
  local and remote shares) and can convert an in-buffer path between POSIX
  and MSWindows formats multiple times, even paths involving mount points.
  See "DEMO#POSIX and MSWindows Paths".

  MSWindows paths may be used within links and implicit path
  buttons just like POSIX paths, whether running Emacs under a POSIX
  system or MSWindows.  If under POSIX, a remote MSWindows path must be
  accessed through a mount point to the network share.  Hyperbole caches
  such mount points when it is loaded.  Use {M-x
  hpath:cache-mswindows-mount-points RET} to update them if more mounts
  are made later.  See also the NEW COMMANDS section herein for how to
  convert a path between POSIX and MSWindows formats.

- GitLab and Github Links: Added Gitlab implicit links with equivalent
  functionality to those of Github.  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.  Improved Github implicit issue links: gh#gh-34
  and gh#issue/34 now properly reference an issue in the current project.

- Ripgrep: Added new ripgrep-msg implicit button type which jumps
  to the source referenced by ripgrep (rg) output.  By default,
  ripgrep outputs pathnames only once before all matching lines
  within that path.  Ripgrep may also be used with the Hyperbole
  `hypb:rgrep' command by setting 'hypb:rgrep-command'.  See
  "https://github.com/BurntSushi/ripgrep".

- Markdown Mode: Smart Keys now support Markdown internal file link
  references and navigation.

- Org Mode: When in an *Org Help* buffer, the Smart Keys now defer to
  org-mode to handle jumps to its own locations for compatibility.
  Similarly, in org-mode buffers when not on an org link or heading,
  and the {M-RET} Action Key is pressed, Hyperbole defers to Org's
  org-meta-return command.

- Drag-based Kill, Copy and Yank: Added support for dragging across
  frames.

- Python Identifiers: If a Jedi server is running and the Action Key is
  pressed on a Python identifier, Hyperbole will use Jedi to find the
  definition even within nested module references, e.g. a.b.c.  Also
  improved basic identifier definition finding.

- Company Mode Completion: Support for the Emacs company-mode completion
  package.  An Action Key press on a company-mode completion item will
  display the definition of that item and an Assist Key press will
  display its documentation, if any.

- Treemacs Mode: Now supports standard Hyperbole end-of-line proportional
  scrolling.

- ChangeLog Mode: Smart Keys now work on Emacs Lisp references in
  changelogs.

- Improved String Matching: For lines that begin with part of a string
  that started on another line, Hyperbole now presumes that point is
  within a string rather than between two strings, even though the
  delimiters on the line make this ambiguous.  This provides more
  accurate string recognition.

- Improved Path Matching: For quote delimited paths, other quote marks
  are excluded from matches, so if checking for a doubly quoted path,
  single quotes are not allowed in the string.

HYCONTROL

- Help Buffer Quitting: If HyControl is active, normally {q} quits
  it, but now if point is in an Emacs help buffer, {q} will quit
  from the help buffer instead.  Use {Q} to quit from HyControl
  unconditionally.

NEW COMMANDS

- Buffer Sliding:  Four new commands are available that can be
  bound to things like control arrow keys: hkey-buffer-move-left,
  hkey-buffer-move-right, hkey-buffer-move-down and
  hkey-buffer-move-up.  Each one slides the current buffer one
  window in the direction specified and all other buffers slide
  around to match.

- MSWindows and POSIX Path Toggling: In "hpath.el", added
  (hpath:substitute-posix-or-mswindows-at-point) and
  (hpath:substitute-posix-or-mswindows) commands to toggle the
  format of a path at point or in a string between POSIX and
  MSWindows styles.

PROGRAMMING

- Added hypb:map-plist, equivalent to mapcar but maps over
  key-value pairs in property lists (where the key and value are
  individual elements in the list).

- In "hui-select.el", added functions to return info. on the
  context-sensitive region that this library selects.
  (hui-select-get-region) returns the region that would be
  selected at point and (hui-select-get-region-boundaries)
  returns a cons of the start and end position of the same region.

- In "hpath.el (hpath:delimited-possible-path), added optional
  include-positions parameter which if non-nil, adds start and end
  positions to returned value.

- In "hversion.el", added (hyperb:wsl-os-p) flag to test whether
  Emacs is running under Microsoft Windows Subsystem for Linux (WSL)
  since the system-type variable does not reflect this.

DOCUMENTATION

- Popup Menus: Documented how to invoke the Koutliner and
  HyRolo popup menus in Emacs.  See "(hyperbole)Menu Commands".

- DEMO: Added sections:
    "DEMO#Gitlab (Remote) References"
    "DEMO#POSIX and MSWindows Paths"

- Updated Hyperbole Manual with new features.