Compare commits

..

144 Commits

Author SHA1 Message Date
Jeremy Bryant
933d1f36cc Checkdoc fixes
* avy.el (avy-keys-alist): command into quotes
(avy-styles-alist): command into quotes and indent
2024-11-01 13:57:13 +00:00
Brian Kavanagh
be612110cb fix(avy-next/prev): Allow avy-next/prev to handle non-cons candidates.
This commit fixes the `avy-last-candidates-cycle` / `avy-next`
/ `avy-pref` defun's so that they can handle candidates with non-cons
car elements (as are set up by `avy-goto-line`.)  Without this fix,
`avy-next` / `avy-prev` throw errors if the last `avy` commands was
`avy-goto-line`.
2023-04-20 14:04:09 +10:00
Javier Olaechea
d9634efe26 Fix byte-compile warning about linum-mode being possibly undefined
In end of data:
avy.el:1675:10: Warning: the function ‘linum-mode’ is not known to be defined.
2023-03-16 17:59:55 -05:00
Javier Olaechea
8576155193 Quote symbols in docstrings according to conventions
This silences the following warnings during byte-compilation:

avy.el:396:2: Warning: defvar `avy-command' docstring has wrong usage of
    unescaped single quotes (use \= or different quoting)

In avy--next-visible-point:
avy.el:935:2: Warning: docstring has wrong usage of unescaped single quotes
    (use \= or different quoting)

In avy--next-invisible-point:
avy.el:942:2: Warning: docstring has wrong usage of unescaped single quotes
    (use \= or different quoting)

This convention is documented in the Documentation Tips section of the Elisp manual

> • When a documentation string refers to a Lisp symbol, write it as it
>   would be printed (which usually means in lower case), with a grave
>   accent ‘`’ before and apostrophe ‘'’ after it.  There are two
>   exceptions: write ‘t’ and ‘nil’ without surrounding punctuation.

See:
- (info "(elisp)Documentaion Tips")
- https://www.gnu.org/software/emacs/manual/html_node/elisp/Documentation-Tips.html
2023-03-16 17:57:15 -05:00
David J. Rosenbaum
955c8dedd6 avy.el (avy--overlay): Avoid error on empty string
Fixes #351
Fixes #352
2022-09-10 21:36:08 +02:00
Oleh Krehel
6f9eefadc9 avy.el (avy-process): Assume avy-action-oneshot will be let-bound
Re #353
2022-09-10 20:57:38 +02:00
aragaer
fd7b02f556 Add avy-action-oneshot variable to redefine avy-action locally
Could be used this way:

```elisp
(let ((avy-action-oneshot #'push-button))
  (avy-goto-char-timer))
```
2022-08-25 22:32:59 +03:00
Stefan Kangas
ba5f035be3 Fix two byte-compiler warnings
Fixes #336
2022-01-02 09:05:07 +01:00
Stefan Kangas
6b53033883 Add GNU ELPA badge to README.md 2022-01-01 04:09:49 +01:00
lWarne
e92cb37457 avy.el (avy-transpose-lines-in-region): Add
Fixes #317
Fixes #310
2020-12-26 18:34:12 +01:00
Oleh Krehel
bbf1e7339e avy.el (avy-order-closest): Work with avy-goto-line
Fixes #307
2020-06-24 13:48:19 +02:00
Saulius Menkevičius
2dde8b71a0 avy.el (avy-process): Add autoload 2020-05-22 08:10:56 +03:00
Oleh Krehel
f34ff764aa avy.el (avy-escape-chars): Add defcustom
Re #249
2020-05-19 12:07:44 +02:00
Oleh Krehel
36a48baa2c avy.el (avy-goto-char-2): Allow backspace
Fixes #249
2020-05-19 08:59:08 +02:00
Oleh Krehel
acf553cae2 avy.el (avy--overlay-pre): Fix conflict with visual-line-mode 2020-05-19 08:58:53 +02:00
Oleh Krehel
509471bad0 avy.el (avy-text): Store the avy-goto-char-timer text
Fixes #303
2020-04-22 13:53:20 +02:00
Oleh Krehel
aa35412375 avy.el (avy--line-cands): Don't set temporary-goal-column
This was introduced when fixing `avy-goto-line' for the combination of
`org-indent-mode' and `visual-line-mode'. Tested that removing it does
not cause a regression.

Re #110
Fixes #302
2020-04-21 12:27:27 +02:00
Oleh Krehel
954774d6e9 avy.el (avy-action-yank-line): Add and bind to "Y" 2020-03-24 16:28:30 +01:00
Oleh Krehel
3bf83140fa avy.el (avy-goto-line): Can cancel with ESC
Fixes #299
2020-03-11 12:06:02 +01:00
Jonas Bernoulli
cf95ba9582 avy.el (avy-with): Fix typo in doc-string 2019-11-06 13:34:46 +01:00
Daniel H. Leidisch
f9c15c573c Fix subword commands with custom order. 2019-10-25 01:10:14 +02:00
Oleh Krehel
87394c9a88 avy.el (avy-isearch): Return relevant result
Fixes #281
2019-09-25 12:54:05 +02:00
Oleh Krehel
5f2eba5f59 avy.el (avy-isearch): Bind avy-case-fold-search to case-fold-search
Fixes #280
2019-09-25 12:50:48 +02:00
Oleh Krehel
455ebec6f3 avy.el (avy-process): Amend last commit for avy-goto-char-timer
Re #283
2019-09-25 12:42:34 +02:00
Federico Tedin
5127f993f9 avy.el (avy-process): Restart on fail for avy-style 'words
Fixes #283
2019-09-25 12:40:53 +02:00
Oleh Krehel
034de4c0e9 avy.el: Add -above and -below versions of avy-goto-whitespace-end
Re #278
2019-08-28 11:51:02 +02:00
Oleh Krehel
27d1af3fa6 avy.el (avy-goto-whitespace-end): New command
* avy.el (avy--regex-candidates): Allow `group' to be a function.
(avy-jump): Pass `group' to `avy--regex-candidates'.

Fixes #278
2019-08-27 20:07:10 +02:00
Oleh Krehel
01a311ca6a avy.el: Get rid of magic char numbers 2019-08-22 16:32:05 +02:00
Oleh Krehel
66886e265c avy.el (avy-read): Don't call `avy--key-to-char' too early
If the key is intended for dispatch, it's not necessary for
`avy--key-to-char' to encode it as a char.
2019-06-30 17:38:41 +02:00
Oleh Krehel
343fc42de1 avy.el (avy-process): Return nil on "C-g" and "ESC" 2019-06-30 17:26:34 +02:00
Oleh Krehel
9ae059deaa .github/FUNDING.yml: Add 2019-06-25 21:50:07 +02:00
Oleh Krehel
aadca9308a avy.el (avy-resume): Work better for avy-goto-timer
Fixes #277
2019-06-25 21:49:51 +02:00
Arte Ebrahimi
f91ae613a8 avy.el (avy-goto-line): Call avy-action-goto only when avy-action is not set
Fixes #274
2019-05-20 11:47:00 +02:00
Yanghao Xie
8686845ed9 avy.el (avy-flyspell-correct-function): Add
Fixes #273
2019-05-14 17:51:15 +02:00
Oleh Krehel
0e59474430 avy.el (avy--read-candidates): Fix docstring
Don't quote key bindings.
This patch was applied in GNU ELPA earlier.
2019-05-11 16:00:29 +02:00
Oleh Krehel
b408f76e3d doc/Changelog.org: quote issues 2019-05-11 15:10:59 +02:00
Oleh Krehel
f2cf43b537 doc/Changelog.org: Release 0.5.0
Fixes #271
2019-05-11 15:05:05 +02:00
Oleh Krehel
a7230906c4 avy.el (avy--overlay-at-full): More consistent face order
Fixes #270
2019-05-06 17:06:39 +02:00
Oleh Krehel
4d52b5cb7e avy.el (avy--line-cands): Allow "invisible" 'org-link
Fixes #269
2019-04-04 10:55:30 +02:00
Oleh Krehel
85b5d574cd avy.el (avy-jump): Add predicate argument
Fixes #267
2019-03-28 17:17:29 +01:00
Oleh Krehel
9a15d1f37b avy.el (avy-show-dispatch-help): Add and bind to "?"
Fixes abo-abo/ace-window#91
2019-03-25 11:46:40 +01:00
Oleh Krehel
152b07fe5a avy.el (avy-process): Return res 2019-03-25 11:46:40 +01:00
Oleh Krehel
fd0101e9e3 avy.el (avy-push-mark): Turn off message 2019-03-25 11:46:40 +01:00
Oleh Krehel
7d73ceeb74 avy.el: Use avy-process instead of avy--process
Re #266
2019-03-19 19:13:51 +01:00
Ivan Yonchovski
8db2759adf Change avy--process to accept cleanup function
Renamed to `avy-process' to indicate that it is used from another packages.

Fixes #255
Fixes #266
2019-03-19 19:11:15 +01:00
Oleh Krehel
e80251056d avy.el (avy-jump): New API, don't use avy--generic-jump
Fixes #265
2019-02-04 13:01:07 +01:00
Oleh Krehel
91240220ad avy.el (avy--generic-jump): Update docstring about removed arg 2019-01-26 21:29:12 +01:00
Oleh Krehel
b19a23af27 avy.el (avy--visible-p): buffer-invisibility-spec can be t
In that case, according to the doc if (get-char-property s 'invisible)
is non-nil, it's invisible.

Fixes #264
Re #261
2019-01-22 15:20:20 +01:00
Oleh Krehel
5b3676f1a4 avy.el (avy-next): New command to go to the next candidate after avy-read
Example config:

    (defhydra hydra-avy-cycle ()
      ("j" avy-next "next")
      ("k" avy-prev "prev")
      ("q" nil "quit"))

    (global-set-key (kbd "C-M-'") 'hydra-avy-cycle/body)

After e.g. `avy-goto-char' or `avy-goto-char-timer', use the above
hydra to cycle between the last candidates.

Fixes #254
2019-01-22 12:59:26 +01:00
Oleh Krehel
74501e1235 avy.el: More fixes to org-toggle-link-display
Fix `avy-goto-subword-0', `avy-goto-subword-1', `avy-goto-char-timer'.

Re #261
2019-01-21 17:44:22 +01:00
duianto
118a3d616e
Update readme.md: add melpa badges
This makes it easy to see the current version from the main repository page.
2019-01-18 15:49:29 +01:00
Oleh Krehel
e9f4d85b88 avy.el (avy-goto-char-timer): Obey avy-background for initial search
Fixes #259
2019-01-17 17:47:18 +01:00
Oleh Krehel
002b8f3451 avy.el (avy--visible-p): Add to fix org-toggle-link-display
Fixes #261
2019-01-17 17:39:01 +01:00
Oleh Krehel
909483e104 avy.el (avy--process): Make `overlay-fn' arg optional 2019-01-15 15:25:30 +01:00
Oleh Krehel
16482e0012 avy.el (avy--generic-jump): Remove `style' arg 2019-01-15 15:19:30 +01:00
Oleh Krehel
e7c0fc046d avy.el (avy-pre-action): New defvar
Fixes #260
2019-01-15 15:14:10 +01:00
whatacold
24b51374be Ignore mistyping when no candidates available
Fixes #256
2018-11-26 18:05:03 +01:00
Oleh Krehel
4f1b8a17d8 avy.el: Fix compiler warnings
Re #258
2018-11-26 18:01:40 +01:00
Adam Porter
bcc0cb0891 avy.el (avy-org-refile-as-child): Don't refile when avy aborted
And ensure refiled heading is visible by calling org-reveal in the
after-refile hook.

When the avy session is aborted with C-g, avy--generic-jump returns
t.  Now we detect that and do not attempt to refile.

Fixes #258
2018-11-26 18:01:30 +01:00
Jiangbin Zhao
df4c4ac488 Show number of matches so far in prompt
Fixes #253
2018-10-09 18:48:31 +02:00
Jiangbin Zhao
c2e2a4a3f2 avy.el (avy--read-candidates): Custom keys for deleting last read char
Add a defcustom for list of events that delete last read char, with
the default being '(8 127) which represents C-h and DEL.

Fixes #251
2018-10-01 10:37:01 +02:00
Yuki
abe150c7bd Introduce single candidate jump customization 2018-09-27 18:08:28 +02:00
Oleh Krehel
cd8fb10759 avy.el (avy--read-candidates): Quit on ESC
Fixes #249
2018-09-13 20:19:19 +02:00
Felipe
a29558d22c Add C-h/DEL/RET info to README for avy-goto-char-timer
Fixes #245
2018-08-31 14:02:24 +02:00
Oleh Krehel
157486aeb1 avy.el: Fix compiler warning 2018-08-14 23:21:25 +02:00
Lane Spangler
fd7b929719 Add option to display an indented goto line overlay
It may be useful to display the overlay for `avy-goto-line` next to the first
non whitespace character on each line so that your eyes do not have to look
across from the code on the line to the left edge of the buffer.

This commit adds a defcustom for `avy-indent-line-overlay` which enables this
new behavior when non nil.
2018-08-13 15:55:01 -04:00
Oleh Krehel
c4e2d50d6d avy.el: avy-goto-char will now display shortest overlays for cands near point
Fixes #242
2018-08-08 17:48:18 +02:00
chm
1de623383e Add avy-goto-end-of-line
Fixes #240
2018-08-06 10:55:56 +02:00
Oleh Krehel
7c40f5e381 avy.el (avy--process): Fix the candidates list being modified when restarting
For example, with multiple windows, `avy-goto-char' followed by "x"
would change the overlays to a subset of the overlays in the current window.
2018-06-15 17:01:33 +02:00
Sebastian Wålinder
7cfe11e3c1 Added ability to display avy candidates from bottom to top
And made scope limitation possible with avy-goto-line-above and below.

Fixes #236
2018-06-12 11:12:13 +02:00
Oleh Krehel
70e384aee5 avy.el (avy--process-1): Extract 2018-06-07 18:17:53 +02:00
Oleh Krehel
8606a8984b avy.el (avy--process): Remove redundant copy-sequence
Hopefully redundant:)
2018-06-07 18:14:38 +02:00
Oleh Krehel
6331b7a6de avy.el (avy--process): Fix avy-goto-line for empty buffer
Fixes #238
2018-06-07 18:11:56 +02:00
Oleh Krehel
58e8636d32 avy.el (avy-action-zap-to-char): More convenient use-cases
Use case 1:

Start (cursor is |):

    This is my sentence and |there is some description

avy-goto-char "d" in description, action "z" results in:

    This is my sentence and |description

Use case 2:

Same start;

avy-goto-char "t" in "This", action "z" results in:

    |there is some description

The nice thing is that the both sequences are reversible with "C-y".

Fixes #234.
2018-05-14 20:00:23 +02:00
walseb
08370cdbc3 Add option to limit avy-goto-subword-0 scope
Fixes #235
2018-04-15 21:59:21 +02:00
Oleh Krehel
2d613eb050 avy.el (avy-action-zap-to-char): Add and bind to "z"
Fixes #234
2018-03-22 21:33:23 +01:00
Oleh Krehel
34d3531a3c avy.el (avy-action-goto): Remove lag 2017-12-30 11:20:36 +01:00
Oleh Krehel
93d4bd2c67 avy.el: Fix indentation 2017-12-30 11:20:36 +01:00
Oleh Krehel
6459f7f12a README.md: Mention avy-resume
Re abo-abo/swiper#1383
2017-12-24 16:30:41 +01:00
Bob Weiner
869261ae81 Display actual character that triggered an error
Fixes #227
2017-12-11 18:23:22 +01:00
Bob Weiner
d4aa876154 Note that change to store full avy path is for external packages 2017-12-11 18:17:48 +01:00
Bob Weiner
9489ca9064 Add window selection via mouse button press and fix typo 2017-12-11 18:17:48 +01:00
Oleh Krehel
793a5e22a7 avy.el (avy-action-teleport): Add save-excursion 2017-12-11 17:19:52 +01:00
Edward Betts
631214d11c Correct spelling mistake
Fixes #218
2017-12-11 17:19:01 +01:00
Oleh Krehel
7f83bbc645 avy.el (avy-action-ispell): Adjust for avy-goto-line
Fixes #191
2017-12-10 20:06:35 +01:00
Oleh Krehel
78392e670e avy.el (avy-action-teleport): Adjust for avy-goto-line
Re #191
2017-12-10 20:06:34 +01:00
Oleh Krehel
a25b255b25 avy.el (avy-action-yank): Adjust for avy-goto-line
Re #191
2017-12-10 20:06:33 +01:00
Oleh Krehel
dee0284f3f avy.el (avy-action-kill-move): Adjust for avy-goto-line
Re #191
2017-12-10 20:06:32 +01:00
Oleh Krehel
1b9f061d27 avy.el (avy-action-kill-stay): Adjust for avy-goto-line
Re #191
2017-12-10 20:06:32 +01:00
Oleh Krehel
56f6590c20 avy.el (avy-action-copy): Adjust for avy-goto-line
Re #191
2017-12-10 20:06:30 +01:00
Oleh Krehel
4af1993290 avy.el (avy-read): Update avy-current-path before returning
Re #226
2017-12-10 09:44:23 +01:00
Oleh Krehel
ddf3c580e7 avy.el (avy-handler-default): Fix typo 2017-12-09 17:28:52 +01:00
Oleh Krehel
176f34f491 avy.el (avy-handler-default): Error msg on mouse clicks
Re #226
2017-12-09 14:01:56 +01:00
Bob Weiner
a0ce6a7558 Add avy-mouse-event-window and fix typo
Fixes #226
2017-12-09 14:01:50 +01:00
Nir Friedman
c08fc7c1c6 Add option to match newline in avy-goto-char-timer
Fixes #220
Fixes #225
2017-11-26 18:15:18 +02:00
Christoph Michelbach
9103291214 Update description to be easier to understand. 2017-11-11 18:21:46 +01:00
Jonas Bernoulli
36f768d9e3 avy.el (avy-words): Specify custom type
Fixes #219
2017-10-14 09:20:04 +02:00
Oleh Krehel
245b5d62fe avy.el: Fix compile warnings
Re #214
2017-08-19 19:39:36 +02:00
Oleh Krehel
8556274978 avy.el (avy-org-goto-heading-timer): Simplify
Re #214
2017-08-13 11:54:44 +02:00
Adam Porter
f4c45d329a avy.el: Add org-mode commands for jumping to and refiling headings
* (avy-org-refile-as-child): Refile current heading to a heading
  selected with Avy.
* (avy-org-goto-heading-timer): Jump to a heading selected with Avy.
  Like avy-goto-char-timer, but for Org headings.
* (avy--read-string-with-timeout): Read a string from the minibuffer
  with a timeout.  Basically factored out of avy-goto-char-timer.
2017-08-12 15:47:07 -05:00
fabacino
0ed6408f18 avy.el: Fix checkdoc warnings
Fixes #212
2017-08-04 20:35:40 +02:00
fabacino
49b070d7da avy-test.el: Fix checkdoc warnings 2017-08-04 20:35:04 +02:00
fabacino
240d717632 Makefile: Add target checkdoc to check documentation guidelines of lisp files
Fixes #211
2017-08-04 20:34:06 +02:00
fabacino
83859c30fa avy.el: Add new avy-style to use words as sequences 2017-08-04 11:05:02 +02:00
Oleh Krehel
228ed97d07 avy.el (avy-action-teleport): Add and bind to "t"
Fixes #207
2017-07-02 11:37:00 +02:00
ketanaka
f2bedeeb58 Allow "C-h" to delete for avy-goto-char-timer
Fixes #193
2017-04-11 15:08:36 +02:00
Oleh Krehel
105efc8482 avy.el (avy-action-copy): Copy line for avy-goto-line
* avy.el (avy-command): New defvar.
(avy-with): Actions can now access the symbol from `avy-with' using
`avy-command'.
(avy-action-copy): Copy line for `avy-goto-line'. Copy sexp for all
other commands.

Fixes #191
2017-04-07 10:11:17 +02:00
Oleh Krehel
54bce2cfb0 avy.el (avy-move-region): Update
Fixes #188
2017-04-02 21:14:29 +02:00
Oleh Krehel
3980c03f6c avy.el (avy-move-region): Insert in original window
Fixes #187
2017-04-02 10:12:22 +02:00
Oleh Krehel
0c30cdba9e avy.el (avy-action-yank): Add and bind to "y"
Fixes #183
2017-03-26 20:57:33 +02:00
Peter Nguyen
d609eb98bd Add avy-goto-word-0-below and avy-goto-word-0-above
These commands limit the scope of avy-goto-word-0 to above or below the
point thus save the number of keys required to jump to a certain word

Fixes #186
2017-03-25 16:45:14 +01:00
Oleh Krehel
b8d7163915 avy.el (avy-action-goto): Add raise-frame 2017-02-08 10:48:22 +01:00
Oleh Krehel
c911850a45 avy.el (avy--overlay-at-full): Fix for visual-line-mode
`end-of-visual-line' is bugged somehow:

This code sometimes produces (point) < beg:

    (goto-char beg)
    (save-excursion
      (end-of-visual-line)
      (point))

which should never happen.

Re #179
2017-02-08 10:46:06 +01:00
Oleh Krehel
0f5e99b5e9 avy.el: Use next-char-property-change, not next-overlay-change
* avy.el (avy--next-visible-point):
(avy--next-invisible-point): Update.

Fixes #168
2016-08-14 11:50:36 +02:00
Oleh Krehel
a9119039ee avy.el (avy-goto-word-1): Work for "^A"-"^Z"
Fixes #167
2016-08-03 15:36:25 +02:00
Oleh Krehel
a5fb9369e7 avy.el (avy-resume): Make it show up in M-x
Re #165
2016-07-22 14:12:45 +02:00
Oleh Krehel
dd112c88e2 avy.el (avy-goto-subword-1): Check char-after
When at `point-max', `char-after' returns nil. This can't be passed to `downcase'.

Fixes #163
2016-07-11 17:58:26 +02:00
Xu Ma
07153e4fb7 Add kill and save region functionality.
Fixes #158
2016-07-10 09:41:13 +02:00
Oleh Krehel
e460d7ebe8 avy.el (flyspell-correct-word-before-point): Declare 2016-07-08 09:59:20 +02:00
MadAnd
20ecb9bed6 Use flyspell if its minor mode is active
Fixes #160
Fixes #161
2016-07-03 08:17:34 +02:00
justbur
b522bfe320 avy.el (avy-resume): Add
Holds last command avy command after user input. This is a quick way to
bring back the same markers after a jump.

Fixes #157
2016-06-20 21:40:05 +02:00
Oleh Krehel
05a5003c2b avy.el: Fix linum-related compile warnings 2016-06-18 08:22:14 +02:00
justbur
5515f28779 Allow using symbols instead of words in word cmds
* avy.el (avy-goto-word-0-regexp): Add symbol option
 * avy.el (avy-goto-word-1): Add symbol boundary optional arg
 * avy.el (avy-goto-symbol-1): Add
 * avy.el (avy-goto-symbol-1-above): Add
 * avy.el (avy-goto-symbol-1-below): Add
2016-06-17 20:16:08 -04:00
Oleh Krehel
4e4c488eef Add avy-linum-mode
* avy.el (avy--linum-strings): New defun.
(avy--linum-update-window): New defun. This is a copy-paste of
`linum-update-window' with just a few lines added.
(avy-linum-mode): New minor mode. Currently, only works with
`avy-all-windows' set to nil.
(avy--line): When `avy-linum-mode' is on, don't display
overlays. Instead, display a simple message.

Fixes #155
2016-06-13 22:53:06 +02:00
Oleh Krehel
430d75085f avy.el (avy--line-cands): Split away from avy--line
* avy.el (avy--line): Update.
2016-06-13 22:31:39 +02:00
Oleh Krehel
4dcf0a9a9a avy.el (avy-goto-char-2): Translate "RET" to "C-j"
Fixes #153
2016-06-01 07:58:16 +02:00
justbur
33af738ae7 avy.el (avy-goto-word-1-above): Add
avy.el (avy-goto-word-1-below): Add
2016-05-19 08:36:18 -04:00
Oleh Krehel
d644be1399 avy.el (avy-goto-char-2-above): Simplify
* avy.el (avy-goto-char-2): Add BEG and END.
(avy-goto-char-2-below): Simplify.
2016-05-18 08:39:11 +02:00
justbur
ba950a0ad5 avy.el (avy-goto-char-2-above): Add
avy.el (avy-goto-char-2-below): Add

These are versions of avy-goto-char-2 that are restricted to matches
before or after the point in the current window.

Fixes #148
2016-05-17 12:52:35 -04:00
Mark Triggs
58bc417c55 Escape regex metacharacters for standard isearch
Doing an isearch for '[' and then invoking avy-isearch would trigger an
error like:

     Invalid regexp: "Unmatched [ or [^"

If we are not doing a regex-based search, escape the search string to
avoid these kind of issues.
2016-05-15 15:15:51 +10:00
York Zhao
2e3c2f7c88 Add new command `avy-move-region'
Fixes #75
2016-05-13 07:52:33 +02:00
Junpeng Qiu
85a384a151 Add char at window start for avy-goto-subword-0 2016-05-03 22:01:06 -04:00
Oleh Krehel
53706d2ebf avy.el (avy-all-windows-alt): Change the default to nil
Fixes #144
2016-04-21 10:24:59 +02:00
Oleh Krehel
4c072be8e6 README.md (avy-goto-char-timer): Add entry
Re #143
2016-04-18 14:39:32 +02:00
Oleh Krehel
5ba3602538 Assign avy-action-ispell to "i"
Re #142
2016-04-14 13:15:00 +02:00
Emmanuel Denloye-Ito
c0db3642d6 Add avy-action-ispell to avy.el
The point should return to its starting location after the desired word
is corrected. As is the case for the other avy-action-{something}
functions, this function is also added to the avy-dispatch-alist.

Fixes #142
2016-04-14 13:12:26 +02:00
Oleh Krehel
a80f95c015 Add "X" dispatch to kill a word without moving there
* avy.el (avy-dispatch-alist): Extend.
(avy-action-kill-move): Rename from `avy-action-kill'.
(avy-action-kill-stay): New defun.

To kill a word without moving there:

1. `avy-goto-word-1' or `avy-goto-char'.
2. word's letter.
3. X.
4. words' overlay chars.
2016-04-02 19:49:10 +02:00
Oleh Krehel
9e61f786d8 avy.el: Improve defcustom :type
* avy.el (avy-keys-alist):
(avy-styles-alist): Add 'function as a possible key-type.
2016-03-26 09:46:03 +01:00
Oleh Krehel
3b75d9520d Make "C-g" and "ESC" fail silently when reading char
* avy.el (avy-ignored-modes): Add type.
(avy-handler-default): Silence "C-g" and "ESC".
(avy-goto-line): Call `avy-handler-function' instead of
`avy-handler-default'.
(avy-timeout-seconds): Add type.

Fixes #137
2016-03-16 13:48:29 +01:00
Oleh Krehel
5f76c9d16e avy.el (avy-goto-word-0-regexp): New defcustom
* avy.el (avy-goto-word-0): Use `avy-goto-word-0-regexp'.

Fixes #136
2016-02-29 09:33:07 +01:00
Oleh Krehel
16370f92ec avy.el (avy--goto): Remove obsolete alias
* avy.el (avy--with-avy-keys): Remove obsolete.

Also clean up whitespace - too long lines and wrong indentation.
2016-02-26 20:54:14 +01:00
Oleh Krehel
730581ae87 avy.el: Fix compilation warning
Fixes #134
2016-02-03 08:57:25 +01:00
Oleh Krehel
5f6dd00f5d avy.el (avy-action-copy): Save window and frame
Fixes #133
2016-01-27 09:22:03 +01:00
Oleh Krehel
11fbd70347 Bump version 2016-01-23 14:34:14 +01:00
8 changed files with 1502 additions and 274 deletions

2
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,2 @@
liberapay: abo-abo
patreon: abo_abo

View File

@ -3,13 +3,16 @@ emacs ?= emacs
LOAD = -l avy.el -l avy-test.el
.PHONY: all test clean
.PHONY: all test clean checkdoc
all: compile test
all: compile test checkdoc
test:
$(emacs) -batch $(LOAD) -f ert-run-tests-batch-and-exit
checkdoc:
$(emacs) -batch -l targets/checkdoc.el
compile:
$(emacs) -batch -l targets/avy-init.el

View File

@ -1,3 +1,7 @@
[![GNU ELPA](https://elpa.gnu.org/packages/avy.svg)](https://elpa.gnu.org/packages/avy.html)
[![MELPA](https://melpa.org/packages/avy-badge.svg)](https://melpa.org/#/avy)
[![MELPA Stable](https://stable.melpa.org/packages/avy-badge.svg)](https://stable.melpa.org/#/avy)
## Introduction
`avy` is a GNU Emacs package for jumping to visible text using a char-based decision tree. See also [ace-jump-mode](https://github.com/winterTTr/ace-jump-mode) and [vim-easymotion](https://github.com/Lokaltog/vim-easymotion) - `avy` uses the same idea.
@ -34,6 +38,13 @@ After <kbd>C-' bu</kbd>:
![avy-goto-char-2](http://oremacs.com/download/avi-goto-char-2.png)
### `avy-goto-char-timer`
> Input an arbitrary amount of consecutive chars, jump to the first one with a tree.
This is a more flexible version of `avy-goto-char-2`. First part works similarly to `isearch`: you type a query and it's highlighted dynamically on the screen. When you stop typing for `avy-timeout-seconds` (0.5s by default), you'll be able to select one of the candidates with `avy`. As you're inputting characters, you can use `C-h` (backspace) or `DEL` (delete) to
forget the last typed character and `RET` to end the input sequence immediately and select a candidate.
### `avy-goto-line`
> Input zero chars, jump to a line start with a tree.
@ -74,6 +85,10 @@ After <kbd>M-g e</kbd>:
![avy-goto-word-0](http://oremacs.com/download/avi-goto-word-0.png)
### Org-mode commands
* `avy-org-goto-heading-timer`: Type part of an Org heading. When you stop typing, if only one heading on the screen matches, it will be jumped to; if more than one matches, you can jump to a heading with Avy. This is like `avy-goto-char-timer` but for Org headings.
* `avy-org-refile-as-child`: With point in an entry you want to refile, run this command, select a heading with Avy, and the entry will be refiled as its first child heading. This makes it quick and easy to refile to headings that are visible on-screen, even to other windows or buffers.
### Other commands
@ -85,6 +100,7 @@ You add this to your config to bind some stuff:
```elisp
(avy-setup-default)
(global-set-key (kbd "C-c C-j") 'avy-resume)
```
It will bind, for example, `avy-isearch` to <kbd>C-'</kbd> in `isearch-mode-map`, so that you can select one of the currently visible `isearch` candidates using `avy`.
@ -107,6 +123,6 @@ The copyright assignment isn't a big deal, it just says that the copyright for y
The basic code style guide is to use `(setq indent-tabs-mode nil)`. It is provided for you in [.dir-locals.el](https://github.com/abo-abo/avy/blob/master/.dir-locals.el), please obey it.
Before submitting the change, run `make compile` and `make test` to make sure that it doesn't introduce new compile warnings or test failures. Also run <kbd>M-x</kbd> `checkdoc` to see that your changes obey the documentation guidelines.
Before submitting the change, run `make compile` and `make test` to make sure that it doesn't introduce new compile warnings or test failures. Also run `make checkdoc` to see that your changes obey the documentation guidelines.
Use your own judgment for the commit messages, I recommend a verbose style using `magit-commit-add-log`.

View File

@ -66,3 +66,7 @@
(108 (97 leaf . 8)
(115 leaf . 9)
(100 leaf . 10))))))
(provide 'avy-test)
;;; avy-test.el ends here

1326
avy.el

File diff suppressed because it is too large Load Diff

View File

@ -141,7 +141,7 @@ Pros and cons of =de-bruijn= over other styles:
clumped up chars, which is truncated for other styles
- a con is that the decision path is of the same length (e.g. 2 or 3)
for all candidates, while with other styles it's possible to have a
few candidets with a shorter path.
few candidates with a shorter path.
See [[https://github.com/abo-abo/avy/issues/51][#51]] and [[https://github.com/abo-abo/avy/issues/5][#5]].
@ -205,7 +205,294 @@ Use this to restore the previous default behavior:
#+begin_src elisp
(setq avy-style 'pre)
#+end_src
* trunk
* 0.4.0
** Fixes
*** =avy-goto-char-timer= obeys =avy-styles-alist=
See [[https://github.com/abo-abo/avy/issues/67][#67]].
*** Add =de-bruijn= to the defcustom of =avy-styles-alist=
See [[https://github.com/abo-abo/avy/issues/73][#73]].
*** Respect the current input method for target chars
See [[https://github.com/abo-abo/avy/issues/76][#76]].
*** =avy-goto-subword-0= shouldn't offer invisible chars
See [[https://github.com/abo-abo/avy/issues/90][#90]].
*** Better =case-fold-search= handling
See [[https://github.com/abo-abo/avy/issues/87][#87]].
*** Add misc punctuation to subword commands
See [[https://github.com/abo-abo/avy/issues/93][#93]].
*** Add padding for wide-width chars (ex. Japanese and Chinese)
See [[https://github.com/abo-abo/avy/issues/96][#96]].
*** =avy-goto-line=
**** Push mark for numeric line
See [[https://github.com/abo-abo/avy/issues/74][#74]].
**** Allow numeric prefix arg
The old behavior remains for ARG 1 or 4. For all other ARG, simply go
to that line.
See [[https://github.com/abo-abo/avy/issues/86][#86]].
**** Work for =visual-line-mode=
See [[https://github.com/abo-abo/avy/issues/91][#91]].
**** Don't error on end of buffer
See [[https://github.com/abo-abo/avy/issues/91][#91]].
**** Obey =avy-background=
See [[https://github.com/abo-abo/avy/issues/94][#94]].
**** Fix for narrowed regions
See [[https://github.com/abo-abo/avy/issues/122][#122]], [[https://github.com/abo-abo/avy/issues/123][#123]].
**** Don't modify =avy-action=
See [[https://github.com/abo-abo/avy/issues/124][#124]].
*** =avy-goto-char-timer=
**** May read as many chars as you want
See [[https://github.com/abo-abo/avy/issues/97][#97]].
**** Highlight matches while reading chars
See [[https://github.com/abo-abo/avy/issues/98][#98]].
**** Highlight depending on =avy-all-windows=
See [[https://github.com/abo-abo/avy/issues/104][#104]].
**** Make faster for =org-mode=
See [[https://github.com/abo-abo/avy/issues/100][#100]].
**** Add case fold search
See [[https://github.com/abo-abo/avy/issues/128][#128]].
*** =avy-copy-region=
**** Keep the same selectors for the second pass
See [[https://github.com/abo-abo/avy/issues/120][#120]], [[https://github.com/abo-abo/avy/issues/121][#121]].
**** Copy/move to initial window
See [[https://github.com/abo-abo/avy/issues/131][#131]].
*** Search only in the visible region
See [[https://github.com/abo-abo/avy/issues/108][#108]], [[https://github.com/abo-abo/avy/issues/109][#109]].
*** Fix jumping to the last char of a folded Org outline
See [[https://github.com/abo-abo/avy/issues/108][#108]].
*** Fix for both =org-indent-mode= and =visual-line-mode=
See [[https://github.com/abo-abo/avy/issues/110][#110]].
*** Beep when there are no matches
See [[https://github.com/abo-abo/avy/issues/111][#111]].
*** Simplify overlay code
Most functions reuse =avy--overlay= now.
*** Fix de-bruijn "no catch for tag"
See [[https://github.com/abo-abo/avy/issues/116][#116]].
*** Fix overlays at =point-max=
See [[https://github.com/abo-abo/avy/issues/125][#125]].
*** Improve =case-fold-search= condition
See [[https://github.com/abo-abo/avy/issues/126][#126]].
*** Don't shorten selector string for =visual-line-mode= and =bolp=
See [[https://github.com/abo-abo/avy/issues/129][#129]].
*** Fix interaction with =goto-address-mode=
** New Features
*** Allow non-printing keys in =avy-keys=
Now you can set avy-keys also to the arrow keys and page up/down, e.g.
#+begin_src elisp
(setq avy-keys '(left right up down prior next))
#+end_src
and those will be displayed as ▲, ▼, ◀, ▶, △, ▽ in the overlays. The
display is controlled by the variable =avy-key-to-char-alist=.
See [[https://github.com/abo-abo/avy/issues/77][#77]].
*** Allow to switch action midway from goto to kill/mark/copy
For example, suppose you have:
#+begin_src elisp
(global-set-key (kbd "M-t") 'avy-goto-word-1)
#+end_src
- To jump to a certain word starting with "w" (e.g. first one on
screen): ~M-t w a~
- To copy the word instead of jumping to it: ~M-t w na~.
- To mark the word after jumping to it: ~M-t w ma~.
- To kill the word after jumping to it: ~M-t w xa~.
You can customize =avy-dispatch-alist= to modify these actions.
See [[https://github.com/abo-abo/avy/issues/78][#78]].
*** New command =avy-pop-mark=
Goes back to the last location of =push-mark=:
- has its own history,
- handles multiple frames.
See [[https://github.com/abo-abo/avy/issues/81][#81]] [[https://github.com/abo-abo/avy/issues/88][#88]] [[https://github.com/abo-abo/avy/issues/69][#69]].
*** New commands =avy-goto-line-above= and =avy-goto-line-below=
See [[https://github.com/abo-abo/avy/issues/106][#106]].
*** New defcustom =avy-line-insert-style=
Allows to modify the behavior of =avy-copy-line=, =avy-move-line=, and =avy-copy-region=.
See [[https://github.com/abo-abo/avy/issues/117][#117]].
*** New defcustom =avy-all-windows-alt=
Allows to customize the behavior of =universal-argument= modifying
=avy-all-windows=.
See [[https://github.com/abo-abo/avy/issues/118][#118]].
*** New defcustom =avy-subword-extra-word-chars=
Allows to customize the behavior of =avy-goto-subword-0= and
=avy-goto-subword-1= by adding extra chars that should match as word
constituents.
See [[https://github.com/abo-abo/avy/issues/116][#116]].
* 0.5.0
** Fixes
*** el:avy-action-copy
Save selected window and frame. See [[https://github.com/abo-abo/avy/issues/133][#133]].
Copy line for el:avy-goto-line. See [[https://github.com/abo-abo/avy/issues/191][#191]].
*** el:avy-read
Make ~C-g~ and ~ESC~ fail silently when reading char. See [[https://github.com/abo-abo/avy/issues/137][#137]].
Display error message on mouse clicks. See [[https://github.com/abo-abo/avy/issues/226][#226]].
Update el:avy-current-path before returning. See [[https://github.com/abo-abo/avy/issues/226][#226]].
Quit on ~ESC~. See [[https://github.com/abo-abo/avy/issues/249][#249]].
Fix for el:org-toggle-link-display. See [[https://github.com/abo-abo/avy/issues/261][#261]].
Fix for el:buffer-invisibility-spec being t. See [[https://github.com/abo-abo/avy/issues/264][#264]].
Allow "invisible" 'org-link. See [[https://github.com/abo-abo/avy/issues/269][#269]].
*** el:avy-goto-word-1
Works for "^A"-"^Z", see [[https://github.com/abo-abo/avy/issues/167][#167]].
*** el:avy-goto-subword-0
Add char at window start if empty, See [[https://github.com/abo-abo/avy/issues/145][#145]].
Add option to limit scope. See [[https://github.com/abo-abo/avy/issues/235][#235]].
*** el:avy-goto-subword-1
Check el:char-after. See [[https://github.com/abo-abo/avy/issues/163][#163]].
*** el:avy-isearch
Escape regex. See [[https://github.com/abo-abo/avy/issues/147][#147]].
*** el:avy-goto-char-2
Translate ~RET~ to ~C-j~. See [[https://github.com/abo-abo/avy/issues/153][#153]].
*** el:avy-action-goto
Add el:raise-frame.
*** el:avy-goto-char-timer
Allow ~C-h~ to delete. See [[https://github.com/abo-abo/avy/issues/193][#193]].
Obey el:avy-background for the initial search. See [[https://github.com/abo-abo/avy/issues/259][#259]].
*** el:avy-goto-line
Fix for empty buffer. See [[https://github.com/abo-abo/avy/issues/238][#238]].
Add ability to display candidates from bottom to top. See [[https://github.com/abo-abo/avy/issues/236][#236]].
*** el:avy--overlay-at-full
More consistent face order.
See [[https://github.com/abo-abo/avy/issues/270][#270]].
*** documentation
See [[https://github.com/abo-abo/avy/issues/223][#223]], [[https://github.com/abo-abo/avy/issues/226][#226]], [[https://github.com/abo-abo/avy/issues/218][#218]], [[https://github.com/abo-abo/avy/issues/245][#245]], [[https://github.com/abo-abo/avy/issues/262][#262]].
** New Features
*** API
New functions have been added as drop-in replacements of double-dash (private) avy
functions that were used in other packages and configs. Please replace the references to
the obsolete functions.
**** el:avy-jump
New API function to replace el:avy--generic-jump. See [[https://github.com/abo-abo/avy/issues/265][#265]], [[https://github.com/abo-abo/avy/issues/267][#267]].
**** el:avy-process
New API function to replace el:avy--process. See [[https://github.com/abo-abo/avy/issues/266][#266]].
*** New actions
**** el:avy-action-kill-stay
Kill a word with el:avy-goto-char without moving there.
Bound to ~X~.
**** el:avy-action-ispell
Auto-correct word at point. See [[https://github.com/abo-abo/avy/issues/142][#142]], [[https://github.com/abo-abo/avy/issues/160][#160]], [[https://github.com/abo-abo/avy/issues/161][#161]].
Bound to ~i~.
**** el:avy-action-yank
Yank sexp starting at selected point at the current point. See [[https://github.com/abo-abo/avy/issues/183][#183]].
Bound to ~y~.
**** el:avy-action-teleport
Kill sexp starting on selected point and yank into the current location. See [[https://github.com/abo-abo/avy/issues/207][#207]].
Bound to ~t~.
**** el:avy-action-zap-to-char
Kill from point up to selected point. See [[https://github.com/abo-abo/avy/issues/234][#234]].
Bound to ~z~.
*** New defcustoms
**** New el:avy-style setting: 'words
Use this setting:
#+begin_src elisp
(setq avy-style 'words)
#+end_src
And you'll see overlays like "by", "if", "is", "it", "my" for 2-letter sequences, and
"can", "car", "cog" for 3-letter sequences. You might find them easier to type than "hla",
"lls" and "jhl". But you will have to adjust your el:avy-dispatch-alist, e.g. to use only
upper case characters.
See [[https://github.com/abo-abo/avy/issues/210][#210]], [[https://github.com/abo-abo/avy/issues/219][#219]].
**** el:avy-orders-alist
Use it to customize the order of candidates with relation to point. The default is for
el:avy-goto-char to have the shortest overlay for candidates closest to point.
See [[https://github.com/abo-abo/avy/issues/242][#242]].
**** el:avy-indent-line-overlay
When non-nil el:avy-goto-line will display the line overlay next to the first
non-whitespace character of each line. See [[https://github.com/abo-abo/avy/issues/244][#244]].
**** el:avy-single-candidate-jump
When non-nil, and there is only one candidate, jump there. See [[https://github.com/abo-abo/avy/issues/250][#250]].
**** el:avy-del-last-char-by
Customize keys which delete the last read char. The defaults are ~C-h~ and ~DEL~. See [[https://github.com/abo-abo/avy/issues/251][#251]].
**** el:avy-goto-word-0-regexp
Customize el:avy-goto-word-0. See [[https://github.com/abo-abo/avy/issues/136][#136]], [[https://github.com/abo-abo/avy/issues/156][#156]].
**** el:avy-pre-action
Function to all before el:avy-action. See [[https://github.com/abo-abo/avy/issues/260][#260]].
**** el:avy-enter-times-out
When non-nil (the default), ~RET~ exists el:avy-goto-char-timer early.
When nil, it matches a newline.
See [[https://github.com/abo-abo/avy/issues/220][#220]], [[https://github.com/abo-abo/avy/issues/225][#225]].
*** New commands
**** el:avy-move-region
Select two lines and move the text between them above the current line.
See [[https://github.com/abo-abo/avy/issues/75][#75]], [[https://github.com/abo-abo/avy/issues/187][#187]], [[https://github.com/abo-abo/avy/issues/188][#188]].
**** el:avy-goto-end-of-line
Call el:avy-goto-line and move to the end of the line. See [[https://github.com/abo-abo/avy/issues/240][#240]].
**** el:avy-linum-mode
Minor mode that uses avy hints for el:linum-mode.
**** el:avy-resume
Holds last command avy command after user input. This is a quick way to bring back the
same markers after a jump. See [[https://github.com/abo-abo/avy/issues/157][#157]], [[https://github.com/abo-abo/avy/issues/165][#165]].
**** el:avy-next
Go to the next candidate after el:avy-read.
Example config:
#+begin_src elisp
(defhydra hydra-avy-cycle ()
("j" avy-next "next")
("k" avy-prev "prev")
("q" nil "quit"))
(global-set-key (kbd "C-M-'") 'hydra-avy-cycle/body)
#+end_src
After e.g. el:avy-goto-char or el:avy-goto-char-timer, use the above hydra to cycle
between the last candidates. See [[https://github.com/abo-abo/avy/issues/254][#254]].
**** *-above and *-below variants
Command versions restricted to matches before or after the point.
See [[https://github.com/abo-abo/avy/issues/148][#148]]:
- el:avy-goto-char-2-above
- el:avy-goto-char-2-below
See [[https://github.com/abo-abo/avy/issues/151][#151]]:
- el:avy-goto-word-1-above
- el:avy-goto-word-1-below
See [[https://github.com/abo-abo/avy/issues/156][#156]]:
- el:avy-goto-symbol-1-above
- el:avy-goto-symbol-1-below
See [[https://github.com/abo-abo/avy/issues/186][#186]]:
- el:avy-goto-word-0-below
- el:avy-goto-word-0-above
**** kill and save region functionality
New avy-enabled commands:
- el:avy-kill-whole-line
- el:avy-kill-region
- el:avy-kill-ring-save-whole-line
- el:avy-kill-ring-save-region
See [[https://github.com/abo-abo/avy/issues/158][#158]].
**** org-mode functionality
New avy-enabled commands:
- el:avy-org-refile-as-child
- el:avy-org-goto-heading-timer
See [[https://github.com/abo-abo/avy/issues/214][#214]], [[https://github.com/abo-abo/avy/issues/258][#258]].
*** el:avy-goto-char-timer
Show the number of matches so far in the prompt. See [[https://github.com/abo-abo/avy/issues/253][#253]].
*** el:avy-read
Ignore mistyping when no candidates are available. See [[https://github.com/abo-abo/avy/issues/256][#256]].
When the overlays are shown, press ~?~ to get dispatch help.

View File

@ -22,11 +22,5 @@
(add-to-list 'load-path default-directory)
(mapc #'byte-compile-file '("avy.el"))
(require 'avy)
(if (fboundp 'checkdoc-file)
(checkdoc-file "avy.el")
(require 'checkdoc)
(with-current-buffer (find-file "avy.el")
(checkdoc-current-buffer t)))
(global-set-key (kbd "C-c j") 'avy-goto-char)
(global-set-key (kbd "C-'") 'avy-goto-char-2)

2
targets/checkdoc.el Normal file
View File

@ -0,0 +1,2 @@
(checkdoc-file "avy-test.el")
(checkdoc-file "avy.el")