* avy.el (avy-tree): Rename from `avy-read'.
(avy-tree): Replace LEAF with (cons 'leaf LEAF). This way, leafs are
much easier to distinguish - there's no need to know anything about LEAF
structure to distinguish it from an internal node.
(avy-traverse): New defun.
(avy-read): The function that calls `read-char'.
* ace-window.el (aw--lead-overlay): Change arglist.
(aw--make-leading-chars): Remove in favor of `avy-read'.
(aw-select): Use `avy-read'.
* avy-test.el (avy-tree): Update test.
* avy.el: Add sub-package for building a completion tree.
* avy-test.el: Add.
* Makefile: Add.
* ace-window.el (ace-jump-mode): Don't require.
(avy): Require.
(aw-leading-char-face): Update.
(aw-background-face): New defface.
(aw-list-visual-area): Rename to `aw-window-list'. It returns simple
windows now, instead of visual area structs.
(aw-overlays-lead): New defvar.
(aw-overlays-back): New defvar.
(ace-window-mode): Use own minor mode, instead of `ace-jump-mode'.
(aw--done): Update.
(aw--lead-overlay): New defun.
(aw--make-leading-chars): New defun.
(aw--remove-leading-chars): New defun.
(aw--make-backgrounds): New defun.
(aw-select): Simplify.
(ace-window): Update doc.
(aw-visual-area<): Rename to `aw-window<'. It deals with simple windows
now.
* ace-window.el (aw-leading-char-face): New face.
(aw-keys):
(aw-ignore-on):
(aw-background):
(aw-scope): No need for :group.
(aw-ignored-buffers): Add type.
(ace-window-end-hook): Remove deprecated var.
(ace-window-end-once-hook): Remove deprecated var.
(aw-select): Inline `ace-jump-populate-overlay-to-search-tree'.
Fixes#19.
Example of customization:
(custom-set-faces
'(aw-leading-char-face
((t (:inherit ace-jump-face-foreground :height 2.0)))))
You can customize interactively with "M-x" `customize-group'
`ace-window'.
* ace-window.el (ace-window-end-hook): Now obsolete.
(ace-window-end-once-hook): Now obsolete.
(aw--current-op): Remove.
(aw--doit): Take a function to call, once the window is selected, as the
first arg.
(ace-select-window): Update.
(ace-delete-window): Update.
(ace-swap-window): Update.
(ace-maximize-window): Update.
* ace-window.el (aw--callback-body): Remove.
(aw--callback): Remove.
(aw--doit): Do a `read-char' loop, in case there's more than one
level. Don't run the hooks any more - they're not necessary.
* ace-window.el (aw--callback-body): Move most of `aw-callback' here.
(aw--doit): Only pass the char to `aw--callback-body'.
(aw--done): Repurpose from `ace-jump-done'.
(ace-select-window): Use `read-char' instead of `set-transient-map'.
* ace-window.el (aw--doit): Need to remove `helm--maybe-update-keymap'
from `post-command-hook'. Otherwise, even if not in the helm
minibuffer, the helm transient map will override all bindings.
Fixes#15.
* ace-window.el (aw--doit): Use `set-transient-map' instead of `(setq
overriding-local-map)`, as it has more priority and `helm' is using
it. This will avoid the current conflict with helm.
Re #15.
* ace-window.el (aw--current-op): New var.
(aw--callback): New command, replaces "...-wrapper" from `aw-generic'.
(aw--doit): New function, replaces the other part of `aw-generic'.
(ace-select-window): Update.
(ace-delete-window): Update.
(ace-swap-window): Update.
(aw-switch-to-window): Now expects only an aj-data structure.
(aw-delete-window): Now expects only an aj-data structure. Will
`delete-frame' when there's only one window if frame.
(aw-swap-window): Now expects only an aj-data structure.
Up to now, the `aw-generic' macro was called inside the autoload file.
Now define empty functions that generate the autoload entry points,
then redefine them using the old mechanism.
Fixes#13.
* ace-window.el (aw-ignored-buffers): New custom variable. Set this to
a list of buffer names that are often around, but you don't want to
switch to them.
(aw-ignore-on): New custom variable. This value can be toggled with
M-0 `ace-window'.
(aw-ignored-p): New function.
(aw-list-visual-area): Don't return ignored windows.
(aw-generic): Add ignoring.
(ace-window): With 0 prefix argument, toggle `aw-ignore-on'.
Now the frame to which window belongs is the first key by which the
sorting is done. This means that the windows that belong to the same
frame will be numbered sequentially.
* ace-window.el (aw-offset): New function.
The issue with top left part of the window being after the newline,
i.e. it can't be written to without modifying the buffer, is fixed
by displaying the jump character on the next available line.
Fixes#11.
This is a minor fix to #11.
The issue is fixed for when the first visible character in window
is actually a character and not empty space.
The other situation still needs to be solved.
With two single-window frames, `next-window' was being called with
ALL-FRAMES as nil, resulting in the current window being returned
instead of the non-selected window. This commit sets the ALL-FRAMES
argument to 'visible' and modifies `aw-switch-to-window' to account for
the two-window case where POSITION may not be a window in the current
frame.
The only handler this commit modifies is `aw-switch-to-window' because
the behavior for `aw-delete-window' and `aw-swap-window' with multiple
frames doesn't seem to be well specified at this point.