]> code.delx.au - gnu-emacs-elpa/blob - packages/avy/doc/Changelog.org
Merge commit '0cda39255827f283e7578cd469ae42daad9556a2' from js2-mode
[gnu-emacs-elpa] / packages / avy / doc / Changelog.org
1 * 0.3.0
2 ** Fixes
3 *** Candidate window reversal
4 See [[https://github.com/abo-abo/avy/issues/27][#27]].
5
6 *** Jumping to newlines with =at-full= style
7 See [[https://github.com/abo-abo/avy/issues/5][#5]].
8
9 *** Stop =at-full= style from shifting text sometimes
10 See [[https://github.com/abo-abo/avy/issues/5][#5]].
11
12 *** Fix =at-full= interaction with tabs
13 When at a tab, visualize it using =tab-width= spaces.
14
15 See [[https://github.com/abo-abo/avy/issues/43][#43]].
16
17 *** Fix overlay issue when the same buffer is in two windows
18
19 See [[https://github.com/abo-abo/avy/issues/47][#47]] and http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20607.
20
21 *** Quote punctuation chars
22
23 See [[https://github.com/abo-abo/avy/issues/63][#63]].
24
25 *** Update screenshot for =avy-goto-char= in README.md
26 Use ~C-:~ as the new suggested binding instead of the pi char.
27
28 See [[https://github.com/abo-abo/avy/issues/64][#64]].
29
30 ** New Features
31 *** =avy-goto-line= can now break into =goto-line=
32 Just enter a digit and you'll be transferred into =goto-line= prompt
33 with that digit already entered. This means that you can just bind
34 ~M-g g~ to =avy-goto-line= without losing anything.
35
36 See [[https://github.com/abo-abo/avy/issues/29][#29]].
37
38 *** =avy-goto-line= now works with all kinds of overlay styles
39 Any of the following do something different now:
40
41 #+begin_src elisp
42 (setq avy-styles-alist
43 '((avy-goto-line . post)))
44 (setq avy-styles-alist
45 '((avy-goto-line . at)))
46 (setq avy-styles-alist
47 '((avy-goto-line . at-full)))
48 (setq avy-styles-alist
49 '((avy-goto-line . pre)))
50 #+end_src
51
52 See [[https://github.com/abo-abo/ace-link/issues/17][#17]].
53
54 *** New defcustom =avy-case-fold-search=
55 Non-nil when searches should ignore case, so e.g. =avy-goto-char= "b"
56 will match both "b" and "B". On by default. Use this to turn off this
57 behavior:
58
59 #+begin_src elisp
60 (setq avy-case-fold-search nil)
61 #+end_src
62
63 See [[https://github.com/abo-abo/avy/issues/34][#34]].
64
65 *** New command =avy-goto-word-or-subword-1=
66
67 Enter one char, and select a visible word or subword that starts with
68 it, depending on =subword-mode=. Move the point there.
69
70 See [[https://github.com/abo-abo/avy/issues/33][#33]].
71
72 *** =avy-move-line= should remove empty line after original one is moved
73
74 See [[https://github.com/abo-abo/avy/issues/40][#40]].
75
76 *** =avy-move-line= now takes a prefix arg
77 Use e.g. ~M-3~ before =avy-move-line= to move 3 lines at once.
78
79 *** Most commands can be used non-interactively
80 Example:
81 #+begin_src elisp
82 (defun avy-goto-lp ()
83 (interactive)
84 (avy-goto-char ?\())
85 #+end_src
86
87 This command only goes to the "(" character. This is actually very
88 similar to [[http://oremacs.com/lispy/#lispy-ace-paren][=lispy-ace-paren=]], except the implementation is only one
89 line.
90
91 See [[https://github.com/abo-abo/avy/issues/44][#44]].
92
93 *** (almost) all defcustoms are explained on the wiki
94
95 See [[https://github.com/abo-abo/avy/wiki/defcustom][the defcustom wiki page]].
96
97 *** Allow all operations to work across frames
98
99 You have to customize =avy-all-windows= for this. By default, it's set
100 to work on all windows on the current frame.
101
102 To make it work only on the current window, use:
103 #+begin_src elisp
104 (setq avy-all-windows nil)
105 #+end_src
106
107 To make it work on all frames, use:
108 #+begin_src elisp
109 (setq avy-all-windows 'all-frames)
110 #+end_src
111
112 *** New command =avy-goto-char-in-line=
113
114 This is =avy-goto-char= reduced only to the current line. Few
115 candidates means very short decision chars path.
116
117 See [[https://github.com/abo-abo/avy/issues/49][#49]].
118
119 *** New overlay style =de-bruijn=
120
121 How to use it:
122
123 #+begin_src elisp
124 (setq avy-style 'de-bruijn)
125 #+end_src
126
127 What it does: when your leading chars are clumped up together, it's
128 impossible to overlay the decision path without shifting the buffer
129 text a bit. For example, with the word "buffer", you =avy-goto-char= "b", and:
130
131 - the path for the first "f" is "aj"
132 - the path for the second "f" is "ak"
133
134 It's not possible to overlay 4 characters over "ff" in "buffer". But
135 to with =de-bruijn= style, which results in the path being "aj" and
136 "jk". It's possible to overlay "ajk" just fine.
137
138 Pros and cons of =de-bruijn= over other styles:
139
140 - a pro is that it's possible to display the full decision path for
141 clumped up chars, which is truncated for other styles
142 - a con is that the decision path is of the same length (e.g. 2 or 3)
143 for all candidates, while with other styles it's possible to have a
144 few candidets with a shorter path.
145
146 See [[https://github.com/abo-abo/avy/issues/51][#51]] and [[https://github.com/abo-abo/avy/issues/5][#5]].
147
148 *** New defcustom =avy-ignored-modes=
149
150 This is meant for visual modes like =doc-view-mode= or =image-mode=
151 that can have a huge number of chars in a single window. Which results
152 in a huge number of candidates even in other windows.
153
154 Current setting:
155
156 #+begin_src elisp
157 (setq avy-ignored-modes '(image-mode doc-view-mode pdf-view-mode))
158 #+end_src
159
160 See [[https://github.com/abo-abo/avy/issues/57][#57]].
161
162 *** New tutorial on writing custom commands
163
164 See the [[https://github.com/abo-abo/avy/wiki/custom-commands][the custom-commands wiki page]] and [[https://github.com/abo-abo/avy/issues/55][#55]].
165
166 *** New face setup
167 New variable =avy-lead-faces= will determine the faces used to color
168 the current decision depth you're in. For example, if to select a
169 particular candidate you need to press "abc":
170
171 - "a" will be highlighted with a face that corresponds to depth 3
172 - "b" will be highlighted with a face that corresponds to depth 2
173 - "c" will be highlighted with a face that corresponds to depth 1
174
175 But if another candidate needs "ef":
176
177 - "e" will be highlighted with a face that corresponds to depth 2
178 - "f" will be highlighted with a face that corresponds to depth 1
179
180 See [[https://github.com/abo-abo/avy/issues/53][#53]].
181
182 *** New variable =avy-translate-char-function=
183
184 You can use this, for example, to interpret one character as another in =avy-keys=.
185
186 Example:
187 #+begin_src elisp
188 (setq avy-translate-char-function
189 (lambda (c) (if (= c 32) ?a c)))
190 #+end_src
191
192 This will translate ~SPC~ (32) into ~a~. So you can press either ~a~ or ~SPC~ to mean "a".
193
194 *** =avy-isearch= works for different styles
195
196 See [[https://github.com/abo-abo/avy/issues/61][#61]].
197
198 *** Switch the default style from =pre= to =at-full=
199
200 I've come to like =at-full= more than =pre= over time. The difference
201 is that =pre= hides no chars in your buffer, while =at-full= doesn't
202 shift text.
203
204 Use this to restore the previous default behavior:
205 #+begin_src elisp
206 (setq avy-style 'pre)
207 #+end_src
208 * 0.4.0
209 ** Fixes
210 *** =avy-goto-char-timer= obeys =avy-styles-alist=
211 See [[https://github.com/abo-abo/avy/issues/67][#67]].
212 *** Add =de-bruijn= to the defcustom of =avy-styles-alist=
213 See [[https://github.com/abo-abo/avy/issues/73][#73]].
214 *** Respect the current input method for target chars
215 See [[https://github.com/abo-abo/avy/issues/76][#76]].
216 *** =avy-goto-subword-0= shouldn't offer invisible chars
217 See [[https://github.com/abo-abo/avy/issues/90][#90]].
218 *** Better =case-fold-search= handling
219 See [[https://github.com/abo-abo/avy/issues/87][#87]].
220 *** Add misc punctuation to subword commands
221 See [[https://github.com/abo-abo/avy/issues/93][#93]].
222 *** Add padding for wide-width chars (ex. Japanese and Chinese)
223 See [[https://github.com/abo-abo/avy/issues/96][#96]].
224 *** =avy-goto-line=
225 **** Push mark for numeric line
226 See [[https://github.com/abo-abo/avy/issues/74][#74]].
227 **** Allow numeric prefix arg
228 The old behavior remains for ARG 1 or 4. For all other ARG, simply go
229 to that line.
230 See [[https://github.com/abo-abo/avy/issues/86][#86]].
231 **** Work for =visual-line-mode=
232 See [[https://github.com/abo-abo/avy/issues/91][#91]].
233 **** Don't error on end of buffer
234 See [[https://github.com/abo-abo/avy/issues/91][#91]].
235 **** Obey =avy-background=
236 See [[https://github.com/abo-abo/avy/issues/94][#94]].
237 **** Fix for narrowed regions
238 See [[https://github.com/abo-abo/avy/issues/122][#122]], [[https://github.com/abo-abo/avy/issues/123][#123]].
239 **** Don't modify =avy-action=
240 See [[https://github.com/abo-abo/avy/issues/124][#124]].
241 *** =avy-goto-char-timer=
242 **** May read as many chars as you want
243 See [[https://github.com/abo-abo/avy/issues/97][#97]].
244 **** Highlight matches while reading chars
245 See [[https://github.com/abo-abo/avy/issues/98][#98]].
246 **** Highlight depending on =avy-all-windows=
247 See [[https://github.com/abo-abo/avy/issues/104][#104]].
248 **** Make faster for =org-mode=
249 See [[https://github.com/abo-abo/avy/issues/100][#100]].
250 **** Add case fold search
251 See [[https://github.com/abo-abo/avy/issues/128][#128]].
252 *** =avy-copy-region=
253 **** Keep the same selectors for the second pass
254 See [[https://github.com/abo-abo/avy/issues/120][#120]], [[https://github.com/abo-abo/avy/issues/121][#121]].
255 **** Copy/move to initial window
256 See [[https://github.com/abo-abo/avy/issues/131][#131]].
257 *** Search only in the visible region
258 See [[https://github.com/abo-abo/avy/issues/108][#108]], [[https://github.com/abo-abo/avy/issues/109][#109]].
259 *** Fix jumping to the last char of a folded Org outline
260 See [[https://github.com/abo-abo/avy/issues/108][#108]].
261 *** Fix for both =org-indent-mode= and =visual-line-mode=
262 See [[https://github.com/abo-abo/avy/issues/110][#110]].
263 *** Beep when there are no matches
264 See [[https://github.com/abo-abo/avy/issues/111][#111]].
265 *** Simplify overlay code
266 Most functions reuse =avy--overlay= now.
267 *** Fix de-bruijn "no catch for tag"
268 See [[https://github.com/abo-abo/avy/issues/116][#116]].
269 *** Fix overlays at =point-max=
270 See [[https://github.com/abo-abo/avy/issues/125][#125]].
271 *** Improve =case-fold-search= condition
272 See [[https://github.com/abo-abo/avy/issues/126][#126]].
273 *** Don't shorten selector string for =visual-line-mode= and =bolp=
274 See [[https://github.com/abo-abo/avy/issues/129][#129]].
275 *** Fix interaction with =goto-address-mode=
276 ** New Features
277 *** Allow non-printing keys in =avy-keys=
278 Now you can set avy-keys also to the arrow keys and page up/down, e.g.
279
280 #+begin_src elisp
281 (setq avy-keys '(left right up down prior next))
282 #+end_src
283
284 and those will be displayed as ▲, ▼, ◀, ▶, △, ▽ in the overlays. The
285 display is controlled by the variable =avy-key-to-char-alist=.
286
287 See [[https://github.com/abo-abo/avy/issues/77][#77]].
288 *** Allow to switch action midway from goto to kill/mark/copy
289 For example, suppose you have:
290
291 #+begin_src elisp
292 (global-set-key (kbd "M-t") 'avy-goto-word-1)
293 #+end_src
294
295 - To jump to a certain word starting with "w" (e.g. first one on
296 screen): ~M-t w a~
297 - To copy the word instead of jumping to it: ~M-t w na~.
298 - To mark the word after jumping to it: ~M-t w ma~.
299 - To kill the word after jumping to it: ~M-t w xa~.
300
301 You can customize =avy-dispatch-alist= to modify these actions.
302
303 See [[https://github.com/abo-abo/avy/issues/78][#78]].
304
305 *** New command =avy-pop-mark=
306 Goes back to the last location of =push-mark=:
307
308 - has its own history,
309 - handles multiple frames.
310
311 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]].
312 *** New commands =avy-goto-line-above= and =avy-goto-line-below=
313 See [[https://github.com/abo-abo/avy/issues/106][#106]].
314 *** New defcustom =avy-line-insert-style=
315 Allows to modify the behavior of =avy-copy-line=, =avy-move-line=, and =avy-copy-region=.
316 See [[https://github.com/abo-abo/avy/issues/117][#117]].
317 *** New defcustom =avy-all-windows-alt=
318 Allows to customize the behavior of =universal-argument= modifying
319 =avy-all-windows=.
320 See [[https://github.com/abo-abo/avy/issues/118][#118]].
321 *** New defcustom =avy-subword-extra-word-chars=
322 Allows to customize the behavior of =avy-goto-subword-0= and
323 =avy-goto-subword-1= by adding extra chars that should match as word
324 constituents.
325 See [[https://github.com/abo-abo/avy/issues/116][#116]].