Personal emacs config
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5518 lines
146 KiB

  1. 2020-11-29 Oleh Krehel <ohwoeowho@gmail.com>
  2. Rename swiper -> ivy
  3. 2015-12-07 Oleh Krehel <ohwoeowho@gmail.com>
  4. doc/ivy.org: Add "Variable Index" node
  5. 2015-12-07 Oleh Krehel <ohwoeowho@gmail.com>
  6. doc/ivy.texi: Re-export using adjusted texinfo exporter
  7. * doc/ivy.org: Add defopt/endopt macros. Change `ivy-wrap' and
  8. `ivy-height' to defopt.
  9. 2015-12-07 Oleh Krehel <ohwoeowho@gmail.com>
  10. swiper.el: Bump version to 0.7.0
  11. 2015-12-07 Oleh Krehel <ohwoeowho@gmail.com>
  12. doc/Changelog.org: Update up to 706349f
  13. 2015-12-07 Oleh Krehel <ohwoeowho@gmail.com>
  14. ivy.el (ivy-completing-read): Use completing-read-default for tmm
  15. Fixes #316
  16. 2015-12-07 Oleh Krehel <ohwoeowho@gmail.com>
  17. counsel.el (counsel-tmm): New command
  18. * counsel.el (counsel-tmm-prompt): New defun.
  19. (tmm-km-list): Define this variable here, since `tmm-get-keymap'
  20. modifies a global variable (yuck!).
  21. Re #316
  22. 2015-12-07 Oleh Krehel <ohwoeowho@gmail.com>
  23. swiper.el (swiper-font-lock-ensure): Add vc-dir-mode
  24. Re #19
  25. 2015-12-04 Oleh Krehel <ohwoeowho@gmail.com>
  26. Use :caller for ivy-re-builders-alist
  27. * counsel.el (counsel-M-x): Add :caller.
  28. * ivy.el (ivy--reset-state): Use :caller.
  29. 2015-12-04 Oleh Krehel <ohwoeowho@gmail.com>
  30. swiper.el (swiper--update-input-ivy): Add a work-around for "M-j"
  31. When `ivy-yank-word' is called, don't move to the line of the current
  32. candidate. We're already there anyway. And not moving helps when there
  33. are multiple occurrences of the current input on the current line.
  34. Fixes #314
  35. 2015-12-02 Oleh Krehel <ohwoeowho@gmail.com>
  36. ivy.el: Structure all faces into ivy-faces custom group
  37. 2015-11-29 Oleh Krehel <ohwoeowho@gmail.com>
  38. Fix due to visual-line-mode weirdness
  39. * swiper.el (swiper--candidates): Under a specific random condition,
  40. (line-move 1) from the beginning of line doesn't move to the beginning
  41. of the next visual line.
  42. This change fixes it, but will result in an even slower startup when
  43. `visual-line-mode' is active.
  44. Fixes #313
  45. 2015-11-29 Oleh Krehel <ohwoeowho@gmail.com>
  46. swiper.el: Use show-all if outline-show-all isn't there
  47. Fixes #312
  48. 2015-11-29 Oleh Krehel <ohwoeowho@gmail.com>
  49. Fix ivy-resume issue caused by the recursive calls change
  50. * ivy.el (ivy-read): recursive-ivy-last is only set if there's an active
  51. minibuffer window. If this check isn't made, it causes the previous
  52. `ivy-last' to be reset after the current one, so `ivy-resume' would
  53. resume not the last command.
  54. 2015-11-29 Oleh Krehel <ohwoeowho@gmail.com>
  55. Fix the preselect for (swiper "one") again
  56. * ivy.el (ivy--reset-state): Take into account :preselect being integer.
  57. This means that it's void once the candidates are filtered over
  58. :initial-input.
  59. Fixes #292
  60. 2015-11-27 Oleh Krehel <ohwoeowho@gmail.com>
  61. Fix the issue caused by recursive swiper calls
  62. * swiper.el (swiper--ivy): Look at the return result of `ivy-read';
  63. looking at `ivy-exit' no longer works.
  64. Fixes #311
  65. 2015-11-27 Oleh Krehel <ohwoeowho@gmail.com>
  66. Remove 'field text property for twittering-mode
  67. * swiper.el (swiper--candidates): Update.
  68. (swiper-font-lock-ensure): Add `twittering-mode'.
  69. Fixes #310
  70. 2015-11-27 Oleh Krehel <ohwoeowho@gmail.com>
  71. Enable recursive swiper calls
  72. * ivy.el (ivy-read): Don't need to be in the minibuffer to do a
  73. recursive store/restore.
  74. (ivy--reset-state): Avoid nil string while testing.
  75. Fixes #309
  76. 2015-11-27 Oleh Krehel <ohwoeowho@gmail.com>
  77. doc/Changelog.org: Update up to 2bec99d
  78. 2015-11-27 Oleh Krehel <ohwoeowho@gmail.com>
  79. Fixes on the previous docstring edits
  80. 2015-11-27 sjLambda <sjLambda@gmail.com>
  81. Edit documentation strings in ivy.el
  82. Fixes #308
  83. 2015-11-26 Oleh Krehel <ohwoeowho@gmail.com>
  84. Ease production of functions like ivy-format-function-default
  85. * ivy.el (ivy--format-function-generic): New defun.
  86. (ivy-format-function-default):
  87. (ivy-format-function-arrow):
  88. (ivy-format-function-line): Use `ivy--format-function-generic'.
  89. * counsel.el (counsel--M-x-transformer): Add an extra space to simplify
  90. the logic.
  91. Re #307
  92. 2015-11-26 Stephen Whipple <shw@wicdmedia.org>
  93. Convert ivy formatting functions to dotted pairs.
  94. `ivy-format-function' now expects to operate on dotted pairs
  95. representing (stub . extra), where `stub' is the original candidate and
  96. `extra' is any extra information that has been added by counsel or other
  97. libraries.
  98. The format function can differentiate between the original stub and
  99. extra information and choose how to display the result to the user.
  100. 2015-11-25 Stephen Whipple <shw@wicdmedia.org>
  101. Update ivy format functions.
  102. `ivy-format-function' now accessible via Customize system.
  103. `ivy-format-function-default' and `ivy-format-function-arrow'
  104. simplified.
  105. New format `ivy-format-function-line' added.
  106. `counsel-M-x' restores `ivy-format-function' before executing command.
  107. Fixes #306
  108. 2015-11-25 Oleh Krehel <ohwoeowho@gmail.com>
  109. Add counsel-grep
  110. * ivy.el (ivy--reset-state): Don't push preselect onto collection for
  111. :dynamic-collection.
  112. (ivy-recompute-index-swiper-async): New defun. It's useful for
  113. re-anchoring on collections produced async processes. The major
  114. difference from `ivy-recompute-index-swiper' is using `equal' instead of
  115. `eq'.
  116. * counsel.el (counsel--async-sentinel): Add index recomputing logic.
  117. When `ivy--old-cands' are null, recompute the index according to
  118. :preselect, otherwise try `ivy--recompute-index'.
  119. (counsel-grep): New command. Very similar to `swiper', except calls an
  120. external process for each key update. Should be much faster for very
  121. large files, both for startup and for matching. For smaller files, it's
  122. less convenient.
  123. (counsel-grep-function): New defun.
  124. (counsel-grep-action): New defun.
  125. Fixes #299
  126. 2015-11-24 Oleh Krehel <ohwoeowho@gmail.com>
  127. Ivy-resume should restore the buffer for swiper
  128. * ivy.el (ivy-resume): Update.
  129. Fixes #302
  130. 2015-11-24 Oleh Krehel <ohwoeowho@gmail.com>
  131. Fix broken candidate index in ivy-resume
  132. * ivy.el (ivy--reset-state): When given initial-input, call
  133. `ivy--preselect-index' on candidates filtered by initial-input. This
  134. is important for `ivy-resume'.
  135. 2015-11-24 Samuel Loury <konubinixweb@gmail.com>
  136. Warn the user about the behavior of ivy--regex-ignore-order
  137. Fixes #296 Fixes #305
  138. 2015-11-24 Oleh Krehel <ohwoeowho@gmail.com>
  139. Minor fixes to ivy.org and export to ivy.texi
  140. Fixes #304
  141. 2015-11-24 sjLambda <sjLambda@gmail.com>
  142. ivy.org manual edits
  143. 2015-11-24 kovrik <kovrik0@gmail.com>
  144. Fix `counsel-ag` on Windows
  145. 2015-11-22 Oleh Krehel <ohwoeowho@gmail.com>
  146. swiper.el (swiper--action): push-mark only if exited the minibuffer
  147. "C-M-n" and "C-M-p" will no longer push mark and annoy with messages.
  148. 2015-11-22 Oleh Krehel <ohwoeowho@gmail.com>
  149. Perform string-match in the original buffer
  150. * ivy.el (ivy--exhibit): Wrap in `with-current-buffer'
  151. `ivy-state-buffer'.
  152. (ivy-recompute-index-swiper): Reset to the candidate at the current line
  153. number, in case the previous regex resulted in 0 candidates.
  154. Fixes #298
  155. 2015-11-21 Oleh Krehel <ohwoeowho@gmail.com>
  156. swiper.el (swiper--candidates): Require outline
  157. Fixes #297
  158. 2015-11-20 Oleh Krehel <ohwoeowho@gmail.com>
  159. Fix the preselect for (swiper "one")
  160. * ivy.el (ivy--reset-state): Ignore INITIAL-INPUT on the first
  161. step. Then all `ivy--filter' on the second step.
  162. (ivy--preselect-index): Change arglist. No longer takes INITIAL-INPUT.
  163. (ivy--recompute-index): Update the call to `ivy--preselect-index'.
  164. Fixes #292
  165. 2015-11-19 Oleh Krehel <ohwoeowho@gmail.com>
  166. ivy.el (ivy-alt-done): Split into smaller defuns
  167. * ivy.el (ivy--directory-done): New defun.
  168. (ivy-alt-done): Forward to `ivy--directory-done'.
  169. 2015-11-19 Oleh Krehel <ohwoeowho@gmail.com>
  170. ivy.el (ivy-alt-done): Refactor
  171. Collect all `ivy--directory' branches into a single `cond'.
  172. 2015-11-19 Oleh Krehel <ohwoeowho@gmail.com>
  173. Allow access to TRAMP from "// C-j"
  174. * ivy.el (ivy-alt-done): Match not only `ivy-text' but also
  175. `ivy--current' for TRAMP regex.
  176. Re #285
  177. 2015-11-18 Stephen Whipple <shw@wicdmedia.org>
  178. Improve ivy TRAMP support
  179. 2015-11-18 Oleh Krehel <ohwoeowho@gmail.com>
  180. ivy.el (ivy-completing-read): Fix off by one
  181. Re #295
  182. 2015-11-18 Oleh Krehel <ohwoeowho@gmail.com>
  183. Switch to using ivy-exit-with-action
  184. * ivy.el (ivy-exit-with-action): Add a missing quote.
  185. (ivy--cd-maybe): Use `ivy-exit-with-action'.
  186. * counsel.el (counsel-find-symbol):
  187. (counsel--info-lookup-symbol):
  188. (counsel-git-grep-query-replace): Use `ivy-exit-with-action'.
  189. * swiper.el (swiper-query-replace):
  190. (swiper-mc): Use `ivy-exit-with-action'.
  191. The previous approach was overwriting the action list, so when
  192. `ivy-resume' was called, only a single action was present. The new
  193. approach doesn't have this bug.
  194. So now it's possible to e.g. `counsel-describe-function' -> "M-o d" ->
  195. `ivy-resume' -> "M-o o" -> `ivy-resume' -> "M-o i".
  196. 2015-11-18 Samuel Loury <konubinixweb@gmail.com>
  197. Make ivy-completing-read handle history as cons
  198. The ivy-read function assumes that history is a symbol, hence
  199. ivy-completing-read now makes sure that a symbol is given to ivy-read.
  200. Moreover, it makes sure that the value of initial-input is coherent with
  201. the value of the HISTPOS part of the history variable if it exists.
  202. Fixes #295
  203. 2015-11-17 Oleh Krehel <ohwoeowho@gmail.com>
  204. swiper.el: Modify the behavior with org-mode and visual-line-mode
  205. * swiper.el (swiper--candidates): Set `swiper-use-visual-line' even for
  206. `org-mode'. In that case, reveal all text to prevent `line-move'
  207. weirdness.
  208. (swiper--ivy): Use `swiper-use-visual-line'.
  209. Re #291 Re #227
  210. 2015-11-16 Oleh Krehel <ohwoeowho@gmail.com>
  211. README.md: Add more bindings
  212. 2015-11-16 Oleh Krehel <ohwoeowho@gmail.com>
  213. Add precise preselect for swiper with visual-line-mode
  214. * swiper.el (swiper--ivy): Use `count-screen-lines' to calculate the
  215. visual line number.
  216. Fixes #291
  217. 2015-11-16 Oleh Krehel <ohwoeowho@gmail.com>
  218. Intermediate fix for :preselect with visual-line-mode
  219. * swiper.el (swiper--ivy): Use `beginning-of-visual-line' and
  220. `end-of-visual-line'. This should fix the preselect problem for
  221. non-duplicate buffer lines.
  222. For duplicate buffer lines, a `visual-line-number-at-pos' function is
  223. necessary. I don't currently know how to implement such a function in an
  224. efficient way. The naive implementation could be pretty inefficient,
  225. comparable to doubling `swiper' startup time with `visual-line-mode'.
  226. Re #291
  227. 2015-11-15 Oleh Krehel <ohwoeowho@gmail.com>
  228. Fix swiper preselect issue with similar or identical lines
  229. * ivy.el (ivy--preselect-index): Allow PRESELECT to be an integer.
  230. * swiper.el (swiper--anchor):
  231. (swiper--len): Remove unused defvar.
  232. (swiper--init): Update.
  233. (swiper--ivy): Set PRESELECT to `line-number-at-pos'.
  234. Fixes #290
  235. 2015-11-14 Oleh Krehel <ohwoeowho@gmail.com>
  236. swiper.el (swiper-all): New command to swiper all file buffers
  237. * swiper.el (swiper--candidates): Add NUMBERS-WIDTH arg. It could be
  238. done better by calculating the line count of each buffer and then
  239. getting the max of that, but this way is faster, since the collections
  240. are traversed only once.
  241. (swiper-multi): Update.
  242. (swiper-all): New command. This is like `swiper-multi' where the buffer
  243. list is pre-selected to be all file visiting buffers.
  244. (swiper--multi-candidates): New defun.
  245. (swiper-multi-action-1): Use `swiper--multi-candidates'.
  246. (swiper-multi-action-2): Update - the line number is in the 'display
  247. property of the first char.
  248. Re #234
  249. 2015-11-14 Oleh Krehel <ohwoeowho@gmail.com>
  250. swiper.el (swiper--candidates): Replace "\t" with " "
  251. This will allow the minibuffer strings to align nicer for
  252. `swiper-multi'.
  253. 2015-11-14 Oleh Krehel <ohwoeowho@gmail.com>
  254. ivy.el (ivy--truncate-string): New defun
  255. * ivy.el (ivy-format-function-default): Use `ivy--truncate-string'.
  256. 2015-11-14 Oleh Krehel <ohwoeowho@gmail.com>
  257. counsel.el (counsel-locate): Add INTIAL-INPUT arg
  258. Fixes #289
  259. 2015-11-13 Oleh Krehel <ohwoeowho@gmail.com>
  260. ivy.el (ivy--sort-files-by-date): Fix due to destructive cl-sort
  261. 2015-11-13 Oleh Krehel <ohwoeowho@gmail.com>
  262. Allow to sort files by last modification time.
  263. * ivy.el (ivy--sort-files-by-date): New defun.
  264. Example of use:
  265. (add-to-list
  266. 'ivy-sort-matches-functions-alist
  267. '(read-file-name-internal . ivy--sort-files-by-date))
  268. This will result in e.g. `find-file' or `counsel-find-file' sorting
  269. files by last modification time.
  270. Fixes #213
  271. 2015-11-13 Oleh Krehel <ohwoeowho@gmail.com>
  272. Allow user-specified matched candidate sorting
  273. * ivy.el (ivy-prefix-sort): Remove defcustom.
  274. (ivy--filter): Forward sorting of matched candidates to `ivy--sort'.
  275. (ivy-sort-matches-functions-alist): New defcustom.
  276. (ivy--sort): New defun.
  277. Fixes #269 Fixes #265
  278. 2015-11-13 Oleh Krehel <ohwoeowho@gmail.com>
  279. ivy.el (ivy-prefix-sort): New defcustom, off by default for now
  280. * ivy.el (ivy--filter): When `ivy-prefix-sort' is non-nil, additionally
  281. sort the matching candidates with `ivy--prefix-sort'.
  282. (ivy--prefix-sort): New defun.
  283. Fixes #265
  284. 2015-11-13 Oleh Krehel <ohwoeowho@gmail.com>
  285. ivy.el (ivy-sort-functions-alist): Update doc
  286. Mention `ivy-sort-max-size'.
  287. 2015-11-13 Oleh Krehel <ohwoeowho@gmail.com>
  288. swiper.el: Add support for evil-jumper/backward
  289. * swiper.el (evil-jumper--set-jump): Declare.
  290. (swiper--init): When `evil-jumper-mode' is on, call
  291. `evil-jumper--set-jump'.
  292. * ivy.el (counsel-git-grep-cmd): Declare to silence the byte compiler.
  293. Fixes #268
  294. 2015-11-13 Oleh Krehel <ohwoeowho@gmail.com>
  295. swiper.el (swiper-font-lock-ensure): Add eww-mode
  296. 2015-11-12 Oleh Krehel <ohwoeowho@gmail.com>
  297. swiper.el (swiper-font-lock-ensure): Add occur-mode
  298. 2015-11-11 Oleh Krehel <ohwoeowho@gmail.com>
  299. ivy.el (ivy-occur): Give full counsel-git-grep cands
  300. This means that the " | head -n 200" speed-up isn't used and full
  301. candidates are returned.
  302. 2015-11-11 Oleh Krehel <ohwoeowho@gmail.com>
  303. ivy.el (ivy-occur-mode-map): Bind "q" to quit-window
  304. 2015-11-11 Oleh Krehel <ohwoeowho@gmail.com>
  305. Allow counsel-git-grep -> ivy-occur -> wgrep
  306. * ivy.el (ivy-exit-with-action): New defun.
  307. (ivy-occur-action): Remove defvar. It's part of `ivy-occur-last' now.
  308. (ivy-occur-last): Update doc.
  309. (ivy-occur-map): Rename to `ivy-occur-mode-map'.
  310. (ivy-occur-mode): New major mode.
  311. (ivy-occur): When the caller is `counsel-git-grep', enter `grep-mode';
  312. otherwise enter the new `ivy-occur-mode'. For `wgrep' to work, two
  313. things are changed: candidates need to start on the 5th line, and
  314. candidates need to be prefixed with "./".
  315. (ivy-occur-read-action): New command, bound to "a".
  316. (ivy-occur-dispatch): New command, bound to "o".
  317. (ivy-occur-press): Update to work with `grep-mode'.
  318. (ivy-occur-grep-mode-map): New defvar.
  319. (ivy-occur-grep-mode): New major mode. Basically, it's grep-mode with
  320. "C-x C-q" bound to `wgrep-change-to-wgrep-mode'.
  321. 2015-11-11 Oleh Krehel <ohwoeowho@gmail.com>
  322. ivy.el (ivy-dispatching-done): Don't set action permanently
  323. 2015-11-11 Oleh Krehel <ohwoeowho@gmail.com>
  324. counsel.el (counsel--find-symbol): Silence byte compiler
  325. 2015-11-11 Oleh Krehel <ohwoeowho@gmail.com>
  326. swiper.el (swiper-toggle-face-matching): Add and bind to "C-c C-f"
  327. * swiper.el (swiper-map): Bind `swiper-toggle-face-matching' to
  328. "C-c C-f".
  329. (swiper-invocation-face): New defvar.
  330. (swiper--ivy): Set `swiper-invocation-face'.
  331. (swiper-toggle-face-matching): Toggle `ivy-state-matcher' between nil
  332. (the initial value) and 'swiper--face-matcher.
  333. (swiper--face-matcher): New defun. In addition to filtering CANDIDATES
  334. by having them match REGEXP, also ensure that every match has
  335. `swiper-invocation-face'.
  336. Example of usage:
  337. 1. Move point to a variable with e.g. `font-lock-keyword-face' and "C-s"
  338. <input>.
  339. 2. Use "C-c C-f" to filter the candidates further by selecting only the
  340. ones that have `font-lock-keyword-face'. Note that "M-q"
  341. (`swiper-query-replace') is also affected by the filtering.
  342. 3. Use "C-c C-f" to toggle the filtering off.
  343. Fixes #288
  344. 2015-11-10 Oleh Krehel <ohwoeowho@gmail.com>
  345. ivy.el (ivy-alt-done): Ensure the trailing slash for directories
  346. * ivy.el (ivy-alt-done): Update.
  347. 2015-11-06 Oleh Krehel <ohwoeowho@gmail.com>
  348. counsel.el (counsel-M-x): Show current-prefix-arg in the prompt
  349. * counsel.el (counsel--M-x-prompt): New defun.
  350. (counsel-M-x): Update.
  351. Fixes #287
  352. 2015-11-06 Oleh Krehel <ohwoeowho@gmail.com>
  353. doc/ivy.org: Start writing a manual
  354. 2015-11-05 Stephen Whipple <shw@wicdmedia.org>
  355. Fix directory validity check
  356. Directory validity check should be based on `ivy-text` and
  357. `ivy--directory` rather than only `ivy-text`.
  358. Fixes #283 Fixes #284
  359. 2015-11-05 Oleh Krehel <ohwoeowho@gmail.com>
  360. Add a better ivy-occur pulse to swiper and counsel-git-grep
  361. * ivy.el (ivy-occur-press): Bind `ivy-exit' to 'done, so that
  362. `swiper--add-overlays' called by ACTION don't do anything.
  363. Call another `swiper--add-overlays' for swiper and counsel-git-grep,
  364. limited to the current line. Call `swiper--cleanup' with a delay of 1
  365. second.
  366. 2015-11-05 Oleh Krehel <ohwoeowho@gmail.com>
  367. swiper.el (swiper--add-overlays): Take extra WND arg
  368. 2015-11-05 Oleh Krehel <ohwoeowho@gmail.com>
  369. counsel.el (counsel-git-grep-query-replace): Should exit minibuffer
  370. 2015-11-05 Oleh Krehel <ohwoeowho@gmail.com>
  371. Input "/sudo::" goes to current directory instead of root's home
  372. * ivy.el (ivy-alt-done): Update.
  373. Re #283
  374. 2015-11-05 Oleh Krehel <ohwoeowho@gmail.com>
  375. Fix /ssh: and /sudo:: broken in 71695df
  376. * ivy.el (ivy-alt-done): `file-directory-p' errors when given "/ssh:" or
  377. "/sudo::".
  378. Re #283
  379. 2015-11-05 Oleh Krehel <ohwoeowho@gmail.com>
  380. Rebind ivy-occur to "C-c C-o" and "C-o u"
  381. * ivy.el (ivy-minibuffer-map): Update.
  382. * ivy-hydra.el (hydra-ivy): Update.
  383. Wouldn't want to violate the "C-c LETTER" convention.
  384. 2015-11-04 Oleh Krehel <ohwoeowho@gmail.com>
  385. counsel.el (counsel-M-x): Add "definition" action
  386. 2015-11-04 Oleh Krehel <ohwoeowho@gmail.com>
  387. ivy.el (ivy-occur-press): Extend with-ivy-window
  388. ivy-occur-action should be called in (ivy--get-window ivy-last).
  389. This means, for purposes of e.g. `counsel-find-symbol' or
  390. `lispy--action-jump` that if *ivy-occur* is the only window, it will be
  391. re-used. But if the user wants *ivy-occur* not to get buried, then
  392. having at least 2 windows solves that problem.
  393. 2015-11-04 Oleh Krehel <ohwoeowho@gmail.com>
  394. ivy.el (ivy-minibuffer-map): Bind "C-M-a" to ivy-read-action
  395. 2015-11-04 Oleh Krehel <ohwoeowho@gmail.com>
  396. counsel.el (counsel-rhythmbox): Add :caller
  397. This results in more descriptive *ivy-occur* buffers.
  398. 2015-11-04 Oleh Krehel <ohwoeowho@gmail.com>
  399. ivy.el (ivy-occur-press): Work with counsel-rhythmbox
  400. > (cdr (assoc str coll))
  401. Special behavior for `counsel-rhythmbox'. Maybe not taking `cdr' is the
  402. right thing, but that's how Helm and `helm-rhythmbox-play-song' works.
  403. 2015-11-04 mike <miketz@users.noreply.github.com>
  404. fix 1-too-far scrolling issue
  405. Functions `ivy-scroll-up-command' and `ivy-scroll-down-command' would
  406. scroll 1 unit too far. So one item in the list would be skipped and
  407. never seen for each scroll.
  408. 2015-11-04 Oleh Krehel <ohwoeowho@gmail.com>
  409. Pulse after ivy-occur-press
  410. * ivy.el (ivy-state): New field TEXT.
  411. (ivy-occur): Add `ivy-text' to the name of the buffer. Also store
  412. `ivy-text' in `ivy-occur-last'. Might be needed in the future for a more
  413. specific pulse.
  414. (ivy-occur-press): Pulse the selected line.
  415. 2015-11-03 Oleh Krehel <ohwoeowho@gmail.com>
  416. Make ivy work with enable-recursive-minibuffers
  417. * ivy.el (ivy-read): Fix the doc of DYNAMIC-COLLECTION. Store the old
  418. `ivy-last' in case `ivy-read' is called while inside the minibuffer.
  419. Restore it after `ivy-call'.
  420. 2015-11-03 Oleh Krehel <ohwoeowho@gmail.com>
  421. swiper.el (swiper-font-lock-ensure): Exclude debbugs-gnu-mode
  422. 2015-11-03 Oleh Krehel <ohwoeowho@gmail.com>
  423. ivy.el (ivy-occur): Add and bind to "C-c o"
  424. * ivy.el (ivy-minibuffer-map): Update.
  425. (ivy-occur-action):
  426. (ivy-occur-last):
  427. (ivy-occur-map): New defvar.
  428. (ivy-occur): New command.
  429. (ivy-occur-click): New command bound to mouse click.
  430. (ivy-occur-press): New command bound to "RET" press.
  431. `ivy-occur' allows to store the current completion session for further
  432. use. An unlimited amount of these sessions can be used, each in its own
  433. buffer.
  434. 2015-11-03 Oleh Krehel <ohwoeowho@gmail.com>
  435. ivy.el (with-ivy-window): Ensure window is live
  436. * ivy.el (ivy--get-window): New defun.
  437. 2015-11-03 Oleh Krehel <ohwoeowho@gmail.com>
  438. ivy.el (ivy-state): Add a new field BUFFER
  439. * ivy.el (ivy-resume): Update.
  440. (ivy-read): Update.
  441. * swiper.el (swiper--action): Use `ivy-state-buffer'.
  442. 2015-11-03 Oleh Krehel <ohwoeowho@gmail.com>
  443. swiper.el (swiper-mc): Update
  444. 2015-11-02 Oleh Krehel <ohwoeowho@gmail.com>
  445. Highlight modified file buffers with 'ivy-modified-buffer face
  446. * ivy.el (ivy-modified-buffer): New face, blank by default.
  447. (ivy--format): When the collection is 'internal-complete-buffer,
  448. highlight unsaved file visiting buffers with 'ivy-modified-buffer.
  449. Fixes #280
  450. Example custom setting for 'ivy-modified-buffer:
  451. (custom-set-faces
  452. '(ivy-modified-buffer ((t (:background "#ff7777")))))
  453. 2015-11-01 Oleh Krehel <ohwoeowho@gmail.com>
  454. ivy.el (ffap): Move require
  455. 2015-10-31 Oleh Krehel <ohwoeowho@gmail.com>
  456. counsel.el (counsel-git-grep-query-replace): Add and bind to "M-q"
  457. * counsel.el (counsel-git-grep-map): Bind "M-q" to
  458. `counsel-git-grep-query-replace'.
  459. (counsel-git-grep-query-replace): New command. Perform `query-replace'
  460. on all matches of git-grep in all buffers.
  461. 2015-10-31 Oleh Krehel <ohwoeowho@gmail.com>
  462. swiper.el (swiper-font-lock-ensure): Exclude eems-stream-mode
  463. Re #19
  464. 2015-10-30 Oleh Krehel <ohwoeowho@gmail.com>
  465. "C-x C-f M-n" can call ffap-url-fetcher when at URL
  466. * ivy.el (ivy--cd-maybe): Check if the input is a valid URL. If so, exit
  467. immediately by calling (funcall ffap-url-fetcher url). Otherwise, do the
  468. usual `ivy--cd' thing.
  469. 2015-10-30 Oleh Krehel <ohwoeowho@gmail.com>
  470. ivy.el: "M-n" should prefer url at point to symbol at point
  471. * ivy.el (ivy--reset-state): Update.
  472. 2015-10-30 Oleh Krehel <ohwoeowho@gmail.com>
  473. counsel.el (counsel--find-symbol): Resolve name clash better
  474. * counsel.el (counsel--find-symbol): When the symbol is both bound and
  475. fbound, prefer the fbound one, unless the :caller is
  476. `counsel-describe-variable'.
  477. (counsel-describe-variable): Declare :caller.
  478. (counsel-describe-function): Declare :caller.
  479. One example is going to the definition of `isearch-forward' (also with
  480. `counsel-M-x').
  481. 2015-10-30 Oleh Krehel <ohwoeowho@gmail.com>
  482. Improve the preselect index in ivy-resume
  483. * ivy.el (ivy--recompute-index): Don't change the ivy--index that was
  484. set in `ivy--reset-state' by `ivy-resume'.
  485. With this, it's possible to e.g. "<f1> f", enter "for", navigate to
  486. "format" and press "C-g". Calling `ivy-resume' will point to "format"
  487. still.
  488. 2015-10-30 Oleh Krehel <ohwoeowho@gmail.com>
  489. Use a specific blending method for dark themes
  490. * colir.el (colir-blend): Use 'colir-compose-soft-light for dark themes.
  491. Fixes #278
  492. 2015-10-28 Oleh Krehel <ohwoeowho@gmail.com>
  493. Rename and move the minibuffer faces
  494. * swiper.el (swiper-minibuffer-match-face-1):
  495. (swiper-minibuffer-match-face-2):
  496. (swiper-minibuffer-match-face-3):
  497. (swiper-minibuffer-match-face-4): Transform into obsolete aliases.
  498. * ivy.el (ivy-minibuffer-match-face-1):
  499. (ivy-minibuffer-match-face-2):
  500. (ivy-minibuffer-match-face-3):
  501. (ivy-minibuffer-match-face-4): New renamed faces.
  502. (ivy-minibuffer-faces): Rename from `swiper-minibuffer-faces'.
  503. Fixes #276
  504. 2015-10-24 Oleh Krehel <ohwoeowho@gmail.com>
  505. counsel.el (counsel-git): Update default-directory
  506. 2015-10-23 Oleh Krehel <ohwoeowho@gmail.com>
  507. ivy-immediate-done should use ivy--directory
  508. * ivy.el (ivy-immediate-done): When completing file names, expand the
  509. file name properly.
  510. Fixes #275
  511. 2015-10-23 Oleh Krehel <ohwoeowho@gmail.com>
  512. swiper.el (swiper-font-lock-ensure): Amend exception list
  513. Re #19
  514. 2015-10-22 Oleh Krehel <ohwoeowho@gmail.com>
  515. ivy.el (ivy-alt-done): Fix up last commit
  516. 2015-10-22 Oleh Krehel <ohwoeowho@gmail.com>
  517. "C-j" should not stop completion for a pasted file path
  518. * ivy.el (ivy-alt-done): If you paste a file path, it won't match
  519. anything in the current directory. Previously, "C-j" would open dired
  520. for that path. Now, "C-j" will switch to the pasted directory and
  521. continue completion.
  522. This behavior conforms to `ido-find-file'.
  523. 2015-10-22 Oleh Krehel <ohwoeowho@gmail.com>
  524. Fix pasting file paths on Windows
  525. * ivy.el (ivy--exhibit): Update.
  526. Fixes #272
  527. 2015-10-22 Stephen Whipple <shw@wicdmedia.org>
  528. Fix Custom menus
  529. Custom menus for `ivy-virtual-abbreviate' and `ivy-sort-functions-alist'
  530. now display a better user interface.
  531. Fixes #274
  532. 2015-10-20 Oleh Krehel <ohwoeowho@gmail.com>
  533. Add a test for the perfect match logic
  534. Re #270
  535. 2015-10-20 Oleh Krehel <ohwoeowho@gmail.com>
  536. Bring back the lost perfect match logic
  537. * ivy.el (ivy--recompute-index): Don't defer the perfect match logic to
  538. `ivy-index-functions-alist'.
  539. (ivy-recompute-index-swiper): Simplify.
  540. Once again, if the minibuffer text becomes `equal' to one of the
  541. candidates, that candidate will be selected.
  542. Fixes #270
  543. 2015-10-20 Oleh Krehel <ohwoeowho@gmail.com>
  544. ivy.el (ivy-resume): Pass caller
  545. Fixes #245
  546. 2015-10-19 Oleh Krehel <ohwoeowho@gmail.com>
  547. ivy.el (ivy-partial): Fix for fuzzy completion
  548. Postfix doesn't always work if the completion is fuzzy, so check if
  549. `string-match' succeeds.
  550. Fixes #266
  551. 2015-10-19 Oleh Krehel <ohwoeowho@gmail.com>
  552. Fix the count in user-specified counsel-git-grep
  553. * counsel.el (counsel--gg-count): Generate the count command from
  554. `counsel-git-grep-cmd' by replacing "--full-name" with "-c".
  555. Re #244
  556. 2015-10-18 Oleh Krehel <ohwoeowho@gmail.com>
  557. ivy.el (ivy-sort-functions-alist): Upgrade to defcustom
  558. Add the proper :type.
  559. 2015-10-17 Oleh Krehel <ohwoeowho@gmail.com>
  560. ivy.el (ivy-extra-directories): Improve :type
  561. 2015-10-16 Jon Miller <jonEbird@gmail.com>
  562. counsel.el (counsel-ag): Add initial-directory
  563. Support alternative initial directory which helps other packages call
  564. this function with their unique starting directory.
  565. 2015-10-16 Oleh Krehel <ohwoeowho@gmail.com>
  566. Don't re-anchor to matching old candidate if flx is on
  567. * ivy.el (ivy--recompute-index): If `flx' is in position to select the
  568. "best" candidate, don't re-anchor to the still-matching previous
  569. candidate.
  570. Fixes #263
  571. 2015-10-15 Oleh Krehel <ohwoeowho@gmail.com>
  572. Add feedback for long-running async processes
  573. * counsel.el (counsel--async-time): New defvar.
  574. (counsel--async-filter): New defun.
  575. (counsel--async-command): Use `counsel--async-filter'.
  576. Each time 0.5s pass after the last input, if the external process hasn't
  577. finished yet, update minibuffer with the amount of candidates collected
  578. so far. This is useful to see that long running commands like
  579. `counsel-locate' or `counsel-ag' (when in a very large directory) aren't
  580. stuck.
  581. 2015-10-14 Oleh Krehel <ohwoeowho@gmail.com>
  582. ivy-test.el (swiper--re-builder): Update
  583. Due to last commit
  584. 2015-10-14 Oleh Krehel <ohwoeowho@gmail.com>
  585. swiper.el (swiper--re-builder): Fix "^a" -> "^" case
  586. Fixes #262
  587. 2015-10-14 Oleh Krehel <ohwoeowho@gmail.com>
  588. Adjust the swiper regexp builder for the display change
  589. * swiper.el (swiper--re-builder): Update. The old re-builder was for
  590. when the line numbers were part of the candidates. Now the line
  591. numbers are the text properties of the candidates.
  592. Fixes #262
  593. 2015-10-14 Oleh Krehel <ohwoeowho@gmail.com>
  594. Try to fix the previous commit
  595. * ivy.el (ivy--exhibit): Update.
  596. Sometimes the cursor randomly moves to the start of the read-only prompt
  597. and it's impossible to move it.
  598. 2015-10-14 Oleh Krehel <ohwoeowho@gmail.com>
  599. Fix "C-x h" selection and "C-b" bug
  600. * ivy.el (ivy--exhibit): Add another `constrain-to-field'.
  601. This ensures that the point doesn't cross into the prompt text.
  602. Previously, there was a bug that pressing "C-b" once more when already
  603. at the start of the input set `ivy-text' to "", i.e. ignoring the
  604. minibuffer input.
  605. 2015-10-14 Oleh Krehel <ohwoeowho@gmail.com>
  606. Fix window selection in counsel-locate
  607. * counsel.el (counsel-locate): Use `with-ivy-window'.
  608. 2015-10-14 Oleh Krehel <ohwoeowho@gmail.com>
  609. swiper.el (swiper-mc): Add and bind to "C-7"
  610. * swiper.el (swiper-map): Update.
  611. (swiper-mc): New command.
  612. (swiper--ivy): Use :action.
  613. (swiper--action): Update arglist.
  614. 2015-10-10 Oleh Krehel <ohwoeowho@gmail.com>
  615. ivy.el (ivy-case-fold-search): New defvar
  616. * ivy.el (ivy--reset-state): Set `ivy-case-fold-search' to 'auto.
  617. (ivy-toggle-case-fold): New command.
  618. (ivy--filter): Use `ivy-case-fold-search' to determine
  619. `case-fold-search'.
  620. * ivy-hydra.el (hydra-ivy): Bind "C" to `ivy-toggle-case-fold'.
  621. Fixes #259
  622. 2015-10-10 Oleh Krehel <ohwoeowho@gmail.com>
  623. ivy-count-format must be an empty string instead of nil
  624. Using an empty string is easier. No longer needed to check for nil when
  625. using `string-match', `concat' etc.
  626. * doc/Changelog.org: Update.
  627. * ivy.el (ivy-count-format): Update doc and customize type.
  628. (ivy--reset-state): Error if `ivy-count-format' nil is encountered.
  629. Fixes #257 Re #188
  630. 2015-10-09 Oleh Krehel <ohwoeowho@gmail.com>
  631. Fix the count when git-grep for "->foo"
  632. * counsel.el: For some reason, "-" gets interpreted in a bad way.
  633. Escaping it as "\-" makes it work fine.
  634. 2015-10-09 Oleh Krehel <ohwoeowho@gmail.com>
  635. ivy.el (ivy--recompute-index): Fixup
  636. Fixes #258
  637. 2015-10-09 Oleh Krehel <ohwoeowho@gmail.com>
  638. Don't reset the match to first if the current one still works
  639. * ivy.el (ivy--recompute-index): If the old match is still located in
  640. the current matches after the change in input, keep it selected.
  641. * ivy-test.el (ivy-read): Add test.
  642. Fixes #258
  643. 2015-10-09 Oleh Krehel <ohwoeowho@gmail.com>
  644. ivy.el (ivy-virtual-abbreviate): New defcustom
  645. * ivy.el (ivy--virtual-buffers): Update.
  646. Fixes #255
  647. 2015-10-08 Oleh Krehel <ohwoeowho@gmail.com>
  648. ivy-hydra.el (hydra-ivy): Make the docstring a rectangle
  649. 2015-10-08 Oleh Krehel <ohwoeowho@gmail.com>
  650. Move setq ivy--index to ivy--recompute-index
  651. * ivy.el (ivy--recompute-index): Move the setq statement here, so that
  652. the customization functions have less internal variables to deal with.
  653. (ivy-recompute-index-swiper): Update.
  654. (ivy-recompute-index-zero): Update.
  655. Re #253
  656. 2015-10-08 Oleh Krehel <ohwoeowho@gmail.com>
  657. ivy.el (ivy-index-functions-alist): New variable
  658. * ivy.el (ivy-state): Add `caller' field.
  659. (ivy-read): Add `caller' keyword arg; update docstring. Use
  660. `ivy--recompute-index'.
  661. (ivy--recompute-index): New defun, dispatch according to `caller' and
  662. `ivy-index-functions-alist'.
  663. (ivy-recompute-index-swiper): New defun.
  664. (ivy-recompute-index-zero): New defun.
  665. Fixes #253
  666. 2015-10-08 Oleh Krehel <ohwoeowho@gmail.com>
  667. swiper.el: Add a lot of avy declares
  668. 2015-10-08 Oleh Krehel <ohwoeowho@gmail.com>
  669. ivy.el (ivy-dispatching-call): Add and bind to "C-M-o"
  670. * ivy.el (ivy-minibuffer-map): Update.
  671. (ivy-read-action): New command.
  672. (ivy-dispatching-done): Update.
  673. * ivy-hydra.el (hydra-ivy): Bind `ivy-read-action' to "a".
  674. Re #254
  675. 2015-10-07 Oleh Krehel <ohwoeowho@gmail.com>
  676. Fix preselect for input "^"
  677. * ivy.el (ivy--filter): Update.
  678. Notably, e.g. `counsel-describe-variable' should properly preselect
  679. variable at point.
  680. 2015-10-07 Oleh Krehel <ohwoeowho@gmail.com>
  681. ivy.el (ivy-last): Update docstring
  682. 2015-10-07 Oleh Krehel <ohwoeowho@gmail.com>
  683. ivy.el (ivy-use-virtual-buffers): Update docstring
  684. 2015-10-07 Oleh Krehel <ohwoeowho@gmail.com>
  685. Default ivy-display-style to 'fancy for Emacs>=24.5
  686. * ivy.el (ivy-display-style): Update.
  687. 2015-10-07 Oleh Krehel <ohwoeowho@gmail.com>
  688. ivy.el (ivy-count-format): Extend customize choices
  689. 2015-10-07 Oleh Krehel <ohwoeowho@gmail.com>
  690. Fix ivy-state-preselect for file name completion
  691. * ivy.el (ivy--preselect-index): Add a check for null preselect.
  692. (ivy--filter): Use `ivy--preselect-index' instead of `cl-position'. The
  693. reason is that the collection contains e.g "foo/" while the preselect is
  694. "foo".
  695. 2015-10-07 Oleh Krehel <ohwoeowho@gmail.com>
  696. Fix "M-o k" when switching buffers
  697. * ivy.el (ivy-call): Check if (active-minibuffer-window) is non-nil
  698. before switching.
  699. 2015-10-07 Oleh Krehel <ohwoeowho@gmail.com>
  700. Adjust ivy-state-preselect for file name completion
  701. * ivy.el (ivy--reset-state): Since `ivy--index' is now recomputed more,
  702. `ivy-state-preselect' needs to be in the collection properly, so that
  703. `ivy--index' is set to preselect whenever the input is empty.
  704. 2015-10-07 Oleh Krehel <ohwoeowho@gmail.com>
  705. ivy.el (ivy--filter): Fix typo
  706. Re #253
  707. 2015-10-06 Oleh Krehel <ohwoeowho@gmail.com>
  708. ivy.el (ivy--filter): Anchor only for swiper
  709. * ivy-test.el (ivy-read): Add tests. Except for `swiper', when the input
  710. changes `ivy-index' should usually be 0.
  711. Fixes #231
  712. 2015-10-06 Oleh Krehel <ohwoeowho@gmail.com>
  713. ivy.el (ivy--insert-prompt): Use newlines instead of truncation
  714. When the prompt string is longer than window-width, insert newlines
  715. appropriately so that the whole prompt fits in the window without
  716. scrolling. Finally, when prompt+entered text would be larger than
  717. window-width, reformat the prompt so that entered text starts on a
  718. newline. When completing file names, move the whole path to a new line
  719. in that case.
  720. Fixes #252
  721. 2015-10-06 Oleh Krehel <ohwoeowho@gmail.com>
  722. Support hash tables in ivy-read
  723. * ivy.el (ivy--reset-state): `all-completions' also works fine for hash
  724. tables, so start using it.
  725. Hash tables as collections are rare. One example is "C-c C-w" in *rcirc*
  726. (`rcirc-cmd-whois').
  727. 2015-10-06 Oleh Krehel <ohwoeowho@gmail.com>
  728. swiper.el (swiper-font-lock-ensure): Exclude help-mode
  729. Fixes #248
  730. 2015-10-05 Oleh Krehel <ohwoeowho@gmail.com>
  731. Fix up visual-line-mode limitation logic
  732. * swiper.el (swiper-use-visual-line): New defvar.
  733. (swiper--candidates):
  734. (swiper--update-input-ivy):
  735. (swiper--action): Update.
  736. Re #227
  737. 2015-10-04 Oleh Krehel <ohwoeowho@gmail.com>
  738. swiper.el (swiper--candidates): Avoid line-move for large buffers
  739. Re #227
  740. 2015-10-04 PythonNut <PythonNut@users.noreply.github.com>
  741. swiper-avy: show avy hints in minibuffer as well
  742. 2015-10-03 Oleh Krehel <ohwoeowho@gmail.com>
  743. Fix "End of buffer" for swiper and visual-line-mode
  744. Fixes #247
  745. 2015-10-03 Oleh Krehel <ohwoeowho@gmail.com>
  746. Customize ivy-avy and fix compile warnings
  747. * ivy.el (ivy-avy): Require avy. Allow the user to customize `avy-keys',
  748. `avy-background' and `avy-style' (but prefer 'pre to 'at-full, since
  749. it doesn't obscure any letters). Don't issue an extra `ivy-call'.
  750. Fixes #246
  751. 2015-10-03 PythonNut <PythonNut@users.noreply.github.com>
  752. Implement ivy-avy
  753. 2015-10-02 Oleh Krehel <ohwoeowho@gmail.com>
  754. counsel.el (counsel--gg-count): Fix for "'" in query
  755. Since "'" is used for quoting in bash, it needs to be replaced with "''"
  756. .
  757. 2015-10-02 Oleh Krehel <ohwoeowho@gmail.com>
  758. Use forward-line instead of line-move if possible
  759. * swiper.el (swiper--candidates):
  760. (swiper--update-input-ivy):
  761. (swiper--action): `line-move' is much slower than `forward-line'. Use it
  762. only if `visual-line-mode' is on.
  763. 2015-10-02 Oleh Krehel <ohwoeowho@gmail.com>
  764. counsel.el (counsel--gg-candidates): Use counsel-git-grep-cmd
  765. 2015-10-02 Oleh Krehel <ohwoeowho@gmail.com>
  766. Fix counsel-git-grep not updating to 0 candidates
  767. * counsel.el (counsel--gg-candidates): `ivy--all-candidates' should not
  768. be nil in order for `ivy--exhibit' to update the minibuffer.
  769. 2015-10-02 Oleh Krehel <ohwoeowho@gmail.com>
  770. Make swiper compatible with visual-line-mode
  771. * swiper.el (swiper--candidates): Use `end-of-visual-line' and
  772. `line-move' appropriately.
  773. (swiper--update-input-ivy):
  774. (swiper--action): Use `line-move' instead of `forward-line'.
  775. (swiper--add-overlays): Update.
  776. Fixes #227
  777. 2015-10-02 Oleh Krehel <ohwoeowho@gmail.com>
  778. ivy.el (ivy-resume): Don't regexp-quote preselect
  779. `ivy--preselect-index' uses `cl-position' before trying to match regex,
  780. so the string needs to be as is.
  781. Fixes #245
  782. 2015-10-02 Oleh Krehel <ohwoeowho@gmail.com>
  783. ivy-hydra.el: Bind "t" to toggle-truncate-lines
  784. * ivy.el (ivy-format-function-default): When `truncate-lines' is non-nil
  785. don't truncate with "...".
  786. Use "C-o t" when you complete very long lines and want to see them
  787. whole.
  788. Fixes #214
  789. 2015-10-02 Oleh Krehel <ohwoeowho@gmail.com>
  790. ivy.el (ivy--reset-state): Less strict on :preselect
  791. 2015-10-02 Oleh Krehel <ohwoeowho@gmail.com>
  792. Specify shell command for counsel-git-grep with prefix arg
  793. * counsel.el (counsel-git-grep-cmd): New defvar.
  794. (counsel-git-grep-function): Use `counsel-git-grep-cmd'.
  795. (counsel-git-grep-cmd-history): New defvar.
  796. (counsel-git-grep): Update signature. When called with a prefix arg,
  797. prompt for a command reading from and recording to
  798. `counsel-git-grep-cmd-history'.
  799. Remember to use "M-i" to insert the current candidate into the
  800. minibuffer.
  801. Fixes #244
  802. 2015-09-30 Oleh Krehel <ohwoeowho@gmail.com>
  803. ivy.el (ivy-yank-word): Add only one space each time
  804. The previous behavior got in trouble with consecutive spaces.
  805. 2015-09-30 Oleh Krehel <ohwoeowho@gmail.com>
  806. ivy.el (ivy--regex-fuzzy): Add minibuffer highlighting
  807. * ivy-test.el (ivy--regex-fuzzy): Update test.
  808. Re #207
  809. 2015-09-30 Oleh Krehel <ohwoeowho@gmail.com>
  810. Add flx sorting
  811. * ivy.el (ivy--flx-cache): New defvar.
  812. (ivy--filter): Since flx is costly, move the caching to an earlier
  813. point. This means immediate return for when the input hasn't changed,
  814. i.e. for "C-n" or "C-p". When flx is installed, and
  815. (eq ivy--regex-function 'ivy--regex-fuzzy) for current function (through
  816. `ivy-re-builders-alist'), then sort the final candidates with
  817. `ivy--flx-sort'.
  818. (ivy--flx-sort): New defun. In the worst case when some error pops up
  819. return the same list. In the best case sort the `cands' that all match
  820. `name' by closeness to `name'.
  821. How to use: 1. Have flx installed - (require 'flx) should succeed. 2.
  822. Configure `ivy-re-builders-alist' appropriately to use
  823. `ivy--regex-fuzzy', for example:
  824. (setq ivy-re-builders-alist
  825. '((t . ivy--regex-fuzzy)))
  826. Fixes #207
  827. 2015-09-30 Oleh Krehel <ohwoeowho@gmail.com>
  828. ivy.el (ivy-call): "C-M-n" should not leave the minibuffer
  829. Make sure that the minibuffer window remains selected as long as the
  830. completion hasn't finished. For example, "<f1> f" to call
  831. `counsel-describe-function' input
  832. "forward" and spam "C-M-n" to read the doc for each function that starts
  833. with "forward". The *Help* window popup would move the window focus, but
  834. this change moves it back to the minibuffer.
  835. 2015-09-30 Oleh Krehel <ohwoeowho@gmail.com>
  836. Improve "C-g" out of a long-running async process
  837. * counsel.el (counsel-delete-process): New defun.
  838. (counsel-locate):
  839. (counsel-ag): Use `counsel-delete-process' as :unwind.
  840. 2015-09-30 Oleh Krehel <ohwoeowho@gmail.com>
  841. ivy.el (ivy--insert-prompt): Improve truncation
  842. Re #240
  843. 2015-09-29 Oleh Krehel <ohwoeowho@gmail.com>
  844. counsel.el (counsel-M-x): Don't rely on package-installed-p
  845. * counsel.el (counsel-M-x): Use `require' instead. `package-installed-p'
  846. may fail if package wasn't initialized.
  847. 2015-09-29 Oleh Krehel <ohwoeowho@gmail.com>
  848. counsel.el (counsel-ag-function): Improve for fancy faces
  849. Set `ivy--old-re' in order for fancy `ivy-display-style' to work.
  850. 2015-09-29 Oleh Krehel <ohwoeowho@gmail.com>
  851. counsel.el (counsel--find-symbol): Allow to jump back with pop-tag-mark
  852. Using "C-." in:
  853. - counsel-describe-function
  854. - counsel-describe-variable
  855. - counsel-load-library
  856. will change the current buffer. The buffer and point can be restored
  857. with "M-*" (`pop-tag-mark').
  858. I also recommend this binding:
  859. (global-set-key (kbd "M-,") 'pop-tag-mark)
  860. 2015-09-29 Oleh Krehel <ohwoeowho@gmail.com>
  861. swiper.el (swiper-font-lock-ensure): Add mu4e
  862. Re #19
  863. 2015-09-26 Oleh Krehel <ohwoeowho@gmail.com>
  864. ivy.el (ivy--insert-prompt): Avoid negative length error
  865. 2015-09-26 Oleh Krehel <ohwoeowho@gmail.com>
  866. Truncate minibuffer prompts longer than window-width
  867. * ivy.el (ivy--insert-prompt): When the prompt string is longer than the
  868. window width, truncate it to window width minus 26 chars.
  869. Fixes #240
  870. 2015-09-26 Oleh Krehel <ohwoeowho@gmail.com>
  871. Make ivy-display-style more compatible with 24.3
  872. * ivy.el (ivy--format-minibuffer-line): Use
  873. `font-lock-append-text-property' instead of
  874. `add-face-text-property'. It's not optimal, since the new face needs
  875. to be put in front, but at least it doesn't error out.
  876. 2015-09-26 Oleh Krehel <ohwoeowho@gmail.com>
  877. ivy.el (ivy--resize-minibuffer-to-fit): Make compatible with 24.3
  878. Fixes #220
  879. 2015-09-25 Oleh Krehel <ohwoeowho@gmail.com>
  880. swiper.el (swiper--ivy): Remove obsolete version check
  881. 2015-09-22 Julien Wietrich <julien.w6h@gmail.com>
  882. Fix minibuffer collapse in text mode emacs
  883. In graphic mode : resize-mini-windows is temporarily set to nil, the
  884. only value which does not collapse the minibuffer.
  885. In text mode : if resize-mini-windows is nil, it is temporarily set to
  886. 'grow-only (default emacs value).
  887. This prevent the minibuffer collapse in both graphic and text mode.
  888. In text mode it respects the user settings if it is already set to
  889. 'grow-only or t.
  890. Fix #237 in text mode emacs too.
  891. 2015-09-22 Oleh Krehel <ohwoeowho@gmail.com>
  892. swiper.el (swiper--ivy): Use minibuffer-allow-text-properties
  893. Using `minibuffer-allow-text-properties' makes Emacs not strip the text
  894. properties from the result of `read-from-minibuffer'. This is better
  895. because a function call result is used instead of a global var to pass
  896. this info.
  897. 2015-09-19 Julien Wietrich <julien.w6h@gmail.com>
  898. Revert multiple frames workaround
  899. Since SHA:d8d7ed45f07b52ab63eca444f0e6fa03747fab9e workaround
  900. SHA:435f2b6edfe3ab517c9eda56c6351f0bcfdf3845 is no longer required.
  901. 2015-09-19 Julien Wietrich <julien.w6h@gmail.com>
  902. Fix minibuffer collapses to one line
  903. It happens since commit SHA:d374afea36df19b5d6b654adc6018b25d6c1d8f2
  904. when resize-mini-windows is set to true.
  905. It also happens when resize-mini-windows is set to 'grow-only (default)
  906. and multiple frames are open.
  907. (Although SHA:435f2b6edfe3ab517c9eda56c6351f0bcfdf3845 work around it)
  908. Temporarily bind `resize-mini-windows' to nil before calling
  909. `read-from-minibuffer'.
  910. Fix #237 and #229
  911. It might fix #77 although this need to be checked as I cannot reproduce
  912. it.
  913. 2015-09-18 PythonNut <PythonNut@users.noreply.github.com>
  914. Add autoloads to some important functions
  915. 2015-09-18 Oleh Krehel <ohwoeowho@gmail.com>
  916. ivy.el (ivy-switch-buffer): Make "M-o r" rename buffer
  917. * ivy.el (ivy--rename-buffer-action): New defun.
  918. Fixes #233
  919. 2015-09-18 Oleh Krehel <ohwoeowho@gmail.com>
  920. Make "<left>" and "<right>" behave as in fundamental-mode
  921. Fixes #232
  922. 2015-09-15 Oleh Krehel <ohwoeowho@gmail.com>
  923. Add work-around for minibuffer not re-sizing for many frames
  924. * ivy.el (ivy--minibuffer-setup): When `truncate-lines' is set, it works
  925. fine for one graphic frame, but not for two (unknown why); add a
  926. work-around.
  927. Fixes #229
  928. 2015-09-13 Oleh Krehel <ohwoeowho@gmail.com>
  929. counsel.el (counsel-yank-pop): Add autoload
  930. 2015-09-12 Oleh Krehel <ohwoeowho@gmail.com>
  931. ivy.el (ivy-format-function-default): Fix boundp bug
  932. Fixes #225
  933. 2015-09-12 Oleh Krehel <ohwoeowho@gmail.com>
  934. counsel.el (counsel-yank-pop-truncate): Add group
  935. 2015-09-12 Oleh Krehel <ohwoeowho@gmail.com>
  936. swiper.el (swiper--ivy): Fix compiler warning
  937. 2015-09-11 Oleh Krehel <ohwoeowho@gmail.com>
  938. counsel.el (counsel-yank-pop): New command
  939. * counsel.el (counsel-yank-pop-truncate): New defcustom. Choose whether
  940. to truncate strings over 4 lines.
  941. (counsel-yank-pop-action): New defun.
  942. Fixes #218
  943. 2015-09-11 Oleh Krehel <ohwoeowho@gmail.com>
  944. Make line numbers in swiper into display properties
  945. * swiper.el (swiper--candidates): Each candidate is now a single space
  946. plus the original string. The display property of the single space
  947. holds the line number. This means that it's no longer possible to
  948. match line numbers in queries. Also, the preselect of the current line
  949. is slightly worse (in case there are two identical lines in a buffer).
  950. (swiper--ivy): Update the preselect to not include the line number.
  951. Also, call `ivy--action' on `ivy-current' instead of `res', because
  952. `res' doesn't have the string property that points to the line number.
  953. (swiper--update-input-ivy): Update.
  954. (swiper--action): Update.
  955. Fixes #224
  956. 2015-09-11 Oleh Krehel <ohwoeowho@gmail.com>
  957. Set truncate-lines in the minibuffer
  958. * ivy.el (ivy--minibuffer-setup): Update.
  959. (ivy-format-function-default): Check `truncate-lines'. Check if
  960. `fringe-mode' is bound.
  961. Fixes #223
  962. 2015-09-10 Oleh Krehel <ohwoeowho@gmail.com>
  963. ivy.el (ivy--resize-minibuffer-to-fit): Make compatible with 24.3
  964. Re #220
  965. 2015-09-10 Oleh Krehel <ohwoeowho@gmail.com>
  966. ivy.el (ivy-format-function-default): Handle fringe-mode 0
  967. Fixes #219
  968. 2015-09-09 Oleh Krehel <ohwoeowho@gmail.com>
  969. counsel.el (counsel-unicode-char): Add own history
  970. Also make "C-M-n", "C-M-p", and `ivy-resume' work properly.
  971. 2015-09-08 Oleh Krehel <ohwoeowho@gmail.com>
  972. Fix up the "foo ! bar" matching and highlighting
  973. * ivy.el (ivy--filter): When regex returned is a list, use only the
  974. first string part.
  975. * swiper.el (swiper--update-input-ivy): When regex returned is a list,
  976. use only the first string part.
  977. 2015-09-08 Oleh Krehel <ohwoeowho@gmail.com>
  978. Move swiper-minibuffer-faces to ivy.el
  979. Fixes #217
  980. 2015-09-07 Oleh Krehel <ohwoeowho@gmail.com>
  981. Declare some SLIME functions
  982. * counsel.el (slime-symbol-start-pos):
  983. (slime-symbol-end-pos):
  984. (slime-contextual-completions): Declare.
  985. 2015-09-07 Oleh Krehel <ohwoeowho@gmail.com>
  986. counsel.el (counsel-git-grep-function): Fix up
  987. Set `ivy--old-re' for the benefit of fancy minibuffer faces.
  988. 2015-09-07 Oleh Krehel <ohwoeowho@gmail.com>
  989. Make the minibuffer faces look nicer
  990. * ivy.el (ivy-current-match): Update background and add white
  991. foreground for light themes. Update background and add black
  992. foreground for dark themes.
  993. (ivy--add-face): If a face has an explicit foreground, add it ahead,
  994. with no blending. Blend the background as usual.
  995. * swiper.el (swiper-minibuffer-match-face-1):
  996. (swiper-minibuffer-match-face-2): Update the background for light
  997. themes.
  998. (swiper-minibuffer-match-face-4): Update the background for dark themes.
  999. 2015-09-06 Oleh Krehel <ohwoeowho@gmail.com>
  1000. Add default values for minibuffer faces
  1001. * swiper.el (swiper-minibuffer-match-face-1):
  1002. (swiper-minibuffer-match-face-2):
  1003. (swiper-minibuffer-match-face-3):
  1004. (swiper-minibuffer-match-face-4): Update.
  1005. Re #215
  1006. 2015-09-04 Oleh Krehel <ohwoeowho@gmail.com>
  1007. ivy.el (ivy--format-minibuffer-line): Fix nil regexp
  1008. 2015-09-04 Oleh Krehel <ohwoeowho@gmail.com>
  1009. Make ivy-current blend correctly for fancy minibuffer
  1010. * ivy.el (ivy--format-minibuffer-line): Stop setting :height - it messes
  1011. with blending. Also, the minibuffer height issue was fixed in an
  1012. earlier pull request.
  1013. (ivy--format): Call `ivy--add-face' on modified string, not on the
  1014. original one.
  1015. 2015-09-04 Oleh Krehel <ohwoeowho@gmail.com>
  1016. ivy.el (ivy--format-minibuffer-line): Use add-face-text-property
  1017. 2015-09-04 Oleh Krehel <ohwoeowho@gmail.com>
  1018. Add extra faces for minibuffer highlighting
  1019. * swiper.el (swiper-minibuffer-match-face-1):
  1020. (swiper-minibuffer-match-face-2):
  1021. (swiper-minibuffer-match-face-3):
  1022. (swiper-minibuffer-match-face-4): New defface.
  1023. (swiper-minibuffer-faces): New defvar.
  1024. * ivy.el (ivy--format-minibuffer-line): New defun.
  1025. (ivy--format): Use `ivy--format-minibuffer-line'.
  1026. 2015-09-03 Oleh Krehel <ohwoeowho@gmail.com>
  1027. ivy.el (ivy-display-style): New defcustom
  1028. * ivy.el (ivy--format): Add additional highlighting for the minibuffer,
  1029. similar to `swiper', when `ivy-display-style' is set to 'fancy.
  1030. Fixes #212
  1031. 2015-08-31 Oleh Krehel <ohwoeowho@gmail.com>
  1032. counsel.el (counsel-cl): New command
  1033. * counsel.el (counsel--el-action): Add `with-ivy-window' wrapper.
  1034. 2015-08-25 Oleh Krehel <ohwoeowho@gmail.com>
  1035. counsel.el (counsel--py-action): Work with "C-M-n"
  1036. * counsel.el (counsel--py-action): Include the inserted parens in to
  1037. bounds, so that "C-M-n", "C-M-p" and `ivy-resume' work.
  1038. 2015-08-25 Oleh Krehel <ohwoeowho@gmail.com>
  1039. counsel.el (counsel-jedi): New command
  1040. * counsel.el (counsel--py-action): New defun.
  1041. Add a few declares as well.
  1042. 2015-08-21 Oleh Krehel <ohwoeowho@gmail.com>
  1043. Add swiper-multi command
  1044. * swiper.el (swiper-multi-buffers): New defvar.
  1045. (swiper-multi-candidates): New defvar.
  1046. (swiper-multi-prompt): New defun.
  1047. (swiper-multi-action-1): New defun.
  1048. (swiper-multi-action-2): New defun.
  1049. Fixes #182.
  1050. Basic usage tips for selecting multiple buffers:
  1051. - Use "C-M-m" (`ivy-call') to add or remove one more buffer without
  1052. exiting.
  1053. - Use "C-m" (`ivy-done') to add one last buffer.
  1054. - Or use "C-M-j" (`ivy-immediate-done') to finish without adding more
  1055. buffers.
  1056. - Hold "C-M-n" (`ivy-next-line-and-call') to add a lot of buffers at
  1057. once.
  1058. 2015-08-20 Oleh Krehel <ohwoeowho@gmail.com>
  1059. counsel.el (counsel-org-tag): Now works in agenda
  1060. * counsel.el (counsel-org--set-tags): New defun.
  1061. (counsel-org-tag-action): Update.
  1062. When on an agenda item, add/remove tags for that item.
  1063. When any agenda items are marked with "m", add selected tags to all
  1064. items, with no duplicates.
  1065. Fixed the bug of setting tags to "::" sometimes. Fixed "C-M-j" not
  1066. exiting.
  1067. Fixes #200
  1068. 2015-08-18 Felix Lange <fjl@twurst.com>
  1069. ivy: enlarge the minibuffer window if the candiate list doesn't fit
  1070. Fixes #161 Fixes #198
  1071. 2015-08-18 Oleh Krehel <ohwoeowho@gmail.com>
  1072. Set line-spacing to 0 in the minibuffer
  1073. * ivy.el (ivy--minibuffer-setup): Update.
  1074. Fixes #198
  1075. 2015-08-14 Oleh Krehel <ohwoeowho@gmail.com>
  1076. ivy.el (ivy-kill-ring-save): Add and bind to "M-w"
  1077. Fixes #197
  1078. 2015-08-12 Oleh Krehel <ohwoeowho@gmail.com>
  1079. ivy.el (ivy-completing-read): Fix up last commit
  1080. Check if string before using `string-match'.
  1081. 2015-08-12 Oleh Krehel <ohwoeowho@gmail.com>
  1082. When initial input contains a plus, escape it
  1083. * ivy.el (ivy-completing-read): Escape the plus in the initial input,
  1084. for it to not be interpreted like a regex.
  1085. Fixes #195
  1086. 2015-08-12 Tassilo Horn <tsdh@gnu.org>
  1087. Fix #126 again.
  1088. After #126 has been solved, the regexp has been changed to
  1089. "\\`[`']?\\(.*\\)'?\\'"
  1090. where the trailing ' is optional ("'?"). However, the preceeding
  1091. "\\(.*\\)" group will already capture the trailing ' because .* is
  1092. greedy. Now I've replaced it with the non-greedy .*? which makes it
  1093. work again.
  1094. 2015-08-07 Oleh Krehel <ohwoeowho@gmail.com>
  1095. Fix :dynamic-collection not being sorted
  1096. * ivy.el (ivy--sort-maybe): New defun. If the current completion has
  1097. sorting enabled, try to find the sorting function either in :sort or
  1098. `ivy-sort-functions-alist'.
  1099. (ivy--exhibit): Use `ivy--sort-maybe'.
  1100. * counsel.el (counsel--async-sentinel): Use `ivy--sort-maybe'.
  1101. 2015-08-07 Oleh Krehel <ohwoeowho@gmail.com>
  1102. counsel-locate should use '' for the regex
  1103. * counsel.el (counsel-unquote-regex-parens): New defun.
  1104. (counsel-locate-function): Update.
  1105. (counsel-ag-function): Update.
  1106. Fixes #194
  1107. 2015-08-07 Chunyang Xu <xuchunyang56@gmail.com>
  1108. (counsel-locate): Support OS X
  1109. - OS X "open" is the equivalent to "xdg-open"
  1110. - OS X "locate" doesn't support "--regex"
  1111. 2015-08-06 Tassilo Horn <tsdh@gnu.org>
  1112. (counsel-locate): Allow customizing locate options
  1113. 2015-08-05 Oleh Krehel <ohwoeowho@gmail.com>
  1114. Fix up ivy-recentf and ivy-switch-buffer window-wise
  1115. * ivy.el (ivy--switch-buffer-action):
  1116. (ivy-recentf): Use `with-ivy-window'.
  1117. 2015-08-05 Oleh Krehel <ohwoeowho@gmail.com>
  1118. doc/Changelog.org: Add
  1119. 2015-08-05 Oleh Krehel <ohwoeowho@gmail.com>
  1120. counsel.el (counsel-find-file): Fix window focus issue
  1121. "C-M-n" should work fine now.
  1122. 2015-08-03 Oleh Krehel <ohwoeowho@gmail.com>
  1123. Preselect perfect matches with a leading ^
  1124. * ivy.el (ivy--filter): When e.g. "filter" is in the collection,
  1125. "^filter" input should always select it, even if other candidates
  1126. match.
  1127. 2015-08-01 Chunyang Xu <xuchunyang56@gmail.com>
  1128. Allow ivy-count-format to be set as nil
  1129. 2015-07-30 Oleh Krehel <ohwoeowho@gmail.com>
  1130. Add with-ivy-window macro
  1131. * ivy.el (with-ivy-window): New macro.
  1132. (ivy-yank-word): Update.
  1133. * swiper.el (swiper--window): Remove defvar.
  1134. (swiper-query-replace):
  1135. (swiper-avy):
  1136. (swiper-recenter-top-bottom):
  1137. (swiper--init):
  1138. (swiper--update-input-ivy):
  1139. (swiper--add-overlays): Update.
  1140. * counsel.el (counsel-git-grep-recenter):
  1141. (counsel-git-grep-action):
  1142. (counsel-M-x): Update.
  1143. (org-agenda-set-tags): Add a declare.
  1144. 2015-07-30 Oleh Krehel <ohwoeowho@gmail.com>
  1145. Bind "C-M-j" to ivy-immediate-done
  1146. * ivy.el (ivy-minibuffer-map): Update.
  1147. `ivy-immediate-done' will return with the current minibuffer input, even
  1148. if the input matches a candidate.
  1149. It was possible so far to call it with "C-u C-j".
  1150. Fixes #183
  1151. 2015-07-28 Oleh Krehel <ohwoeowho@gmail.com>
  1152. counsel.el (counsel-org-tag-agenda): New command
  1153. * counsel.el (counsel-org-tag-agenda): It's just a flet wrapper around
  1154. `org-agenda-set-tags', changing `org-set-tags' to `counsel-org-tag'.
  1155. (counsel-org-tag-action): Don't use `with-selected-window', since
  1156. `org-agenda-set-tags' will change the buffer for us.
  1157. Re #177
  1158. 2015-07-28 Oleh Krehel <ohwoeowho@gmail.com>
  1159. counsel.el (org-bound-and-true-p): Use bound-and-true-p
  1160. 2015-07-28 Oleh Krehel <ohwoeowho@gmail.com>
  1161. Add a few more Org declarations
  1162. Re #179
  1163. 2015-07-28 Oleh Krehel <ohwoeowho@gmail.com>
  1164. counsel.el (org-last-tags-completion-table): Declare
  1165. Re #179
  1166. 2015-07-28 Oleh Krehel <ohwoeowho@gmail.com>
  1167. counsel.el (org-setting-tags): Declare dynamic var
  1168. Re #179
  1169. 2015-07-28 Oleh Krehel <ohwoeowho@gmail.com>
  1170. swiper.el (swiper-from-isearch): New command
  1171. Fixes #180
  1172. 2015-07-28 Oleh Krehel <ohwoeowho@gmail.com>
  1173. counsel.el (org-bound-and-true-p): Update declare
  1174. 2015-07-27 Erik Hetzner <egh@e6h.org>
  1175. Use recoll -t instead of recollq
  1176. 2015-07-27 Oleh Krehel <ohwoeowho@gmail.com>
  1177. counsel.el (counsel-org-tag): Delete dups
  1178. The issue of duplicates arises from this setting (off by default):
  1179. (setq org-complete-tags-always-offer-all-agenda-tags t)
  1180. Re #177
  1181. 2015-07-27 Oleh Krehel <ohwoeowho@gmail.com>
  1182. counsel.el (counsel-recoll): Simplify
  1183. 2015-07-27 Oleh Krehel <ohwoeowho@gmail.com>
  1184. counsel.el (counsel-org-tag): No need to be at heading
  1185. * counsel.el (counsel-org-tag): When not at heading, move there. Save
  1186. excursion.
  1187. 2015-07-27 Oleh Krehel <ohwoeowho@gmail.com>
  1188. counsel.el (counsel-recoll): New command
  1189. * counsel.el (counsel-recoll-function): New function.
  1190. 2015-07-27 Oleh Krehel <ohwoeowho@gmail.com>
  1191. counsel.el (counsel-ag): New command
  1192. * counsel.el (counsel-ag-function): New defun.
  1193. (counsel-git-grep): Update prompt.
  1194. Going from sync to async now is as simple as:
  1195. - add :dynamic-collection t
  1196. - replace `shell-command-to-string' with `counsel--async-command'
  1197. 2015-07-27 Oleh Krehel <ohwoeowho@gmail.com>
  1198. Update :dynamic-collection to be a boolean
  1199. * ivy.el (ivy--exhibit): Always use `ivy-state-collection', instead of
  1200. possibly `ivy-state-dynamic-collection'. The collection function may
  1201. return nil if it's async and doesn't want to update the minibuffer on
  1202. exit (to update it later in the sentinel).
  1203. * counsel.el (counsel-more-chars): New defun.
  1204. (counsel-git-grep-function): Use `counsel-more-chars'; in the async
  1205. case, return nil.
  1206. (counsel-git-grep): Update :dynamic-collection to a boolean.
  1207. (counsel--gg-sentinel):
  1208. (counsel--async-sentinel): Update to set the candidates to "Error"
  1209. instead of message "Error" - a lot less distracting this way.
  1210. (counsel-locate-function): Use `counsel-more-chars'; return "Working",
  1211. since it takes a few seconds to complete a single locate query.
  1212. (counsel-locate): Update.
  1213. 2015-07-27 Oleh Krehel <ohwoeowho@gmail.com>
  1214. ivy.el (ivy--exhibit): Check if in post-command-hook
  1215. * ivy.el (ivy--exhibit): A situation can occur when an async command
  1216. calls `ivy--exhibit' in the sentinel. It causes problems when the
  1217. minibuffer has already exited with "C-g".
  1218. 2015-07-27 Oleh Krehel <ohwoeowho@gmail.com>
  1219. Simplify counsel-git-grep logic
  1220. * ivy.el (ivy--exhibit): Remove the condition on (eq ivy--full-length
  1221. -1).
  1222. * counsel.el (counsel-git-grep-function): Simplify.
  1223. (counsel-gg-state): New defvar. Use this instead of
  1224. (setq ivy--full-length -1).
  1225. (counsel--gg-candidates): Set `counsel-gg-state' to -2. There are two
  1226. async processes to wait for until `ivy--exhibit' can be called:
  1227. - get the candidate count
  1228. - get the candidates Each of the async processes will increase the
  1229. number, and call
  1230. `ivy--exhibit' if the number reaches 0.
  1231. (counsel--gg-sentinel): Update.
  1232. (counsel--gg-count): Update.
  1233. 2015-07-27 Oleh Krehel <ohwoeowho@gmail.com>
  1234. Fix "DEL" generating a "Quit" sometimes for counsel-git-grep
  1235. * ivy.el (ivy-backward-kill-word): It seems that `backward-kill-word' is
  1236. too elaborate; falling back to something simpler fixed the problem.
  1237. 2015-07-26 Oleh Krehel <ohwoeowho@gmail.com>
  1238. Allow "M-o j" to switch to virtual buffers in other window
  1239. * ivy.el (ivy--switch-buffer-other-window-action): New defun.
  1240. (ivy-set-actions): Use `ivy--switch-buffer-other-window-action' instead
  1241. of `switch-to-buffer-other-window'.
  1242. 2015-07-24 Oleh Krehel <ohwoeowho@gmail.com>
  1243. counsel.el (counsel-org-change-tags): Improve removing tags
  1244. 2015-07-24 Oleh Krehel <ohwoeowho@gmail.com>
  1245. Fixup counsel-org-tag
  1246. * counsel.el (counsel-org-tag-action): Add ::
  1247. (counsel-org-tag): Set `org-last-tags-completion-table', otherwise
  1248. `org-tags-completion-function' doesn't work.
  1249. 2015-07-24 Oleh Krehel <ohwoeowho@gmail.com>
  1250. counsel.el (counsel-org-tag): Replace org-set-tags
  1251. * counsel.el (counsel-org-tags): New defvar.
  1252. (counsel-org-change-tags): New defun, adapted from part of
  1253. `org-set-tags'.
  1254. (counsel-org-tag-action): New defun.
  1255. (counsel-org-tag-prompt): New defun.
  1256. (counsel-org-tag): New command.
  1257. **Using counsel-org-tag**
  1258. - The prompt is auto-updated to the currently selected tags.
  1259. - Selecting one of the already selected tags removes it from selection.
  1260. The best shortcut for selecting/removing multiple tags is "C-M-m" (or
  1261. "g" when the "C-o" hydra is active).
  1262. Re #177 Re #91
  1263. 2015-07-24 Oleh Krehel <ohwoeowho@gmail.com>
  1264. ivy.el (ivy-call): Remove with-selected-window
  1265. * counsel.el (counsel-git-grep-action): Add with-selected-window.
  1266. * ivy.el (ivy-dispatching-done): Remove trailing ": ".
  1267. (ivy-switch-buffer): Add extra action "j" calls
  1268. `switch-to-buffer-other-window'. The change `ivy-dispatching-done' had
  1269. to be done because of this.
  1270. 2015-07-24 Oleh Krehel <ohwoeowho@gmail.com>
  1271. Add actions for counsel-describe-function
  1272. 2015-07-24 Oleh Krehel <ohwoeowho@gmail.com>
  1273. Add actions for counsel-describe-variable
  1274. 2015-07-23 Oleh Krehel <ohwoeowho@gmail.com>
  1275. ivy.el (ivy-dispatching-done): Add a trailing newline
  1276. 2015-07-23 Oleh Krehel <ohwoeowho@gmail.com>
  1277. ivy.el (ivy-dispatching-done): Display the candidate
  1278. 2015-07-23 Oleh Krehel <ohwoeowho@gmail.com>
  1279. Allow "C-g" to interrupt ivy-dispatching-done
  1280. * ivy.el (ivy-dispatching-done): Update.
  1281. 2015-07-23 Oleh Krehel <ohwoeowho@gmail.com>
  1282. ivy.el (ivy--preselect-index): Add matcher to arglist
  1283. * ivy.el (ivy--reset-state): Call `ivy--preselect-index' with matcher.
  1284. (ivy--preselect-index): In case there's a special matcher set, it
  1285. affects the candidate list, therefore it affects the preselect index.
  1286. Fixes #165
  1287. 2015-07-23 Oleh Krehel <ohwoeowho@gmail.com>
  1288. ivy.el (ivy-dispatching-done): New command on "M-o"
  1289. * ivy.el (ivy-minibuffer-map): Bind "M-o" to `ivy-dispatching-done'.
  1290. (ivy-action-name): Update, all actions are now in hydra's format - key
  1291. binding, command, hint.
  1292. (ivy-read): The default action is bound to "o" in the dispatch.
  1293. (ivy-switch-buffer): Update to new action format.
  1294. * counsel.el (counsel-locate):
  1295. (counsel-rhythmbox): Update to new action format.
  1296. The new interface allows to do whatever you want with the selected
  1297. candidate with a very short key binding.
  1298. The old interface with "C-o w/s" still works, but:
  1299. - it gives a lot more info than necessary for only selecting action
  1300. - doesn't scale well with the number of actions: for 10 actions you
  1301. would cycle "w/s" a lot.
  1302. Example with `ivy-switch-buffer':
  1303. - switch to selected buffer: "C-m"
  1304. - kill selected buffer: "M-o k"; you get a hint right after "M-o".
  1305. When there is only one action, "M-o" will forward to "C-m".
  1306. 2015-07-22 Oleh Krehel <ohwoeowho@gmail.com>
  1307. ivy.el (ivy-call): Add selected-window work-around for M-x
  1308. * ivy.el (ivy-call): For some commands that depend on the buffer, like
  1309. `counsel-git-grep' the action needs to be performed in
  1310. `ivy-state-window'. However, this results in wrong window for M-x calc.
  1311. Add a workaround until I figure out why this happens.
  1312. Fixes #176
  1313. 2015-07-21 Oleh Krehel <ohwoeowho@gmail.com>
  1314. ivy-hydra.el: Add featurep for hydra
  1315. Fixes #174
  1316. 2015-07-21 Oleh Krehel <ohwoeowho@gmail.com>
  1317. counsel.el (counsel-variable-list): Add
  1318. * counsel.el (counsel-describe-variable): Use `counsel-variable-list'.
  1319. 2015-07-21 Oleh Krehel <ohwoeowho@gmail.com>
  1320. swiper.el: Update avy--goto -> avy-action-goto
  1321. 2015-07-14 Oleh Krehel <ohwoeowho@gmail.com>
  1322. swiper.el (swiper-font-lock-ensure): Ignore Man-mode
  1323. 2015-07-13 Oleh Krehel <ohwoeowho@gmail.com>
  1324. ivy.el (ivy-call): Bind to "C-M-m" or "M-RET"
  1325. "C-M-m" is close to "C-M-n" and "C-M-p", just as "M-RET" is close to
  1326. "RET". Previously, the only binding was "C-o g".
  1327. 2015-07-13 Oleh Krehel <ohwoeowho@gmail.com>
  1328. ivy.el (ivy-count-format): Improve docstring
  1329. * ivy.el (ivy-minibuffer-grow):
  1330. (ivy-toggle-calling):
  1331. (ivy-sort-functions-alist): Checkdoc.
  1332. 2015-07-11 Erik Hetzner <egh@e6h.org>
  1333. Allow % in prompt string
  1334. - quote % when passing prompt from ivy-completing-read to ivy-read
  1335. - add documentation in ivy-read that all % should be quoted
  1336. 2015-07-10 Oleh Krehel <ohwoeowho@gmail.com>
  1337. counsel.el (counsel-rhythmbox-history): Add
  1338. * counsel.el (counsel-rhythmbox): Update.
  1339. 2015-07-09 Oleh Krehel <ohwoeowho@gmail.com>
  1340. ivy.el (ivy-read): Improve ivy-set-actions interaction
  1341. * ivy.el (ivy-read): When the base action is already a list, merge it
  1342. with the one obtained from `ivy-set-actions'.
  1343. 2015-07-09 Oleh Krehel <ohwoeowho@gmail.com>
  1344. Add counsel-rhythmbox
  1345. * counsel.el (counsel-completion-beg):
  1346. (counsel-completion-end): Move declarations before first use.
  1347. (dired-jump): Declare.
  1348. (counsel-rhythmbox-enqueue-song): New defun.
  1349. (counsel-rhythmbox): New command. Requires `helm-rhythmbox' package, and
  1350. Rhythmbox, obviously.
  1351. * ivy.el (ivy-call): Make interactive. Add special handling for the case
  1352. when the collection is an alist. In that case, call the action not
  1353. with the collection item, but with the cdr of said item. A bit weird,
  1354. but that's the way Helm does it, and doing it in the same way means
  1355. the action functions are cross-compatible.
  1356. * ivy-hydra.el (hydra-ivy): Bind "g" to call the current action on
  1357. current candidate without exiting.
  1358. Now it's possible to make a query to Rhythmbox, "C-o" and navigate to a
  1359. song with "j" and "k". Try the song with "g". Or use "s" once and then
  1360. enqueue different songs with e.g. "jjgjjjgjgkkg".
  1361. 2015-07-07 Oleh Krehel <ohwoeowho@gmail.com>
  1362. ivy.el (ivy--regex): Improve for trailing backslash
  1363. When there's a single trailing backslash, which would result in a bad
  1364. regex, ignore it.
  1365. 2015-07-06 Oleh Krehel <ohwoeowho@gmail.com>
  1366. Add a new interface to customize additional exit points
  1367. * ivy.el (ivy--actions-list): New defvar. Store the exit points per
  1368. command.
  1369. (ivy-set-actions): New defun. Use this to set the extra exit points for
  1370. each command.
  1371. (ivy-read): Account for `ivy--actions-list'.
  1372. (ivy-switch-buffer): Set extra action to kill the buffer. Update the
  1373. call to `ivy-read'.
  1374. * counsel.el (counsel-locate): Use the single action in the function and
  1375. customize the rest via `ivy-set-actions'.
  1376. Re #164
  1377. 2015-07-06 Oleh Krehel <ohwoeowho@gmail.com>
  1378. counsel.el (counsel-locate-history): Add
  1379. 2015-07-02 Oleh Krehel <ohwoeowho@gmail.com>
  1380. Update index formatting logic
  1381. * ivy.el (ivy--reset-state): Update.
  1382. (ivy--insert-prompt): Simplify.
  1383. If you want to see both the index and the length of the candidates,
  1384. instead of just the length, it can be done like this:
  1385. (setq ivy-count-format "%d/%d ")
  1386. Each "%d" is replaced appropriately due to the total length of the
  1387. candidates. For instance, this one can result in "%4d/%-4d M-x ".
  1388. Re #167
  1389. 2015-07-01 Oleh Krehel <ohwoeowho@gmail.com>
  1390. Allow to see the candidate index via ivy-count-format
  1391. * ivy.el (ivy--insert-prompt): Update.
  1392. To use this feature, use something like this:
  1393. (setq ivy-count-format "(%d/%d)")
  1394. Basically two number specifiers instead of the usual one. The problem
  1395. with this approach is that the prompt length will change as you scroll
  1396. e.g. from 9 to 10, which is uncomfortable.
  1397. Fixes #167
  1398. 2015-07-01 Oleh Krehel <ohwoeowho@gmail.com>
  1399. ivy.el (ivy--reset-state): Fixup
  1400. Re #165
  1401. 2015-07-01 Oleh Krehel <ohwoeowho@gmail.com>
  1402. ivy.el (ivy-read): Don't put empty string on history
  1403. 2015-07-01 Oleh Krehel <ohwoeowho@gmail.com>
  1404. Bind case-fold-search to t when the input is all lower-case
  1405. * ivy.el (ivy--filter): Update.
  1406. * ivy-test.el (ivy--filter): Add test.
  1407. - input "the" matches both "the" and "The".
  1408. - input "The" matches only "The".
  1409. Fixes #166
  1410. 2015-07-01 Oleh Krehel <ohwoeowho@gmail.com>
  1411. ivy.el (ivy--reset-state): Fixup
  1412. 2015-07-01 Oleh Krehel <ohwoeowho@gmail.com>
  1413. Make ffap work again
  1414. * ivy.el (ivy--reset-state): When completing files, consider the case
  1415. when the directory of PRESELECT isn't `default-directory'.
  1416. Fixes #165
  1417. 2015-06-30 Oleh Krehel <ohwoeowho@gmail.com>
  1418. ivy.el (ivy-switch-buffer): Add a multi-action interface
  1419. While in "C-o":
  1420. - Use "s" to make "C-m", "C-j", "C-M-n" and "C-M-p" kill
  1421. - Use "w" to switch back to normal.
  1422. Re #164
  1423. 2015-06-30 Oleh Krehel <ohwoeowho@gmail.com>
  1424. Add a multi-action interface for counsel-locate
  1425. * ivy-hydra.el (hydra-ivy): Display the current action and allow to
  1426. scroll the action list with "w" and "s".
  1427. * ivy.el (ivy--get-action): New defun, a getter for the action function,
  1428. since it can also be a list now.
  1429. (ivy--actionp): New defun, checks for the action list.
  1430. (ivy-next-action): New command, scrolls to the next action in the list.
  1431. (ivy-prev-action): New command, scrolls to the previous action in the
  1432. list.
  1433. (ivy-action-name): New defun.
  1434. (ivy-call): Use `ivy--get-action'.
  1435. (ivy-read): Use `ivy--get-action'.
  1436. 2015-06-30 Oleh Krehel <ohwoeowho@gmail.com>
  1437. Fixup the last two commits
  1438. * counsel.el (counsel-find-file): Update.
  1439. * ivy.el (ivy--buffer-list): Update.
  1440. Re #164
  1441. 2015-06-30 Oleh Krehel <ohwoeowho@gmail.com>
  1442. Add a custom keymap for counsel-find-file
  1443. * counsel.el (counsel-find-file-map): New defvar.
  1444. Re #164
  1445. 2015-06-30 Oleh Krehel <ohwoeowho@gmail.com>
  1446. Add a custom keymap for ivy-switch-buffer
  1447. * ivy.el (ivy-switch-buffer-map): New defvar.
  1448. Re #164
  1449. 2015-06-30 Oleh Krehel <ohwoeowho@gmail.com>
  1450. ivy.el (ivy-restrict-to-matches): Add and bind to "S-SPC"
  1451. 2015-06-30 Oleh Krehel <ohwoeowho@gmail.com>
  1452. Make counsel-locate use a process
  1453. * counsel.el (counsel-locate-function): Update.
  1454. (counsel--async-command): New defun.
  1455. (counsel--async-sentinel): New defun.
  1456. (counsel-locate): Switch to :action, thus allowing "C-M-n" and
  1457. `ivy-resume'.
  1458. * swiper.el: Bump version.
  1459. 2015-06-29 Oleh Krehel <ohwoeowho@gmail.com>
  1460. ivy-hydra.el (hydra-ivy): Bind "C-o" to be a toggle
  1461. It makes sense for "C-o" to be a toggle, instead of just going one way.
  1462. 2015-06-29 Oleh Krehel <ohwoeowho@gmail.com>
  1463. Make counsel-el work with "C-M-n" and "C-M-p"
  1464. * counsel.el (counsel-el): Use the whole obarray if no initial input is
  1465. given. Filter out only function when appropriate.
  1466. (counsel-completion-beg): New defvar.
  1467. (counsel-completion-end): New defvar.
  1468. (counsel--el-action): New defun.
  1469. * ivy.el (ivy--reset-state): Set `ivy--full-length' to nil.
  1470. 2015-06-26 Oleh Krehel <ohwoeowho@gmail.com>
  1471. Fix the initial input bug introduced with "C-r"
  1472. * ivy.el (ivy-read): Use (ivy-state-initial-input ivy-last).
  1473. (ivy--reset-state): Set (ivy-state-initial-input ivy-last).
  1474. Fixes #162
  1475. 2015-06-25 Oleh Krehel <ohwoeowho@gmail.com>
  1476. counsel.el (counsel-find-file): Use `file-name-history'
  1477. * counsel.el (package-installed-p): Declare.
  1478. 2015-06-25 Oleh Krehel <ohwoeowho@gmail.com>
  1479. counsel.el (counsel-git-grep-history): New defvar
  1480. * counsel.el (counsel-git-grep): Use `counsel-git-grep-history'.
  1481. 2015-06-25 Oleh Krehel <ohwoeowho@gmail.com>
  1482. swiper.el (swiper-history): New defvar
  1483. * swiper.el (swiper--ivy): Use `swiper-history'.
  1484. Allows to get more use of "M-p", "M-n" and "C-r".
  1485. 2015-06-25 Oleh Krehel <ohwoeowho@gmail.com>
  1486. Allow to recursively match history with "C-r"
  1487. * ivy.el (ivy-minibuffer-map): Rebind "C-r" from
  1488. `ivy-previous-line-or-history' to `ivy-reverse-i-search'. "C-r"
  1489. binding was redundant, since "C-p" does almost the same.
  1490. (ivy-read): Separate the functionality that sets the global state based
  1491. on `ivy-last'.
  1492. (ivy--reset-state): New defun. Move all the global state setup here.
  1493. (ivy-reverse-i-search): New command. This is very similar to "C-r" in
  1494. bash - allows to match for history elements, instead of just scrolling
  1495. through them with "M-p" and "M-n".
  1496. 2015-06-25 Oleh Krehel <ohwoeowho@gmail.com>
  1497. Fixup compilation warnings related to smex
  1498. 2015-06-23 Oleh Krehel <ohwoeowho@gmail.com>
  1499. counsel.el (counsel-unicode-char): Use action-style call
  1500. Fixes #160
  1501. 2015-06-23 Oleh Krehel <ohwoeowho@gmail.com>
  1502. counsel.el (counsel-load-theme): New command
  1503. 2015-06-23 Oleh Krehel <ohwoeowho@gmail.com>
  1504. counsel.el (counsel-M-x): Avoid compilation warning
  1505. * counsel.el (counsel-M-x): Use `command-execute' instead of
  1506. `execute-extended-command'.
  1507. 2015-06-23 Oleh Krehel <ohwoeowho@gmail.com>
  1508. Fix last commit being incompatible with older Emacs
  1509. * ivy.el (ivy--format): Use `add-face-text-property' only when it's
  1510. bound.
  1511. 2015-06-23 Oleh Krehel <ohwoeowho@gmail.com>
  1512. Fix color blending for composite faces
  1513. colir.el (colir-blend-face-background): Try to find the face among the
  1514. properties.
  1515. Re #151
  1516. 2015-06-23 Oleh Krehel <ohwoeowho@gmail.com>
  1517. Re-scale the text height to default in the minibuffer
  1518. * ivy.el (ivy--format): Set the string height to default and turn off
  1519. overline, so that exactly `ivy-height' lines are visible, not less.
  1520. Fixes #151
  1521. 2015-06-22 Oleh Krehel <ohwoeowho@gmail.com>
  1522. ivy-hydra.el (hydra-ivy): Bind "C-g"
  1523. To make sure that "C-g" really exits the hydra.
  1524. 2015-06-22 Oleh Krehel <ohwoeowho@gmail.com>
  1525. ivy.el (ivy-initial-inputs-alist): Add some Org commands
  1526. * ivy.el (ivy-initial-inputs-alist): Add `org-agenda-refile' and
  1527. `org-capture-refile'.
  1528. Fixes #156
  1529. 2015-06-19 Kaushal Modi <kaushal.modi@gmail.com>
  1530. Fix the case where file name can contain ~
  1531. - The fix make opening files like init.el~ now possible. Earlier,
  1532. hitting that last ~ char switch the dir to ~/
  1533. - This commit will now make that cd to ~/ only if ~ is the first char in
  1534. the search term
  1535. 2015-06-19 Greg Lucas <greg@glucas.net>
  1536. Match drive letter at start of current directory
  1537. When looking for the root of the current drive, make sure we only match
  1538. a drive letter at the beginning of the path.
  1539. 2015-06-19 Greg Lucas <greg@glucas.net>
  1540. Add support for Windows drive letters
  1541. 2015-06-19 Oleh Krehel <ohwoeowho@gmail.com>
  1542. Improve performance for "^" initial input
  1543. ivy.el (ivy--filter): There's no need to anchor when the previous regex
  1544. is "^" (matches everything). The result will be index 0 anyway, but
  1545. without this optimization it can be slow for ~30k candidates.
  1546. 2015-06-19 Oleh Krehel <ohwoeowho@gmail.com>
  1547. ivy.el (ivy-alt-done): Enable recursive minibuffers
  1548. Re #145
  1549. 2015-06-19 Oleh Krehel <ohwoeowho@gmail.com>
  1550. ivy.el (ivy-alt-done): Find file if given a full tramp path
  1551. * ivy.el (ivy-alt-done): Add another cond branch for `ivy-text' matching
  1552. a full remote file path.
  1553. Re #145
  1554. 2015-06-19 Oleh Krehel <ohwoeowho@gmail.com>
  1555. Don't cut off "/ssh:foo" input
  1556. * ivy.el (ivy-alt-done): With the example input, offer a completion for
  1557. known remotes with the initial input "foo".
  1558. Re #145
  1559. 2015-06-19 Oleh Krehel <ohwoeowho@gmail.com>
  1560. Add better positioning to counsel-git-grep finalizer
  1561. counsel.el (counsel-git-grep-action): Use a regex instead of just
  1562. splitting the string on ":". Additionally, goto match, not just the line
  1563. of the match.
  1564. Fixes #153
  1565. 2015-06-19 Oleh Krehel <ohwoeowho@gmail.com>
  1566. Make counsel-M-x respect ivy-format-function
  1567. * counsel.el (counsel--format-function-M-x): Remove defun.
  1568. (counsel--M-x-transformer): New defun.
  1569. (counsel-M-x): Temporarily bind `ivy-format-function' to apply
  1570. `counsel--M-x-transformer' beforehand.
  1571. * ivy.el (ivy-format-function-arrow): Update style.
  1572. Fixes #150
  1573. 2015-06-19 Oleh Krehel <ohwoeowho@gmail.com>
  1574. Fix non-file completions ability to enter tramp completion
  1575. * ivy.el (ivy-alt-done): Update.
  1576. Re #145
  1577. 2015-06-19 Oleh Krehel <ohwoeowho@gmail.com>
  1578. "M-i" should not switch directories
  1579. ivy.el (ivy-insert-current): When the current candidate is a directory,
  1580. just insert its name without the last "/". The user can insert "/" to
  1581. switch to that directory if necessary.
  1582. Re #141
  1583. 2015-06-19 Oleh Krehel <ohwoeowho@gmail.com>
  1584. Add "^" as initial input to "C-h f" and "C-h v"
  1585. * ivy.el (ivy-initial-inputs-alist): Add entries for
  1586. `counsel-describe-function' and `counsel-describe-variable'.
  1587. 2015-06-19 Oleh Krehel <ohwoeowho@gmail.com>
  1588. ivy.el (ivy-kill-line): Add and bind to "C-k"
  1589. The only difference to `kill-line' is that it will kill the whole input
  1590. when at the end of the minibuffer. In that case, the regular `kill-line'
  1591. was extending into the second line of the minibuffer, which is
  1592. unacceptable.
  1593. 2015-06-19 Oleh Krehel <ohwoeowho@gmail.com>
  1594. Add a set of commands for resizing minibuffer height
  1595. * ivy.el (ivy-minibuffer-grow): New command.
  1596. (ivy-minibuffer-shrink): New command.
  1597. * ivy-hydra.el (hydra-ivy): Bind "<" and ">".
  1598. Use "C-o >>>>>" to grow the minibuffer, and "C-o <<<<<" to shrink it.
  1599. Re #151
  1600. 2015-06-18 Oleh Krehel <ohwoeowho@gmail.com>
  1601. Put the file instead of partial input on history
  1602. * ivy.el (ivy-read): When completing file names, put the whole file name
  1603. on history, not just the partial input that lead to that name. This is
  1604. important in order for `ivy--cd-maybe' to work.
  1605. Re #152
  1606. 2015-06-18 Oleh Krehel <ohwoeowho@gmail.com>
  1607. "M-n", "M-p", "M-i" should switch directories when needed
  1608. * ivy.el (ivy-previous-history-element):
  1609. (ivy-next-history-element):
  1610. (ivy-switch-buffer): Call `ivy--cd-maybe'.
  1611. (ivy--cd-maybe): New defun. Check if the current input points to a
  1612. different directory than `ivy--directory'. If so, `ivy--cd' there.
  1613. Fixes #152
  1614. 2015-06-17 Oleh Krehel <ohwoeowho@gmail.com>
  1615. counsel.el (counsel-M-x): Fixup smex interaction
  1616. * counsel.el (counsel-M-x): Use `smex-rank' only if smex is installed.
  1617. Fixes #147
  1618. 2015-06-16 Oleh Krehel <ohwoeowho@gmail.com>
  1619. counsel.el (counsel-M-x): Fixup
  1620. Re #136
  1621. 2015-06-16 Oleh Krehel <ohwoeowho@gmail.com>
  1622. ivy-hydra.el (defhydra): Wrap in eval-when-compile
  1623. 2015-06-16 Oleh Krehel <ohwoeowho@gmail.com>
  1624. Swiper should not deactivate-mark
  1625. * swiper.el (swiper--init): Update to make it the same as `isearch'.
  1626. "C-SPC" + `swiper' should work to mark a region.
  1627. 2015-06-16 Oleh Krehel <ohwoeowho@gmail.com>
  1628. ivy-hydra.el: Improve for hydra not installed
  1629. * ivy-hydra.el (hydra): No error on require.
  1630. (package-installed-p): Enable recursive minibuffers.
  1631. (hydra-ivy): Use ASCII char instead of Unicode, since the char width may
  1632. cause misalignment.
  1633. 2015-06-16 Oleh Krehel <ohwoeowho@gmail.com>
  1634. swiper.el (swiper-query-replace): Don't miss the first
  1635. * swiper.el (swiper-query-replace): Since the point is always after the
  1636. matching thing in swiper, it's necessary to move it before it in order
  1637. for `perform-replace' not to skip it.
  1638. Fixes #144
  1639. 2015-06-16 Oleh Krehel <ohwoeowho@gmail.com>
  1640. Require TRAMP in time
  1641. * ivy.el (ivy-alt-done): Require tramp before use. Store `ivy-last'
  1642. before calling `ivy-read', since each `ivy-read' overwrites
  1643. `ivy-last', and this one overwrites `counsel-find-file' action.
  1644. Fixes #145
  1645. 2015-06-16 Oleh Krehel <ohwoeowho@gmail.com>
  1646. counsel.el (counsel-M-x): Call smex-rank
  1647. Re #136
  1648. 2015-06-15 Oleh Krehel <ohwoeowho@gmail.com>
  1649. ivy-hydra.el (hydra-ivy): Add "C-j" and "C-m" exit points
  1650. Just to make sure that the hydra exits.
  1651. 2015-06-15 Oleh Krehel <ohwoeowho@gmail.com>
  1652. Allow to toggle matching mode with "C-o m"
  1653. * ivy.el (ivy-toggle-fuzzy): New command.
  1654. * ivy-hydra.el (hydra-ivy): Bind `ivy-toggle-fuzzy' to "m".
  1655. Fixes #142.
  1656. 2015-06-15 Oleh Krehel <ohwoeowho@gmail.com>
  1657. ivy.el (ivy-sort-functions-alist): Work for commands as well
  1658. * ivy.el (ivy-sort-functions-alist): Examine `this-command' in addition
  1659. to the COLLECTION arg of `completing-read'. Add `Man-goto-section' and
  1660. `org-refile' to the list, since these commands collect the candidates
  1661. in the order in which they are in the buffer => the candidates must
  1662. not be sorted. Mention this in the doc.
  1663. 2015-06-15 Oleh Krehel <ohwoeowho@gmail.com>
  1664. ivy.el (ivy-initial-inputs-alist): Add man and woman
  1665. 2015-06-15 Oleh Krehel <ohwoeowho@gmail.com>
  1666. Fix the minibuffer being too small with enough candidates
  1667. * ivy.el (ivy--format): Fix the bug of getting the minibuffer height
  1668. less than `ivy-height' when `ivy--index' was between `ivy--length'
  1669. and (- ivy--length (/ ivy--height 2)).
  1670. * ivy-test.el (ivy--format): Add test.
  1671. 2015-06-15 Oleh Krehel <ohwoeowho@gmail.com>
  1672. ivy.el (ivy-insert-current): Add and bind to "M-i"
  1673. Use "M-i" if you want something close to the current candidate. You can
  1674. follow up with an edit and select.
  1675. Fixes #141
  1676. 2015-06-15 Oleh Krehel <ohwoeowho@gmail.com>
  1677. Fix yank/undo bug
  1678. * ivy.el (ivy--insert-minibuffer): Bind `buffer-undo-list' later.
  1679. Previously, "C-y C-u" would result in the first char of yanked text not
  1680. being undone.
  1681. 2015-06-15 Oleh Krehel <ohwoeowho@gmail.com>
  1682. Allow to customize the initial input for all commands
  1683. * ivy.el (ivy-initial-inputs-alist): New defvar. Customize this to get
  1684. an initial input in any command.
  1685. (ivy-read): Unless INTIAL-INPUT is given, look it up in
  1686. `ivy-initial-inputs-alist' based on `this-command'.
  1687. * counsel.el (counsel-M-x-initial-input): Remove defcustom. It's
  1688. superseded by `ivy-initial-inputs-alist'.
  1689. (counsel-M-x): Update.
  1690. Fixes #140
  1691. 2015-06-12 Oleh Krehel <ohwoeowho@gmail.com>
  1692. ivy.el (ivy--regex-fuzzy): Improve for "^" and "$"
  1693. * ivy.el (ivy--regex-fuzzy): Don't insert .* after ^ and before $.
  1694. * ivy-test.el (ivy--regex-fuzzy): Add test.
  1695. Fixes #139
  1696. 2015-06-12 Oleh Krehel <ohwoeowho@gmail.com>
  1697. ivy.el (hydra-ivy/body): Autoload
  1698. 2015-06-12 Oleh Krehel <ohwoeowho@gmail.com>
  1699. counsel.el (counsel-M-x): Call smex-initialize
  1700. Otherwise, smex-cache isn't defined.
  1701. 2015-06-12 Oleh Krehel <ohwoeowho@gmail.com>
  1702. Bind "C-o" to hydra-ivy/body
  1703. * ivy.el (ivy-minibuffer-map): Update.
  1704. * ivy-hydra.el (hydra-ivy): New defhydra.
  1705. Add shortcuts:
  1706. "C-n" -> "j"
  1707. "C-p" -> "k"
  1708. "M-<" -> "h"
  1709. "M->" -> "l"
  1710. "C-j" -> "f"
  1711. "C-m" -> "d"
  1712. "C-g" -> "o" cancel "C-o" -> "i" toggle calling -> "c"
  1713. The hydra doesn't inhibit other bindings, so "C-v" and "M-v" also work
  1714. when you toggle calling on with "c".
  1715. 2015-06-12 Oleh Krehel <ohwoeowho@gmail.com>
  1716. ivy-toggle-calling: Toggle calling "RET" action for current candidate
  1717. * ivy.el (ivy-calling): New defvar.
  1718. (ivy-set-index): New defun - a setter for `ivy--index' that can call the
  1719. current action when `ivy-calling' isn't nil.
  1720. (ivy-beginning-of-buffer):
  1721. (ivy-end-of-buffer):
  1722. (ivy-scroll-up-command):
  1723. (ivy-scroll-down-command):
  1724. (ivy-next-line):
  1725. (ivy-previous-line): Use `ivy-set-index' instead of a plain `setq'.
  1726. (ivy-toggle-calling): New defun - toggle `ivy-calling'.
  1727. (ivy-call): New defun - call the current action.
  1728. (ivy-next-line-and-call): Use `ivy-call'.
  1729. (ivy-previous-line-and-call): Use `ivy-call'.
  1730. (ivy-read): Reset `ivy-calling' to nil.
  1731. To make use of this functionality, bind `ivy-toggle-calling' in
  1732. `ivy-minibuffer-map'. After this, "C-n" will behave like "C-M-n" etc.
  1733. 2015-06-12 Oleh Krehel <ohwoeowho@gmail.com>
  1734. Replace "C-x 6" with "<f2>" in counsel-M-x
  1735. counsel.el (counsel--format-function-M-x): Update.
  1736. 2015-06-12 Oleh Krehel <ohwoeowho@gmail.com>
  1737. counsel.el (counsel-find-file-ignore-regexp): Default to nil
  1738. * counsel.el (counsel--find-file-matcher): Update.
  1739. Make the default behavior more similar to `find-file'. Move the previous
  1740. value to the docstring.
  1741. 2015-06-12 Oleh Krehel <ohwoeowho@gmail.com>
  1742. counsel.el: Add a bunch of autoload cookies
  1743. 2015-06-12 Oleh Krehel <ohwoeowho@gmail.com>
  1744. counsel.el (counsel-M-x-initial-input): New defcustom
  1745. * counsel.el (counsel-M-x): Use `counsel-M-x-initial-input'.
  1746. Re #138
  1747. 2015-06-12 Oleh Krehel <ohwoeowho@gmail.com>
  1748. Allow "TAB" to complete when input starts with "^"
  1749. * ivy.el (ivy-partial): Strip "^" when forwarding to `try-completion'.
  1750. Afterwards, put it back.
  1751. Fixes #138
  1752. 2015-06-10 Oleh Krehel <ohwoeowho@gmail.com>
  1753. Fixup ivy-resume for file completion
  1754. * ivy.el (ivy-resume): No longer add the preselect.
  1755. (ivy-read): Don't add initial-input "".
  1756. 2015-06-10 Oleh Krehel <ohwoeowho@gmail.com>
  1757. Add fuzzy matching function
  1758. ivy.el (ivy--regex-fuzzy): New defun.
  1759. To enable fuzzy matching, set your `ivy-re-builders-alist' accordingly:
  1760. (setq ivy-re-builders-alist
  1761. '((t . ivy--regex-fuzzy)))
  1762. Re #136
  1763. 2015-06-10 Oleh Krehel <ohwoeowho@gmail.com>
  1764. counsel.el (counsel-M-x): Piggyback on smex for sorting
  1765. * counsel.el (counsel-M-x): When smex is present, use it for sorting the
  1766. candidates. Also use `counsel-describe-map', so that "C-." and "C-,"
  1767. work for commands.
  1768. Re #136
  1769. 2015-06-10 Oleh Krehel <ohwoeowho@gmail.com>
  1770. counsel.el (counsel-M-x): New command
  1771. * counsel.el (counsel--format-function-M-x): New defun.
  1772. Re #136.
  1773. 2015-06-10 Oleh Krehel <ohwoeowho@gmail.com>
  1774. counsel.el (counsel-symbol-at-point): Improve
  1775. Fixes #137
  1776. 2015-06-09 Oleh Krehel <ohwoeowho@gmail.com>
  1777. Add a hack for kill-buffer and invisible buffer
  1778. * ivy.el (ivy-read): When COLLECTION is 'internal-complete-buffer,
  1779. ignore the fact that REQUIRE-MATCH was set to t.
  1780. Normally, when REQUIRE-MATCH is t, the COLLECTION should not be
  1781. extended with PRESELECT.
  1782. Fixes #135
  1783. 2015-06-09 Oleh Krehel <ohwoeowho@gmail.com>
  1784. Account for minibuffer-depth-indication-mode
  1785. * ivy.el (ivy--insert-prompt): When `minibuffer-depth-indication-mode'
  1786. is on, and `minibuffer-depth' is more than 1, prepend it to prompt.
  1787. Fixes #134
  1788. 2015-06-09 Oleh Krehel <ohwoeowho@gmail.com>
  1789. ivy.el (ivy--switch-buffer-action): Add work-around
  1790. If BUFFER is live, and can also be virtual, don't open the virtual one.
  1791. This work-around should be disabled once uniquify is added to buffer
  1792. list.
  1793. 2015-06-09 Oleh Krehel <ohwoeowho@gmail.com>
  1794. counsel-git-grep should quote strings better
  1795. * counsel.el (counsel-git-grep-function):
  1796. (counsel--gg-candidates): Update.
  1797. Fixes an errror when the input has a " in it.
  1798. 2015-06-08 Oleh Krehel <ohwoeowho@gmail.com>
  1799. ivy.el (ivy-minibuffer-map): Bind ivy-yank-word to "M-j"
  1800. Re #133
  1801. 2015-06-04 Oleh Krehel <ohwoeowho@gmail.com>
  1802. Make counsel-git-grep fully async
  1803. * counsel.el (counsel-git-grep-count): Rename to `counsel--gg-count' and
  1804. make it async.
  1805. (counsel-git-grep-function): Set `ivy--full-length' to -1. It means that
  1806. `ivy--exhibit' should do nothing until the length is re-computed.
  1807. (counsel-git-grep): Use the sync version of `counsel-git-grep-count' for
  1808. the initial repo line count.
  1809. (counsel--gg-candidates): New defun. When called, kill the previous git
  1810. grep process and start a new one. The sentinel will insert the
  1811. candidates, bypassing the `ivy--exhibit'.
  1812. (counsel--gg-sentinel): New defun.
  1813. (counsel--gg-count): Rename from `counsel-git-grep-count'. When finished
  1814. computing, redisplay.
  1815. * ivy.el (ivy--exhibit): Don't expect dynamic collection to return the
  1816. candidates as before. Just call it and expect it to redisplay the
  1817. minibuffer.
  1818. 2015-06-04 Oleh Krehel <ohwoeowho@gmail.com>
  1819. Fixup compilation warnings
  1820. 2015-06-04 Tassilo Horn <tsdh@gnu.org>
  1821. Regexp-quote name of candidate buffer to be preselected
  1822. Fixes #128
  1823. 2015-06-04 Oleh Krehel <ohwoeowho@gmail.com>
  1824. ivy.el (ivy-virtual): New defface
  1825. * ivy.el (ivy--virtual-buffers): Use `ivy-virtual'. No need for
  1826. `ido-use-faces' approach, the user can just customize
  1827. `ivy-virtual' to look like `default' if needed.
  1828. Fixes #129
  1829. 2015-06-02 Oleh Krehel <ohwoeowho@gmail.com>
  1830. ivy.el (ivy--done): Set ivy--current
  1831. Fixes a bug of using :action for completing file names.
  1832. 2015-06-02 Oleh Krehel <ohwoeowho@gmail.com>
  1833. Handle symbol-at-point better in non-Elisp buffers
  1834. * counsel.el (counsel-symbol-at-point): New defun.
  1835. (counsel-describe-variable): Update.
  1836. (counsel-describe-function): Update.
  1837. Fixes #126
  1838. 2015-06-01 Oleh Krehel <ohwoeowho@gmail.com>
  1839. Swiper should preserve column for empty input
  1840. swiper.el (swiper--update-input-ivy): When there's no input yet, don't
  1841. move point.
  1842. Re #125
  1843. 2015-06-01 Oleh Krehel <ohwoeowho@gmail.com>
  1844. ivy.el (ivy-yank-word): New command
  1845. * swiper.el (swiper--update-input-ivy): Move point to current regex, not
  1846. just current line.
  1847. Gives a behavior similar to "C-w" of `isearch'. Possible binding:
  1848. (define-key ivy-minibuffer-map (kbd "C-w") 'ivy-yank-word)
  1849. Fixes #125
  1850. 2015-06-01 Oleh Krehel <ohwoeowho@gmail.com>
  1851. ivy.el (ivy-recentf): New command
  1852. Fixes #124
  1853. 2015-05-30 Oleh Krehel <ohwoeowho@gmail.com>
  1854. counsel.el (counsel-find-file-at-point): New defcustom
  1855. * counsel.el (counsel-find-file): When `counsel-find-file-at-point' is
  1856. non-nil, add the file at point to the list of candidates.
  1857. Fixes #123
  1858. 2015-05-30 Oleh Krehel <ohwoeowho@gmail.com>
  1859. counsel.el (counsel-find-file): Extend `find-file'
  1860. * counsel.el (counsel-find-file): Forward to `find-file', with Ivy
  1861. completion. `ivy-next-line-and-call' as well as `ivy-resume' should
  1862. work.
  1863. (counsel--find-file-matcher): New defun.
  1864. (counsel-find-file-ignore-regexp): Regexp of files to ignore.
  1865. Fixes #122
  1866. Recommended binding:
  1867. (global-set-key (kbd "C-x C-f") 'counsel-find-file)
  1868. Peek at files with "C-M-n" and "C-M-p". Input a leading dot to see all
  1869. files.
  1870. 2015-05-28 Oleh Krehel <ohwoeowho@gmail.com>
  1871. counsel.el (counsel-info-lookup-symbol): Add a require
  1872. In case it's called non-interactively.
  1873. 2015-05-28 Tassilo Horn <tsdh@gnu.org>
  1874. Add info lookup binding to counsel-describe-map
  1875. * counsel.el (counsel-describe-map): Bind C-, to
  1876. counsel--info-lookup-symbol.
  1877. (counsel--info-lookup-symbol): New command. Just sets the ivy action to
  1878. counsel-info-lookup-symbol.
  1879. 2015-05-28 Oleh Krehel <ohwoeowho@gmail.com>
  1880. Change the :matcher interface
  1881. * ivy.el (ivy--filter): The matcher is now a function that takes a
  1882. regexp and candidates and returns the filtered candidates.
  1883. * counsel.el (counsel-git-grep-matcher): Cache matched candidates. This
  1884. is very important for "C-n" / "C-p", especially near the threshold
  1885. where a switch to :dynamic-collection is made.
  1886. 2015-05-28 Oleh Krehel <ohwoeowho@gmail.com>
  1887. Avoid ensuring font lock when magit-blame-mode is active
  1888. swiper.el (swiper-font-lock-ensure): Update.
  1889. 2015-05-26 Oleh Krehel <ohwoeowho@gmail.com>
  1890. Allow to open an Info file on the file system
  1891. * ivy.el (ivy-alt-done): Update.
  1892. When in Info-mode, press "g" and select either "(./)" or "(../)" to
  1893. switch to file name completion. That file will be opened with Info.
  1894. 2015-05-25 Oleh Krehel <ohwoeowho@gmail.com>
  1895. swiper.el (swiper--ivy): Don't double-quote preselect
  1896. The :preselect is already quoted in `ivy--preselect-index'.
  1897. 2015-05-25 Oleh Krehel <ohwoeowho@gmail.com>
  1898. swiper.el (swiper-avy): Don't start on empty input
  1899. Fixes abo-abo/avy#50
  1900. 2015-05-24 Ingo Lohmar <i.lohmar@gmail.com>
  1901. ivy.el (ivy-next-line): Fix wraparound at end of candidates
  1902. 2015-05-23 Oleh Krehel <ohwoeowho@gmail.com>
  1903. swiper.el (swiper-avy): Use only the current window
  1904. Fixes #117
  1905. 2015-05-23 Oleh Krehel <ohwoeowho@gmail.com>
  1906. swiper.el: Bump version
  1907. 2015-05-23 Oleh Krehel <ohwoeowho@gmail.com>
  1908. README.md: Add a secion on Ivy
  1909. 2015-05-23 Oleh Krehel <ohwoeowho@gmail.com>
  1910. The :action parameter to ivy-read should take one arg
  1911. * ivy.el (ivy-next-line-and-call): Update.
  1912. (ivy-previous-line-and-call): Update.
  1913. (ivy-read): Update.
  1914. (ivy--switch-buffer-action): Update.
  1915. * swiper.el (swiper-query-replace): Update.
  1916. * counsel.el (counsel--find-symbol): Update.
  1917. (counsel-describe-variable): Update.
  1918. (counsel-describe-function): Update.
  1919. (counsel-git): Update.
  1920. (counsel-git-grep-action): Update.
  1921. 2015-05-23 Oleh Krehel <ohwoeowho@gmail.com>
  1922. Fixup "C-u C-j" for `ivy-switch-buffer'
  1923. ivy.el (ivy-immediate-done): Since action-style call is used now,
  1924. `ivy--current' must be set to `ivy-test', since it's `ivy--current' that
  1925. will count as completion result.
  1926. 2015-05-23 Oleh Krehel <ohwoeowho@gmail.com>
  1927. counsel.el (counsel-git): Switch to action-style call
  1928. This allows "C-M-n" and "C-M-p" to be used.
  1929. Re #114
  1930. 2015-05-23 Oleh Krehel <ohwoeowho@gmail.com>
  1931. ivy.el (ivy-completing-read): Check for a cons initial-input
  1932. 2015-05-23 Stefan Monnier <monnier@iro.umontreal.ca>
  1933. * swiper/ivy.el: Clean up regexps and pseudo-closures
  1934. Don't require cl-lib twice.
  1935. (ivy-read, ivy--filter): Use closures instead of `(lambda ...).
  1936. (ivy--format, ivy--filter, ivy--exhibit, ivy--insert-prompt)
  1937. (ivy--regex-ignore-order, ivy--regex, ivy--sorted-files)
  1938. (ivy-partial-or-done, ivy-alt-done): Don't use ^/$ to match string
  1939. bounds.
  1940. 2015-05-19 Oleh Krehel <ohwoeowho@gmail.com>
  1941. Fixup compilation warnings
  1942. 2015-05-19 Oleh Krehel <ohwoeowho@gmail.com>
  1943. When building a regex, consider ^ only at start
  1944. swiper.el (swiper--re-builder): Update.
  1945. 2015-05-19 Oleh Krehel <ohwoeowho@gmail.com>
  1946. counsel.el (counsel-info-lookup-symbol): Turn on sorting
  1947. 2015-05-17 Oleh Krehel <ohwoeowho@gmail.com>
  1948. Don't try to call permanent action if there's none
  1949. * ivy.el (ivy-next-line-and-call): Update.
  1950. (ivy-previous-line-and-call): Update.
  1951. Fixes #114.
  1952. 2015-05-17 Oleh Krehel <ohwoeowho@gmail.com>
  1953. ivy.el (ivy-forward-char): Add and bind to "C-f"
  1954. This is to avoid problems for the ido-related "C-x C-f C-f" reflex.
  1955. 2015-05-16 Oleh Krehel <ohwoeowho@gmail.com>
  1956. Don't error on incomplete bad regexp in counsel-git-grep
  1957. counsel.el (counsel-git-grep-matcher): Update.
  1958. 2015-05-16 Oleh Krehel <ohwoeowho@gmail.com>
  1959. counsel.el (counsel-git-grep): Warn if not in a repository
  1960. 2015-05-16 Oleh Krehel <ohwoeowho@gmail.com>
  1961. ivy.el (ivy-kill-word): Add and bind to "M-d"
  1962. Fixes #94
  1963. 2015-05-15 Oleh Krehel <ohwoeowho@gmail.com>
  1964. README.md: Add sample init
  1965. Fixes #112
  1966. 2015-05-15 __rompy <rompy.under@gmail.com>
  1967. Fixed ivy--preselect-index on windows where the drives folders ends with
  1968. a backslash (C:\, D:\)
  1969. 2015-05-14 Oleh Krehel <ohwoeowho@gmail.com>
  1970. Update the way spaces are quoted using ivy
  1971. * ivy.el (ivy--split): Split only on single spaces. From all other space
  1972. groups, remove one space.
  1973. * ivy-test.el (ivy--split): Add test.
  1974. Fixes #109
  1975. 2015-05-13 Oleh Krehel <ohwoeowho@gmail.com>
  1976. ivy.el (ivy-partial-or-done): More predictability
  1977. * ivy.el (ivy-partial-or-done): Forward to `ivy-alt-done' only if
  1978. `ivy-partial' did nothing new, and either previous command was
  1979. `ivy-partial-or-done', or there's exactly one matching candidate.
  1980. Fixes #107
  1981. 2015-05-13 Oleh Krehel <ohwoeowho@gmail.com>
  1982. Allow to recenter with "C-l" during counsel-git-grep
  1983. * counsel.el (counsel-git-grep-map): New defvar.
  1984. (counsel-git-grep-recenter): New command.
  1985. (counsel-git-grep-action): New defun.
  1986. (counsel-git-grep): Update.
  1987. Fixes #103
  1988. 2015-05-13 Oleh Krehel <ohwoeowho@gmail.com>
  1989. ivy.el (ivy-partial-or-done): Update doc
  1990. Re #105
  1991. 2015-05-13 Oleh Krehel <ohwoeowho@gmail.com>
  1992. ivy.el (ivy-partial-or-done): Always forward to `ivy-alt-done'
  1993. Fixes #105
  1994. 2015-05-12 Oleh Krehel <ohwoeowho@gmail.com>
  1995. ivy.el (ivy-delete-char): Add and bind to "C-d"
  1996. `delete-char' must not be called when at end of line, since that would
  1997. bring the first candidate into the input.
  1998. Fixes #94
  1999. 2015-05-12 Oleh Krehel <ohwoeowho@gmail.com>
  2000. ivy.el (ivy-switch-buffer): Preselect other-buffer
  2001. * ivy.el (ivy-switch-buffer): Preselect other buffer, just like
  2002. `switch-to-buffer' does it.
  2003. 2015-05-12 Oleh Krehel <ohwoeowho@gmail.com>
  2004. ivy.el (ivy-read): Keep the last ivy--index for :dynamic-collection
  2005. 2015-05-12 Oleh Krehel <ohwoeowho@gmail.com>
  2006. counsel-git-grep now works with ivy-resume
  2007. * ivy.el (ivy-state): New field DYNAMIC-COLLECTION.
  2008. (ivy-resume): Update.
  2009. (ivy-read): New argument DYNAMIC-COLLECTION. When this is non-nil,
  2010. ignore collection and matchers etc, and just obtain the filtered
  2011. candidates by calling DYNAMIC-COLLECTION each time the input changes.
  2012. Fixes #100
  2013. 2015-05-12 Oleh Krehel <ohwoeowho@gmail.com>
  2014. Introduce :matcher for counsel-git-grep
  2015. * ivy.el (ivy-state): Add MATCHER field.
  2016. (ivy-resume): Update.
  2017. (ivy-read): Add MATCHER argument. To make things faster, MATCHER can
  2018. reuse `ivy--old-re', but it's not required. MATCHER is a function that
  2019. takes a candidate and returns non-nil if it matches.
  2020. * counsel.el (counsel-git-grep): Use :matcher.
  2021. (counsel-git-grep-matcher): New defun. Skip the file name and line
  2022. number, then match as usual.
  2023. Fixes #99
  2024. 2015-05-12 Oleh Krehel <ohwoeowho@gmail.com>
  2025. Forward to minibuffer-complete for filenames only if "^/"
  2026. * ivy.el (ivy-partial-or-done): Update.
  2027. Fixes #102
  2028. 2015-05-12 Oleh Krehel <ohwoeowho@gmail.com>
  2029. Properly update virtual buffers for "^ " interaction
  2030. * ivy.el (ivy-read): Use `ivy--buffer-list'.
  2031. (ivy--exhibit): Use `ivy--buffer-list'.
  2032. (ivy-add-virtual-buffers): Remove.
  2033. (ivy--buffer-list): New defun.
  2034. Re #68
  2035. 2015-05-12 Oleh Krehel <ohwoeowho@gmail.com>
  2036. Fix the error switching to non-existent buffers
  2037. * ivy.el (ivy-read): Use `ivy-add-virtual-buffers'.
  2038. (ivy-buffer-list): Remove.
  2039. (ivy-add-virtual-buffers): New defun.
  2040. (ivy--switch-buffer-action): New defun, consider `ivy--current' being
  2041. zero length.
  2042. (ivy-switch-buffer): Use `ivy--switch-buffer-action'.
  2043. Fixes #101
  2044. 2015-05-11 Oleh Krehel <ohwoeowho@gmail.com>
  2045. ivy.el (ivy-partial-or-done): Fixup
  2046. * ivy.el (ivy-partial-or-done): Switch `default-directory' so that
  2047. `minibuffer-complete' is aware of it. Select a directory only if there
  2048. is only one.
  2049. 2015-05-11 Oleh Krehel <ohwoeowho@gmail.com>
  2050. ivy.el (ivy-partial-or-done): Fixup
  2051. 2015-05-11 Oleh Krehel <ohwoeowho@gmail.com>
  2052. When completing file names, defer to `minibuffer-complete' for "TAB"
  2053. * ivy.el (ivy-partial-or-done): Call `minibuffer-complete'. If the
  2054. resulting text is a valid directory, move there.
  2055. (ivy-read): Setup `minibuffer-completion-table' and
  2056. `minibuffer-completion-predicate'. This makes `minibuffer-complete'
  2057. work.
  2058. Fixes #92
  2059. 2015-05-11 Oleh Krehel <ohwoeowho@gmail.com>
  2060. swiper.el (swiper-font-lock-ensure): Ignore fundamental-mode
  2061. ELP uses this.
  2062. 2015-05-11 Oleh Krehel <ohwoeowho@gmail.com>
  2063. Allow to customize the minibuffer formatter
  2064. * ivy.el (ivy-format-function): New defvar.
  2065. (ivy-format-function-default): New defun.
  2066. (ivy-format-function-arrow): New defun, alternative for
  2067. `ivy-format-function'.
  2068. Fixes #87
  2069. 2015-05-11 Oleh Krehel <ohwoeowho@gmail.com>
  2070. Update test
  2071. ivy-test.el (swiper--re-builder): Rename from `ivy--transform-re'.
  2072. 2015-05-11 Oleh Krehel <ohwoeowho@gmail.com>
  2073. Swiper should use the :re-builder argument
  2074. * ivy.el (ivy--transform-re): Remove defun, :re-builder should be used
  2075. for this logic.
  2076. (ivy--filter): Update.
  2077. * swiper.el (swiper-avy): Use `ivy--regex'.
  2078. (swiper--init): Don't set `ivy--regex-function' - it will be set by
  2079. :re-builder.
  2080. (swiper--re-builder): New defun.
  2081. (swiper--ivy): Use :re-builder in call to `ivy-read'.
  2082. (swiper--update-input-ivy): Use `ivy--regex'.
  2083. (swiper--action): Use `ivy--regex'.
  2084. Fixes #90
  2085. 2015-05-11 Oleh Krehel <ohwoeowho@gmail.com>
  2086. ivy.el (ivy-read): Add a re-builder argument
  2087. * ivy.el (ivy-state): Add a RE-BUILDER field.
  2088. (ivy-resume): Use RE-BUILDER field.
  2089. (ivy-read): Set `ivy--regex-function' to RE-BUILDER if it's given.
  2090. 2015-05-11 Oleh Krehel <ohwoeowho@gmail.com>
  2091. ivy.el (ivy-backward-kill-word): Add and bind to "M-DEL"
  2092. Fixes #94
  2093. 2015-05-09 Oleh Krehel <ohwoeowho@gmail.com>
  2094. Fix the transition from a bad regex to good one
  2095. * ivy.el (ivy--filter): Update.
  2096. Fixes #93
  2097. 2015-05-08 Oleh Krehel <ohwoeowho@gmail.com>
  2098. Declare swiper-map
  2099. Fixes #90
  2100. 2015-05-08 Oleh Krehel <ohwoeowho@gmail.com>
  2101. Rename avy-swiper to swiper-avy
  2102. * swiper.el (swiper-avy): Rename and fix the regex.
  2103. 2015-05-08 Oleh Krehel <ohwoeowho@gmail.com>
  2104. ivy.el (ivy-use-virtual-buffers): New defcustom
  2105. Re #84
  2106. 2015-05-08 Oleh Krehel <ohwoeowho@gmail.com>
  2107. Add support for virtual buffers
  2108. * ivy.el (ivy-mode-map): New defvar. Remap `switch-to-buffer' to
  2109. `ivy-switch-buffer'.
  2110. (ivy-mode): Use `ivy-mode-map'.
  2111. (ivy--virtual-buffers): New devar.
  2112. (ivy--virtual-buffers): New defun.
  2113. (ivy-buffer-list): Return a list of buffers, taking
  2114. `ido-use-virtual-buffers' into account.
  2115. (ivy-switch-buffer): New command.
  2116. Fixes #84
  2117. 2015-05-08 Tassilo Horn <tsdh@gnu.org>
  2118. Simplify ivy-partial-or-done
  2119. 2015-05-08 Oleh Krehel <ohwoeowho@gmail.com>
  2120. Add swiper -> avy finalizer
  2121. * ivy.el (ivy-quit-and-run): New defmacro.
  2122. (tramp-get-completion-function): Add declare.
  2123. * swiper.el (swiper-map): Bind `avy-swiper' to "C-'".
  2124. (avy-swiper): New defun - jump to one of the currently visible swiper
  2125. candidates using avy.
  2126. 2015-05-08 Oleh Krehel <ohwoeowho@gmail.com>
  2127. Allow to use "^" in swiper
  2128. * swiper.el (swiper--width): New defvar.
  2129. (swiper--candidates): Set `swiper--width'.
  2130. * ivy.el (ivy--transform-re): New defun - transform the regex
  2131. specifically for `swiper'.
  2132. (ivy--filter): Call `ivy--transform-re'.
  2133. * ivy-test.el (ivy--transform-re): Add test.
  2134. Fixes #82
  2135. 2015-05-08 Oleh Krehel <ohwoeowho@gmail.com>
  2136. Add ivy-partial: partial complete without exiting
  2137. * ivy.el (ivy-partial-or-done): Forward to `ivy-partial'.
  2138. (ivy-partial): New defun.
  2139. If you want a different style of completion for "TAB", do this in your
  2140. config:
  2141. (define-key ivy-minibuffer-map (kbd "TAB") 'ivy-partial)
  2142. Fixes #85 Fixes #86
  2143. 2015-05-06 Oleh Krehel <ohwoeowho@gmail.com>
  2144. Try to prevent the resize of minibuffer window
  2145. * ivy.el (ivy--insert-minibuffer): Temporarily bind
  2146. `resize-mini-windows' to nil.
  2147. From its doc:
  2148. A value of `grow-only', the default, means let mini-windows grow
  2149. only;
  2150. they return to their normal size when the minibuffer is closed, or
  2151. the
  2152. echo area becomes empty.
  2153. It could be that an update catches this minibuffer empty during
  2154. `ivy--insert-minibuffer'.
  2155. Re #77
  2156. 2015-05-06 Oleh Krehel <ohwoeowho@gmail.com>
  2157. Merge ivy--update-fn into ivy-last
  2158. * ivy.el (ivy--update-fn): Remove defvar.
  2159. (ivy-read): Update.
  2160. (ivy--insert-minibuffer): Update.
  2161. 2015-05-06 Oleh Krehel <ohwoeowho@gmail.com>
  2162. Add parents using 'display for `counsel-load-library'
  2163. * counsel.el (counsel--find-symbol): The argument string may have a
  2164. 'full-name property.
  2165. (counsel-string-compose): New defun.
  2166. (counsel-load-library): Make libraries unique through text properties.
  2167. Re #79
  2168. 2015-05-06 Oleh Krehel <ohwoeowho@gmail.com>
  2169. Add counsel-load-library
  2170. * counsel.el (counsel-directory-parent): New defun.
  2171. (counsel-load-library): New command.
  2172. Improve on `load-library':
  2173. - don't consider .*elc or .*pkg.elc?, they're usually useless
  2174. - resolve duplicates in a similar way to uniquify (prepend parent
  2175. directory)
  2176. - allow to jump-to-library with "C-." (see `counsel-describe-map')
  2177. 2015-05-06 Oleh Krehel <ohwoeowho@gmail.com>
  2178. Work around grep-read-files
  2179. * ivy.el (ivy--done): If history is `grep-files-history', the caller is
  2180. `grep-read-files'. Don't expand the file name, since it's probably a
  2181. glob, and `find' doesn't work with expanded globs.
  2182. It should now be possible to simply "M-x" rgrep "RET" "RET" "RET".
  2183. Fixes #72
  2184. 2015-05-06 Oleh Krehel <ohwoeowho@gmail.com>
  2185. ivy.el (ivy-partial-or-done): Handle empty input
  2186. Fixes #81
  2187. 2015-05-05 Oleh Krehel <ohwoeowho@gmail.com>
  2188. Improve "TAB" interaction with `confirm-nonexistent-file-or-buffer'
  2189. * ivy.el (ivy-partial-or-done): When
  2190. `confirm-nonexistent-file-or-buffer' is t, and there are no
  2191. candidates, modify the prompt to "(confirm)" right after the first
  2192. "TAB".
  2193. Re #76
  2194. 2015-05-05 Oleh Krehel <ohwoeowho@gmail.com>
  2195. ivy.el (ivy-done): Simplify and improve
  2196. * ivy.el (ivy--done): New defun.
  2197. (ivy-done): Consider `confirm-nonexistent-file-or-buffer' for buffers as
  2198. well.
  2199. Fixes #76
  2200. 2015-05-05 Oleh Krehel <ohwoeowho@gmail.com>
  2201. Merge ivy--collection into ivy-last
  2202. * ivy.el (ivy--collection): Delete defvar.
  2203. (ivy-read): Update.
  2204. (ivy--exhibit): Update.
  2205. 2015-05-05 Oleh Krehel <ohwoeowho@gmail.com>
  2206. Require dired when completing file names
  2207. * ivy.el (ivy-read): Update.
  2208. Fixes #78
  2209. 2015-05-04 Oleh Krehel <ohwoeowho@gmail.com>
  2210. Make "TAB" switch directories properly
  2211. * ivy.el (ivy-partial-or-done): Forward to `ivy-alt-done'.
  2212. Fixes #75
  2213. 2015-05-04 Oleh Krehel <ohwoeowho@gmail.com>
  2214. "TAB" shouldn't delete input when no candidate
  2215. ivy.el (ivy-partial-or-done): Update.
  2216. Fixes #74
  2217. 2015-05-04 Oleh Krehel <ohwoeowho@gmail.com>
  2218. Ignore case for "TAB"
  2219. * ivy.el (ivy-partial-or-done): Update.
  2220. Now, e.g. "pub" can expand to "Public License".
  2221. 2015-05-04 Oleh Krehel <ohwoeowho@gmail.com>
  2222. ivy.el (ivy-tab-space): New defcustom
  2223. * ivy.el (ivy-partial-or-done): Insert an extra space when
  2224. `ivy-tab-space' is non-nil. This is useful to complete partially and
  2225. start a new group at once.
  2226. Fixes #73
  2227. 2015-05-03 Oleh Krehel <ohwoeowho@gmail.com>
  2228. Add an option for out-of-order matching
  2229. * ivy.el (ivy--regex-ignore-order): New defun.
  2230. * swiper.el (swiper--init): Set `ivy--regex-function'.
  2231. (swiper--update-input-ivy): Use `ivy--regex-function'.
  2232. (swiper--action): Use `ivy--regex-function'.
  2233. Example of use:
  2234. (setq ivy-re-builders-alist
  2235. '((t . ivy--regex-ignore-order)))
  2236. With this, e.g. swiper will match "bar foo" from input "foo bar".
  2237. 2015-05-03 Oleh Krehel <ohwoeowho@gmail.com>
  2238. swiper.el: Bump version
  2239. 2015-05-03 Oleh Krehel <ohwoeowho@gmail.com>
  2240. ivy.el (ivy-resume): Quote the preselect
  2241. 2015-05-02 Oleh Krehel <ohwoeowho@gmail.com>
  2242. Fix the candidate index for `ivy-resume'
  2243. * ivy.el (ivy--preselect-index): The the regex, not the plain text.
  2244. 2015-05-02 Oleh Krehel <ohwoeowho@gmail.com>
  2245. Add unwind argument to ivy-read
  2246. * ivy.el (ivy-state): Add `unwind' field.
  2247. (ivy-resume): Update.
  2248. (ivy-read): Call the `unwind' argument in the unwind form.
  2249. * swiper.el (swiper--ivy): Use `unwind' for `ivy-read'.
  2250. 2015-05-01 Oleh Krehel <ohwoeowho@gmail.com>
  2251. Merge ivy--persistent-action into ivy-state-action
  2252. * counsel.el (counsel-git-grep): Update.
  2253. * ivy.el (ivy--persistent-action): Remove defvar.
  2254. (ivy-next-line-and-call): Update.
  2255. (ivy-previous-line-and-call): Update.
  2256. 2015-05-01 Oleh Krehel <ohwoeowho@gmail.com>
  2257. ivy-resume now works for functions that supply action
  2258. ivy.el (ivy-resume): Use action
  2259. Functions like `counsel-describe-funtion' and `counsel-describe-varible'
  2260. are now resume-able: after finishing with "RET" or breaking out with
  2261. "C-g" it's possible to resume the query in the same state as it was
  2262. (same collection, input, index).
  2263. With:
  2264. (global-set-key (kbd "C-c C-r") 'ivy-resume)
  2265. it's possible to e.g.:
  2266. - "F1 f" info read "RET" to describe Info-breadcrumbs
  2267. - "C-c C-r" "C-n" to describe Info-read-node-name
  2268. - "C-c C-r" "C-n" to describe Info-read-node-name-1
  2269. ...
  2270. 2015-05-01 Oleh Krehel <ohwoeowho@gmail.com>
  2271. Merge ivy--action into ivy-last
  2272. * ivy.el (ivy-state): Add action field.
  2273. (ivy-set-action): New defun. Just a shortcut to set action.
  2274. (ivy--action): Remove defvar.
  2275. (ivy-read): Add action argument. Check (ivy-state-action ivy-last) in
  2276. the end and call it, since the action can change during the completion.
  2277. (ivy--insert-prompt): Add `counsel-find-symbol' to the list.
  2278. (ivy--format): If there are no matches, set `ivy--current' to "".
  2279. 2015-05-01 Oleh Krehel <ohwoeowho@gmail.com>
  2280. Merge ivy-window into ivy-last
  2281. * ivy.el (ivy-state): Add a window field.
  2282. (ivy-window): Remove defvar.
  2283. (ivy-next-line-and-call): Update.
  2284. (ivy-previous-line-and-call): Update.
  2285. (ivy-read): Update.
  2286. 2015-05-01 Oleh Krehel <ohwoeowho@gmail.com>
  2287. Merge ivy-def into ivy-last
  2288. * ivy.el (ivy-def): Remove defvar.
  2289. (ivy-read): Update.
  2290. (ivy--filter): Update.
  2291. 2015-05-01 Oleh Krehel <ohwoeowho@gmail.com>
  2292. Allow to quote spaces while matching
  2293. * ivy.el (ivy--split): New defun.
  2294. Use (ivy--split str) in place of (split-string str " +" t). Allows to
  2295. "quote" N spaces by inputting N+1 spaces.
  2296. 2015-05-01 Oleh Krehel <ohwoeowho@gmail.com>
  2297. Add ivy-state struct
  2298. * ivy.el (ivy-state): New defstruct.
  2299. (ivy-last): A single global to store an `ivy-state' struct.
  2300. (ivy-require-match): Move into `ivy-last'.
  2301. (ivy-done): Update.
  2302. (ivy-resume): New defun. Initial draft, kind of works for swiper. Need
  2303. to add a callback of what to do with the result as an argument.
  2304. (ivy-read): Store all arguments into `ivy-last'.
  2305. (ivy-completing-read): Update doc.
  2306. 2015-04-30 Oleh Krehel <ohwoeowho@gmail.com>
  2307. Allow for "/ssh:user@" as well as for "/ssh:"
  2308. * ivy.el (ivy-alt-done): Update.
  2309. Re #59
  2310. 2015-04-30 Oleh Krehel <ohwoeowho@gmail.com>
  2311. Improve TRAMP completion for ivy-mode
  2312. * ivy.el (ivy-build-tramp-name): New defun.
  2313. (ivy-alt-done): Use arcane TRAMP stuff to complete host names.
  2314. Re #59
  2315. 2015-04-30 Oleh Krehel <ohwoeowho@gmail.com>
  2316. ivy.el (ivy-read): Reset `ivy-text' earlier
  2317. Related to `counsel-git-grep' "-3 chars more".
  2318. 2015-04-30 Oleh Krehel <ohwoeowho@gmail.com>
  2319. ivy.el (ivy--regex): Fixup
  2320. Fixes #62
  2321. 2015-04-30 Oleh Krehel <ohwoeowho@gmail.com>
  2322. Don't error on bad regex
  2323. * ivy.el (ivy--filter): When on bad regex, just set the result to nil.
  2324. Fixes #70
  2325. 2015-04-29 Oleh Krehel <ohwoeowho@gmail.com>
  2326. Update and improve faces
  2327. * ivy.el (ivy-subdir): Inherit from dired-directory.
  2328. * swiper.el (swiper-match-face-1): Update doc.
  2329. (swiper-match-face-2): Update doc.
  2330. (swiper-match-face-3): Update doc.
  2331. (swiper-match-face-4): Inherit from isearch-fail.
  2332. (swiper--add-overlays): Fix the faces order swapping on the second
  2333. match.
  2334. Now it finally works as planned: face-1 is the background (re group 0),
  2335. next it cycles: face-2, face-3, face-4, face-2, face-3, face-4.
  2336. 2015-04-29 Oleh Krehel <ohwoeowho@gmail.com>
  2337. Add gamma-correction to alpha-blending
  2338. * colir.el (colir-compose-method): Make 'colir-compose-alpha default.
  2339. (colir-compose-alpha): Add gamma-correction.
  2340. 2015-04-29 Oleh Krehel <ohwoeowho@gmail.com>
  2341. colir.el: Add two additional blend algorithms
  2342. * colir.el (colir-join): Remove.
  2343. (color): Require.
  2344. (colir-compose-method): New defcustom.
  2345. (colir-compose-soft-light): New defun.
  2346. (colir-compose-overlay): New defun.
  2347. (colir-compose-alpha): New defun.
  2348. (colir-blend): Update.
  2349. (colir-blend-face-background): Update.
  2350. 2015-04-29 Oleh Krehel <ohwoeowho@gmail.com>
  2351. ivy.el (ivy--exhibit): Fixup last commit
  2352. * ivy.el (ivy--old-text): Should always be a string.
  2353. (ivy-read): Update.
  2354. (ivy--exhibit): Recompute candidates on flip, always set `ivy--old-re'
  2355. to nil.
  2356. 2015-04-29 Oleh Krehel <ohwoeowho@gmail.com>
  2357. Improve hidden buffer completion further
  2358. * ivy.el (ivy--exhibit): Update.
  2359. Fixes #68 Fixes #69
  2360. 2015-04-29 Oleh Krehel <ohwoeowho@gmail.com>
  2361. Improve the completion of hidden buffers
  2362. * ivy.el (ivy--collection): New defvar.
  2363. (ivy-read): Update.
  2364. (ivy--exhibit): Update.
  2365. Re #68.
  2366. 2015-04-29 Oleh Krehel <ohwoeowho@gmail.com>
  2367. Bind "TAB" to do partial completion
  2368. * ivy.el (ivy-minibuffer-map): Update.
  2369. (ivy-alt-done): New defun.
  2370. (ivy--old-text): Update.
  2371. Re #63.
  2372. 2015-04-28 Oleh Krehel <ohwoeowho@gmail.com>
  2373. counsel.el (counsel-git-grep): Add optional initial-input
  2374. * counsel.el (counsel-git-grep): Update.
  2375. Fixes #66
  2376. 2015-04-28 Oleh Krehel <ohwoeowho@gmail.com>
  2377. ivy.el (ivy-re-builders-alist): Improve doc
  2378. Re #62
  2379. 2015-04-28 Oleh Krehel <ohwoeowho@gmail.com>
  2380. ivy.el: Fixup docstrings
  2381. * ivy.el (ivy-require-match): Update.
  2382. (ivy-def): Update.
  2383. (ivy--prompt-extra): Update.
  2384. (ivy--maybe-scroll-history): Update.
  2385. (ivy-completing-read): Update.
  2386. (ivy--insert-minibuffer): Update.
  2387. (ivy--filter): Update.
  2388. 2015-04-28 Oleh Krehel <ohwoeowho@gmail.com>
  2389. Add an option for multi-tier regex matching
  2390. * ivy.el (ivy--regex-plus): New defun. This is an example for the
  2391. multi-tier interface.
  2392. (ivy--filter): Update.
  2393. To use it, add e.g.:
  2394. (setq ivy-re-builders-alist
  2395. '((t . ivy--regex-plus)))
  2396. Example using boost_1_58_0 and `find-file-in-project`:
  2397. * "utility" - 234 matches
  2398. * "utility hpp" - 139 matches
  2399. * "utility !hpp" - 95 matches
  2400. Fixes #62
  2401. 2015-04-28 Oleh Krehel <ohwoeowho@gmail.com>
  2402. Makefile: Update
  2403. 2015-04-28 Oleh Krehel <ohwoeowho@gmail.com>
  2404. Use alpha compositing to add ivy-current-match face
  2405. * ivy.el (ivy--exhibit): Use `colir-blend-face-background'. In case it
  2406. fails, try `font-lock-append-text-property', which was used before.
  2407. * colir.el (colir-join): New defun.
  2408. (colir-blend): New defun.
  2409. (colir-blend-face-background): New defun.
  2410. 2015-04-28 Oleh Krehel <ohwoeowho@gmail.com>
  2411. swiper.el (swiper-font-lock-ensure): Exclude `elfeed-search-mode'
  2412. 2015-04-28 Oleh Krehel <ohwoeowho@gmail.com>
  2413. ivy.el (ivy--filter): Fixup
  2414. Fixes #65
  2415. 2015-04-28 Oleh Krehel <ohwoeowho@gmail.com>
  2416. ivy.el (ivy-alt-done): Treat `ivy-text' with ":" verbatim
  2417. * ivy.el (ivy-alt-done): Should work better now for ssh: stuff.
  2418. It should be possible to type in any directory: `/ssh:user@domain.com:`
  2419. <kbd>C-j</kbd> and get completion.
  2420. Re #59
  2421. 2015-04-28 Oleh Krehel <ohwoeowho@gmail.com>
  2422. Store the preselect and use it for empty ivy-text
  2423. * ivy.el (ivy-def): New defvar.
  2424. (ivy-read): Store `ivy-def'.
  2425. (ivy-completing-read): Update.
  2426. (ivy--filter): When the input is empty, set `ivy--index' to select
  2427. `ivy-def'.
  2428. Fixes #64
  2429. 2015-04-25 Oleh Krehel <ohwoeowho@gmail.com>
  2430. Improve completion history using the propertize trick
  2431. * ivy.el (ivy-previous-history-element): Update.
  2432. (ivy-next-history-element): Update.
  2433. (ivy--maybe-scroll-history): New defun. When the history element string
  2434. has ivy-index property, set `ivy--index' to that.
  2435. Fixes #46
  2436. 2015-04-24 Oleh Krehel <ohwoeowho@gmail.com>
  2437. Minibuffer faces should inherit minibuffer-prompt
  2438. * ivy.el (ivy-confirm-face): Update.
  2439. (ivy-match-required-face): Update.
  2440. Re #60
  2441. 2015-04-24 Oleh Krehel <ohwoeowho@gmail.com>
  2442. Improve the match confirm while completing files
  2443. * ivy.el (ivy-confirm-face): New face.
  2444. (ivy-match-required-face): New face.
  2445. (ivy--prompt-extra): New defvar, the prompt is concatenaded with this.
  2446. (ivy--extend-prompt): Remove.
  2447. (ivy-done): Update.
  2448. (ivy--insert-prompt): Use `ivy--prompt-extra'. Reset it unless the
  2449. `this-command' is appropriate.
  2450. (ivy--set-match-props): New defun.
  2451. Fixes #60
  2452. 2015-04-24 Oleh Krehel <ohwoeowho@gmail.com>
  2453. Reset to the first candidate when switching directories
  2454. * ivy.el (ivy--cd): Update.
  2455. 2015-04-24 Oleh Krehel <ohwoeowho@gmail.com>
  2456. Propertize remote buffers with ivy-remote face
  2457. * ivy.el (ivy-remote): New face.
  2458. (ivy-read): Update.
  2459. Fixes #61
  2460. 2015-04-23 Oleh Krehel <ohwoeowho@gmail.com>
  2461. Respect `confirm-nonexistent-file-or-buffer'
  2462. * ivy.el (ivy--extend-prompt): New defun.
  2463. (ivy-done): Ask for a confirmation if no candidates match and
  2464. `confirm-nonexistent-file-or-buffer' is t.
  2465. Re #60
  2466. 2015-04-23 Oleh Krehel <ohwoeowho@gmail.com>
  2467. ivy.el (ivy-read): Fixup preselect addition
  2468. It was unnecessarily inserting `preselect' when completing tags.
  2469. 2015-04-23 Oleh Krehel <ohwoeowho@gmail.com>
  2470. ivy.el (ivy--cd): Reset `ivy--old-re'
  2471. * ivy.el (ivy--cd): Switching directory switches the candidates, so
  2472. `ivy--old-re' must be invalidated.
  2473. Fixes #58
  2474. 2015-04-23 Oleh Krehel <ohwoeowho@gmail.com>
  2475. ivy.el (Info-current-file): Declare
  2476. 2015-04-23 Oleh Krehel <ohwoeowho@gmail.com>
  2477. Use "//" to move to root instead of "/" as before
  2478. ivy.el (ivy--exhibit): Update.
  2479. This improves the situation with tramp and generally avoids losing the
  2480. current directory by pressing "/" by accident.
  2481. Fixes #59
  2482. 2015-04-23 Oleh Krehel <ohwoeowho@gmail.com>
  2483. Avoid sorting org refile candidates
  2484. * ivy.el (ivy-read): Update.
  2485. 2015-04-23 Oleh Krehel <ohwoeowho@gmail.com>
  2486. Exclude jabber-chat-mode from font-lock
  2487. * swiper.el (swiper-font-lock-ensure): Update.
  2488. 2015-04-23 Oleh Krehel <ohwoeowho@gmail.com>
  2489. Remove globbing heuristics for file name completion
  2490. * ivy.el (ivy-done): Simplify.
  2491. (ivy-alt-done): Simplify.
  2492. If you want to exit with the current text, ignoring candidates, use
  2493. `ivy-immediate-done' instead. Works for globs as well.
  2494. Fixes #55
  2495. 2015-04-23 Oleh Krehel <ohwoeowho@gmail.com>
  2496. counsel.el (counsel-git-grep): Fixup
  2497. 2015-04-23 Oleh Krehel <ohwoeowho@gmail.com>
  2498. ivy.el (ivy-backward-delete-char): Expand `ivy--directory'
  2499. This avoids the situation of getting a nil for "~/".
  2500. Re #57
  2501. 2015-04-23 Oleh Krehel <ohwoeowho@gmail.com>
  2502. ivy.el (ivy-done): Update wrt globs
  2503. Re #55
  2504. 2015-04-23 Oleh Krehel <ohwoeowho@gmail.com>
  2505. swiper.el (swiper-query-replace): Fix
  2506. 2015-04-23 Oleh Krehel <ohwoeowho@gmail.com>
  2507. swiper.el (swiper--ivy): Check for stand-alone ivy
  2508. Re #54
  2509. 2015-04-23 Oleh Krehel <ohwoeowho@gmail.com>
  2510. ivy.el (ivy-done): Don't expand globs
  2511. Re #55
  2512. 2015-04-22 Oleh Krehel <ohwoeowho@gmail.com>
  2513. README.md: Update video link
  2514. 2015-04-22 Oleh Krehel <ohwoeowho@gmail.com>
  2515. Fixup `swiper-query-replace'
  2516. * swiper.el (swiper-query-replace): Make sure to use `swiper--window'.
  2517. * ivy.el (ivy--minibuffer-setup): Remove the `use-local-map' statement,
  2518. the map is already set in `read-from-minibuffer'.
  2519. 2015-04-22 Oleh Krehel <ohwoeowho@gmail.com>
  2520. ivy-test.el (ivy-read): Update test.
  2521. REQUIRE-MATCH is nil by default.
  2522. 2015-04-22 Oleh Krehel <ohwoeowho@gmail.com>
  2523. ivy.el (ivy-read): Fix preselect logic
  2524. * ivy.el (ivy-read): Update.
  2525. Fixes e.g. `ert' passing "t" as the default, which isn't in collection,
  2526. but `all-completions' doesn't return nil.
  2527. 2015-04-22 Oleh Krehel <ohwoeowho@gmail.com>
  2528. ivy.el (ivy-done): Fixup
  2529. 2015-04-22 Oleh Krehel <ohwoeowho@gmail.com>
  2530. ivy.el (ivy--add-face): Don't fail for weird str
  2531. Fixes #44
  2532. 2015-04-22 Oleh Krehel <ohwoeowho@gmail.com>
  2533. swiper.el (swiper--ivy): Fix preselect being added
  2534. 2015-04-22 Oleh Krehel <ohwoeowho@gmail.com>
  2535. ivy.el (ivy--exhibit): Wrap in `while-no-input'
  2536. * ivy.el (ivy--exhibit): `ivy--dynamic-function' will sometimes use
  2537. `call-process'. Adding `while-no-input' speeds up things a lot, at the
  2538. cost of a small message interrupting the minibuffer when
  2539. `call-process' takes too long or the user types too fast.
  2540. This message is not an issue for emacs-snapshot.
  2541. 2015-04-22 Oleh Krehel <ohwoeowho@gmail.com>
  2542. Bind "M-q" to `ivy-toggle-regexp-quote'
  2543. * ivy.el (ivy-minibuffer-map): Update.
  2544. (ivy--regexp-quote): New defvar.
  2545. (ivy-toggle-regexp-quote): New command, toggle `ivy--regex-function'
  2546. between the value selected in `ivy-read' and `ivy--regexp-quote'.
  2547. (ivy-read): Reset `ivy--regexp-quote' to 'regexp-quote.
  2548. Fixes #48
  2549. 2015-04-22 Oleh Krehel <ohwoeowho@gmail.com>
  2550. Allow to customize the regex matching per-collection
  2551. * ivy.el (ivy--regex-function): New defvar.
  2552. (ivy-re-builders-alist): New defvar, use this to customize.
  2553. (ivy-read): Update.
  2554. (ivy--filter): Update.
  2555. Currently, it only works for function collections. Example:
  2556. (setq ivy-re-builders-alist
  2557. '((read-file-name-internal . regexp-quote)
  2558. (t . ivy--regex)))
  2559. Re #48
  2560. 2015-04-22 Oleh Krehel <ohwoeowho@gmail.com>
  2561. ivy.el (ivy-done): Be more strict for `require-match'
  2562. When `require-match' isn't in (nil confirm confirm-after-completion),
  2563. don't allow to exit if there isn't a match. Instead, amend the prompt
  2564. with "(match required)".
  2565. 2015-04-22 Oleh Krehel <ohwoeowho@gmail.com>
  2566. Change `ivy-read' to a cl-defun
  2567. * ivy.el (ivy-read): All args but PROMPT and COLLECTION are now keys.
  2568. The existing basic calls to `ivy-read' should still work, the others
  2569. need to be updated. It's best to try to use `ivy-completing-read' if
  2570. possible, since it conforms to the `completing-read' arguments. New
  2571. arguments: REQUIRE-MATCH and HISTORY. If HISTORY is nil, `ivy-history'
  2572. is used.
  2573. (ivy--sorted-files): Don't try to extend the collection.
  2574. (ivy-completing-read): Update.
  2575. * swiper.el (swiper--ivy): Update.
  2576. * counsel.el (counsel-describe-symbol-history): New defvar.
  2577. (counsel-describe-variable): Update the call, require match, use
  2578. `counsel-describe-symbol-history'.
  2579. (counsel-describe-function): Update the call, require match, use
  2580. `counsel-describe-symbol-history'.
  2581. * ivy-test.el: Update tests, since zero and one length input doesn't
  2582. return immediately any more.
  2583. Re #46
  2584. 2015-04-22 Oleh Krehel <ohwoeowho@gmail.com>
  2585. ivy.el (ivy--filter): Update prefix optimization
  2586. * ivy.el (ivy--filter): Don't use prefix optimization when the input
  2587. contains "\".
  2588. 2015-04-22 Oleh Krehel <ohwoeowho@gmail.com>
  2589. README.md: Add a note on outdated ivy package
  2590. Fixes #51
  2591. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2592. ivy.el (ivy--filter): Try directory expansion with "/"
  2593. * ivy.el (ivy--filter): If candidate is "x" and completing file names,
  2594. check if "x/" is among the candidates, and if so, set `ivy--index'
  2595. accordingly.
  2596. Re #50
  2597. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2598. Fix the default-directory for `counsel-git-grep'
  2599. * counsel.el (counsel--git-grep-dir): New defvar.
  2600. (counsel-git-grep-count): Update.
  2601. (counsel-git-grep-function): Update.
  2602. (counsel-git-grep): Update.
  2603. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2604. Add a way to exit ignoring the candidates
  2605. * ivy.el (ivy-immediate-done): New commad, currently unbound. Exit the
  2606. minibuffer, ignoring the candidates. Solves the same problem as
  2607. "C-f" in `ido-mode'.
  2608. (ivy-alt-done): With a prefix arg, e.g. "C-u C-j", forward to
  2609. `ivy-immediate-done'.
  2610. Re #50
  2611. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2612. ivy.el (ivy-read): Don't add the `default-directory'
  2613. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2614. ivy.el (ivy-read): Use initial-input when completing files
  2615. * ivy.el (ivy-read): Unless `require-match', add `initial-input' to the
  2616. collection. This is important e.g. for `dired-dwim-target'.
  2617. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2618. swiper.el (swiper--add-overlays): Make bounds optional
  2619. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2620. counsel.el (counsel-git-grep-count): Ignore case
  2621. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2622. Fix describe-function / -variable "C-." interaction
  2623. * counsel.el (counsel-describe-variable): Don't describe variable if
  2624. jump-to-symbol action was chosen.
  2625. (counsel-describe-function): Don't describe variable if
  2626. jump-to-symbol action was chosen.
  2627. I should handle this more gracefully if multiple actions become a
  2628. pattern.
  2629. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2630. counsel.el: Add awesome swiper highlighting to git grep
  2631. * counsel.el (swiper): Require.
  2632. (counsel-git-grep-function): Use `swiper--add-overlays'. Remember to set
  2633. `swiper--window', and call `swiper--cleanup'. Use `ivy--regex' in all
  2634. cases to build the regex.
  2635. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2636. ivy.el (ivy--regex): Add optional greedy arg
  2637. * ivy.el (ivy--regex): When optional greedy arg is t, be greedy. Don't
  2638. wrap a sub-expr in a group if it's already a group, for instance
  2639. "forward \(char\|list\)".
  2640. Greedy is needed, for instance, for "git grep", which doesn't work great
  2641. with non-greedy regex.
  2642. Re #47
  2643. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2644. swiper.el (swiper--add-overlays): Update arglist
  2645. * swiper.el (swiper--update-input-ivy): Update.
  2646. (swiper--add-overlays): Take only the regexp as the argument. Figure out
  2647. the bounds by itself.
  2648. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2649. ivy.el (ivy-done): Don't directory-expand glob filename
  2650. * ivy.el (ivy-done): Don't directory-expand if there's a star in the
  2651. file name.
  2652. This change fixes the behavior of `rgrep`. It can't handle the case of
  2653. e.g. /foo/bar/\*.el, but handles \*.el fine.
  2654. Re #45
  2655. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2656. Add an option to call the completion action without exiting
  2657. * ivy.el (ivy--persistent-action): New defvar. This is a lambda that the
  2658. caller sets if the caller has a plan for persistent actions.
  2659. (ivy-next-line-and-call): Add and bind to "C-M-n". Identical to "C-n",
  2660. except calls `ivy--persistent-action' when it's not nil. Add and bind to
  2661. "C-M-p". Identical to "C-p", except calls `ivy--persistent-action' when
  2662. it's not nil.
  2663. (ivy-window): New defvar.
  2664. (ivy-read): Store `ivy-window'.
  2665. * counsel.el (counsel-git-grep): Use `ivy--persistent-action'.
  2666. For `counsel-git-grep', as an example, it's possible to move to the
  2667. matched place without exiting the completion with "C-M-n" and "C-M-p".
  2668. This is a nice advantage, since it gives a full context to each one-line
  2669. git grep match.
  2670. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2671. Fix double-sorting for file names
  2672. * ivy.el (ivy--sorted-files): Update.
  2673. (ivy-read): Update.
  2674. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2675. ivy.el (ivy--sorted-files): Avoid returning an empty list
  2676. Fixes #49
  2677. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2678. Allow to customize the sorting methods
  2679. * ivy.el (ivy-sort-functions-alist): New defvar, stores sorting
  2680. functions for various function collection types.
  2681. (ivy-sort-file-function): Remove, merge into `ivy-sort-functions-alist'.
  2682. (ivy-sort-max-size): Don't sort candidate lists larger than this size.
  2683. (ivy--sorted-files): Update.
  2684. (ivy-read): Add an argument SORT. When it's t, sort the candidates
  2685. according to `ivy-sort-functions-alist'. It's assumed that if
  2686. COLLECTION is a function it's OK to `cl-sort' it without making a copy.
  2687. (ivy-completing-read): Call with SORT t.
  2688. * counsel.el (counsel-describe-variable): Call with SORT t.
  2689. (counsel-describe-function): Call with SORT t.
  2690. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2691. ivy.el (ivy--regex): Switch to non-greedy ".*?" joiner
  2692. Fixes #47
  2693. 2015-04-21 Oleh Krehel <ohwoeowho@gmail.com>
  2694. ivy.el (ivy-done): Expand file name for empty text
  2695. Fixes #45
  2696. 2015-04-20 Oleh Krehel <ohwoeowho@gmail.com>
  2697. `counsel-git-grep' can now handle huge git repos
  2698. * counsel.el (counsel-git-grep-count): Return a number instead of a
  2699. string. Apply `ivy--regex' on the input.
  2700. (counsel--git-grep-count): New defvar.
  2701. (counsel-git-grep-function): If the repo has >20000 lines, use `head'
  2702. 5000 instead, but still display the true amount of matches.
  2703. (counsel-git-grep): Set `ivy--dynamic-function'.
  2704. (counsel-locate-function): Update.
  2705. * ivy.el (ivy--dynamic-function): New defvar. When this isn't nil, it
  2706. will be called to get a new batch of candidates in case the `ivy-text'
  2707. was changed.
  2708. (ivy--full-length): The true candidates length in case of `head'
  2709. shenanigans.
  2710. (ivy--old-text): Store the old text for when `ivy--dynamic-function' was
  2711. called last.
  2712. (ivy--insert-prompt): Update.
  2713. (ivy--exhibit): Don't do filtering for non-nil `ivy--dynamic-function' -
  2714. let the caller (usually a shell tool) do the filtering.
  2715. (ivy--insert-minibuffer): New defun, created from a part of
  2716. `ivy--exhibit'.
  2717. 2015-04-20 Oleh Krehel <ohwoeowho@gmail.com>
  2718. Use cl-plusp instead of plusp
  2719. * ivy.el (cl-lib): Add require.
  2720. (ivy-alt-done): Update.
  2721. Re #43
  2722. 2015-04-20 Oleh Krehel <ohwoeowho@gmail.com>
  2723. Add a dynamic counsel-locate
  2724. * counsel.el (counsel-locate-function): New defun.
  2725. (counsel-locate): New defun.
  2726. * ivy.el (ivy--dynamic-function): New defvar.
  2727. (ivy--exhibit): Re-compute candidates use `ivy--dynamic-function' if
  2728. it's non-nil.
  2729. 2015-04-20 Oleh Krehel <ohwoeowho@gmail.com>
  2730. Split `ivy-completions' into `ivy--filter' and `ivy--format'
  2731. * ivy.el (ivy--exhibit): Update.
  2732. (ivy-completions): Remove.
  2733. (ivy--filter): New defun.
  2734. (ivy--format): New defun.
  2735. 2015-04-20 Oleh Krehel <ohwoeowho@gmail.com>
  2736. counsel.el (counsel-git-grep-count): Add defun
  2737. 2015-04-20 Oleh Krehel <ohwoeowho@gmail.com>
  2738. swiper.el: Fix compilation warnings
  2739. 2015-04-20 Oleh Krehel <ohwoeowho@gmail.com>
  2740. Bind arrows
  2741. * ivy.el (ivy-minibuffer-map): Update.
  2742. Re #40
  2743. 2015-04-20 Oleh Krehel <ohwoeowho@gmail.com>
  2744. Add an optimization to speed up matching
  2745. * ivy.el (ivy-completions): Update.
  2746. 2015-04-20 Oleh Krehel <ohwoeowho@gmail.com>
  2747. swiper.el: Bump version
  2748. 2015-04-20 Oleh Krehel <ohwoeowho@gmail.com>
  2749. ivy.el (ivy-done): Still expand "./" though
  2750. 2015-04-20 Oleh Krehel <ohwoeowho@gmail.com>
  2751. Don't expand the default when completing file names
  2752. * ivy.el (ivy-done): Update.
  2753. This affects e.g. `rgrep': "\*.el" as the default will work, but
  2754. "foo/\*.el" won't.
  2755. 2015-04-20 Oleh Krehel <ohwoeowho@gmail.com>
  2756. Propertize directories with ivy-subdir face
  2757. * ivy.el (ivy-subdir): New defface.
  2758. (ivy-completions): Update.
  2759. 2015-04-20 Oleh Krehel <ohwoeowho@gmail.com>
  2760. Speed up the default file sorting even more
  2761. * ivy.el (ivy--sorted-files): Use `string-match-p' instead of
  2762. `file-directory-p'.
  2763. 2015-04-20 Oleh Krehel <ohwoeowho@gmail.com>
  2764. Speed up the default file sorting
  2765. * ivy.el (ivy-sort-file-function-default): Update.
  2766. (ivy--sorted-files): Update.
  2767. Turns out that calling `file-directory-p' in `cl-sort' is too expensive.
  2768. So when `ivy-sort-file-function' is `ivy-sort-file-function-default',
  2769. propertize all strings with whether they are directories or not.
  2770. When `ivy-sort-file-function' is something different, e.g.
  2771. `string-lessp', don't do propertizing since it also can be slow.
  2772. 2015-04-20 Oleh Krehel <ohwoeowho@gmail.com>
  2773. ivy.el (ivy--preselect-index): Give priority to perfect match
  2774. 2015-04-20 Oleh Krehel <ohwoeowho@gmail.com>
  2775. Allow "C-." to jump to current symbol definition
  2776. * counsel.el (counsel-describe-map): New defvar.
  2777. (counsel-find-symbol): New defun.
  2778. (counsel--find-symbol): New defun - jump to definition of function or
  2779. symbol or library.
  2780. (counsel-describe-variable): Use `counsel-describe-map'.
  2781. (counsel-describe-function): Use `counsel-describe-map'.
  2782. 2015-04-20 Oleh Krehel <ohwoeowho@gmail.com>
  2783. Allow to customize the file sorting order
  2784. * ivy.el (ivy-sort-file-function-default): New defun.
  2785. (ivy-sort-file-function): New defvar. Set this to your preference.
  2786. (ivy--sorted-files): Update.
  2787. Fixes #38
  2788. 2015-04-19 Oleh Krehel <ohwoeowho@gmail.com>
  2789. ivy.el (ivy-done): Update for non-matching file names
  2790. * ivy.el (ivy-done): When `ivy--directory' is non-nil, accept input
  2791. anyway.
  2792. Fixes #39
  2793. 2015-04-19 Oleh Krehel <ohwoeowho@gmail.com>
  2794. ivy.el (ivy-completions): Fix an optimization
  2795. 2015-04-19 Oleh Krehel <ohwoeowho@gmail.com>
  2796. Add a matching optimization
  2797. * ivy.el (ivy-completions): When the new regex `re' is a contains the
  2798. old regex `ivy--old-re', it must be true that all candidates that
  2799. match `re' are contained inside all candidates that match
  2800. `ivy--old-re', i.e. the pre-computed in the last step
  2801. `ivy--old-cands'.
  2802. This should speed up completion for large (~100k) amount of candidates,
  2803. for the particular case of regex simply being extended.
  2804. 2015-04-19 Oleh Krehel <ohwoeowho@gmail.com>
  2805. counsel.el (counsel-git-grep): Fix the default-directory
  2806. 2015-04-19 Oleh Krehel <ohwoeowho@gmail.com>
  2807. Add a command to grep the current git repo
  2808. * counsel.el (counsel-git-grep-function): New defun.
  2809. (counsel-git-grep): New command.
  2810. 2015-04-19 Oleh Krehel <ohwoeowho@gmail.com>
  2811. Add "C-v" and "M-v" scrolling
  2812. * ivy.el (ivy-minibuffer-map): Update.
  2813. (ivy-scroll-up-command): New defun.
  2814. (ivy-scroll-down-command): New defun.
  2815. 2015-04-18 Oleh Krehel <ohwoeowho@gmail.com>
  2816. ivy.el (ivy-alt-done): Update for 0 candidates
  2817. 2015-04-18 Oleh Krehel <ohwoeowho@gmail.com>
  2818. swiper.el: Add a work-around for window-start not being current
  2819. * swiper.el (swiper--update-input-ivy): Update.
  2820. This results in double the window-height amount of lines being
  2821. heightlighted, instead of just window-height. But at least it doesn't
  2822. happen that some candidates within the current window aren't highlighted
  2823. since they're beyond the outdated window-start and window-end.
  2824. An alternative would be to use `redisplay' to update `window-start' and
  2825. `window-end', but that causes excessive blinking.
  2826. * ivy-test.el: Add a require.
  2827. 2015-04-18 Oleh Krehel <ohwoeowho@gmail.com>
  2828. ivy.el: Move all defvar before their first use
  2829. 2015-04-18 Oleh Krehel <ohwoeowho@gmail.com>
  2830. Add ivy key bindings to "C-h m"
  2831. * ivy.el (ivy-mode): Update.
  2832. Re #37
  2833. 2015-04-18 Oleh Krehel <ohwoeowho@gmail.com>
  2834. Allow to customize the dotted directories
  2835. * ivy.el (ivy-extra-directories): New defcustom.
  2836. (ivy--sorted-files): Update.
  2837. Re #38
  2838. 2015-04-18 Oleh Krehel <ohwoeowho@gmail.com>
  2839. Add a work-around for completing topics in the info dir
  2840. * ivy.el (ivy-read): Weirdly, the topic names need to be wrapped in
  2841. "(...)". Also, `all-completions' returns nothing for "", but returns
  2842. stuff for "(". Also, `all-completions' for "(" returns plenty of
  2843. duplicates.
  2844. 2015-04-18 Oleh Krehel <ohwoeowho@gmail.com>
  2845. swiper.el (swiper-font-lock-ensure): Exclude dired-mode
  2846. 2015-04-18 Oleh Krehel <ohwoeowho@gmail.com>
  2847. counsel.el: Switch from `with-no-warnings' to `declare-function'
  2848. 2015-04-17 Oleh Krehel <ohwoeowho@gmail.com>
  2849. Allow to complete dir with "/" if it's a perfect match
  2850. * ivy.el (ivy--exhibit): Update.
  2851. 2015-04-17 Oleh Krehel <ohwoeowho@gmail.com>
  2852. Add sorting for file completion
  2853. * ivy.el (ivy-alt-done): Exit with current directory when on first
  2854. element, which is always "./", thanks to sorting.
  2855. (ivy--cd): Update.
  2856. (ivy--sorted-files): New defun for sorting file names. "./" and "../"
  2857. are always the first, then come the directories, then the files.
  2858. (ivy-read): Update.
  2859. 2015-04-17 Oleh Krehel <ohwoeowho@gmail.com>
  2860. Add "/" and "~" shortcuts while finding files
  2861. * ivy.el (ivy--cd): New defun.
  2862. (ivy-backward-delete-char): Use `ivy--cd'.
  2863. (ivy--exhibit): When the file completion text ends in "/" or "~", move
  2864. to those dirs.
  2865. 2015-04-17 Oleh Krehel <ohwoeowho@gmail.com>
  2866. Add work-around for DEF not being in COLLECTION for `completing-read'
  2867. * ivy.el (ivy-read): Update.
  2868. 2015-04-17 Oleh Krehel <ohwoeowho@gmail.com>
  2869. swiper.el: Remove dependency on ivy
  2870. ivy.el now comes together with swiper.
  2871. Re #36.
  2872. 2015-04-16 Oleh Krehel <ohwoeowho@gmail.com>
  2873. Ivy-mode now works better with `find-file'
  2874. * ivy.el (ivy-minibuffer-map): Bind "C-j" to visit a directory without
  2875. exiting the minibuffer.
  2876. (ivy--directory): New defvar.
  2877. (ivy-done): Expand file names.
  2878. (ivy-alt-done): New defun.
  2879. (ivy-backward-delete-char): When completing file names, visit the parent
  2880. dir.
  2881. (ivy-read): Add the predicate argument, similar to `completing-read'.
  2882. All code that uses `ivy-read' needs to be updated. Move the
  2883. collection/predicate stuff here.
  2884. (ivy-completing-read): Update.
  2885. (ivy--insert-prompt): Display the current directory when completing file
  2886. names.
  2887. 2015-04-16 Oleh Krehel <ohwoeowho@gmail.com>
  2888. ivy.el (ivy-completing-read): Rely more on `all-completions'
  2889. 2015-04-16 Oleh Krehel <ohwoeowho@gmail.com>
  2890. Add require-match functionality
  2891. * ivy.el (ivy-require-match): New defvar.
  2892. (ivy-done): When nothing matches, and `ivy-require-match' isn't t, use
  2893. the current text anyway.
  2894. (ivy-completing-read): Update.
  2895. 2015-04-16 Oleh Krehel <ohwoeowho@gmail.com>
  2896. Add function as collection support for ivy-mode
  2897. * ivy.el (ivy-completing-read): Update. Ignore initial input for
  2898. function collection type.
  2899. 2015-04-16 Oleh Krehel <ohwoeowho@gmail.com>
  2900. Don't try to fontify huge buffers
  2901. * swiper.el (swiper-font-lock-ensure): Update.
  2902. 2015-04-16 Oleh Krehel <ohwoeowho@gmail.com>
  2903. Remove ido-mode shenanigans
  2904. Combining `ido-mode' and `ivy-read' seemed to cause a problem at some
  2905. stage. Can't reproduce now, so I'll just remove this for a while.
  2906. 2015-04-16 Oleh Krehel <ohwoeowho@gmail.com>
  2907. swiper.el: Bump version
  2908. 2015-04-13 Oleh Krehel <ohwoeowho@gmail.com>
  2909. Fix thing-at-point in describe-function and -variable
  2910. * counsel.el (counsel-describe-variable): Update.
  2911. (counsel-describe-function): Update.
  2912. 2015-04-10 Oleh Krehel <ohwoeowho@gmail.com>
  2913. Update sorting order, make sure that perfect match is selected
  2914. ivy.el (ivy-completions): Update.
  2915. When the regex matches perfectly, select it.
  2916. 2015-04-09 Oleh Krehel <ohwoeowho@gmail.com>
  2917. Add ivy-mode
  2918. * ivy.el (ivy-completing-read): New defun.
  2919. (ivy-mode): New global minor mode.
  2920. 2015-04-09 Oleh Krehel <ohwoeowho@gmail.com>
  2921. swiper.el (swiper-font-lock-ensure): Exclude org-agenda-mode
  2922. Re #19
  2923. 2015-04-09 Oleh Krehel <ohwoeowho@gmail.com>
  2924. Add four more commands
  2925. * counsel.el (counsel-describe-variable): New defun.
  2926. (counsel-describe-function): New defun.
  2927. (counsel-info-lookup-symbol): New defun.
  2928. (counsel-unicode-char): New defun.
  2929. * Makefile: Compile counsel.el as well.
  2930. 2015-04-03 Steve Purcell <steve@sanityinc.com>
  2931. Fix invalid package header line
  2932. 2015-04-03 Oleh Krehel <ohwoeowho@gmail.com>
  2933. counsel.el: Fixup prefixes
  2934. 2015-04-03 Oleh Krehel <ohwoeowho@gmail.com>
  2935. counsel.el (couns-clj): Add with-no-warnings
  2936. 2015-04-02 Oleh Krehel <ohwoeowho@gmail.com>
  2937. counsel.el: Update comments
  2938. 2015-03-31 Oleh Krehel <ohwoeowho@gmail.com>
  2939. Fix `ivy-backward-delete-char-function'
  2940. * ivy.el (ivy-on-del-error-function): Rename from
  2941. `ivy-backward-delete-char-function'.
  2942. (ivy-backward-delete-char): Don't use eval.
  2943. 2015-03-30 Kevin <nivekuil@gmail.com>
  2944. Add defcustom for ivy-backward-delete-char
  2945. 2015-03-30 Oleh Krehel <ohwoeowho@gmail.com>
  2946. Allow duplicate candidates in `ivy-read'
  2947. * ivy.el (ivy-completions): Use `eq' instead of `equal' in
  2948. `cl-position'.
  2949. 2015-03-27 Oleh Krehel <ohwoeowho@gmail.com>
  2950. swiper.el (swiper-map): Bind "C-l" to recenter
  2951. * swiper.el (swiper-map): Update.
  2952. (swiper-recenter-top-bottom): New defun.
  2953. (swiper--update-input-ivy): Use `<=' in order for `recenter-top-bottom'
  2954. to work.
  2955. 2015-03-26 Oleh Krehel <ohwoeowho@gmail.com>
  2956. swiper.el (swiper-query-replace): Enable recursive minibuffers
  2957. * swiper.el (swiper-query-replace): Update.
  2958. Fixes #31.
  2959. 2015-03-26 Oleh Krehel <ohwoeowho@gmail.com>
  2960. Default ARG to 1 for arrows
  2961. * ivy.el (ivy-next-line): Update.
  2962. (ivy-previous-line): Update.
  2963. 2015-03-26 Oleh Krehel <ohwoeowho@gmail.com>
  2964. Add numeric arguments to arrows
  2965. * ivy.el (ivy-next-line): Update.
  2966. (ivy-next-line-or-history): Update.
  2967. (ivy-previous-line): Update.
  2968. (ivy-previous-line-or-history): Update.
  2969. (ivy-read): Update doc.
  2970. 2015-03-26 Oleh Krehel <ohwoeowho@gmail.com>
  2971. "C-s" should forward to "C-n" etc
  2972. * ivy.el (ivy-next-line-or-history): Update.
  2973. (ivy-previous-line-or-history): Update.
  2974. 2015-03-25 Oleh Krehel <ohwoeowho@gmail.com>
  2975. Allow to cancel "M-q" with "C-g"
  2976. swiper.el (swiper-query-replace): If the TO argument to
  2977. `perform-replace' isn't read, don't exit minibuffer.
  2978. If the user called `swiper-query-replace' and isn't happy with the
  2979. current input being the FROM arg of `perform-replace', it's possible to
  2980. cancel with "C-g", and edit the input once again.
  2981. 2015-03-25 Oleh Krehel <ohwoeowho@gmail.com>
  2982. swiper.el (swiper-query-replace): Call only in minibuffer
  2983. 2015-03-25 Oleh Krehel <ohwoeowho@gmail.com>
  2984. Add swiper-query-replace
  2985. * ivy.el (ivy-read): Update signature - a keymap is also accepted and
  2986. the argument order has changed.
  2987. The keymap is composed with `ivy-minibuffer-map'.
  2988. Update for `ivy--action'.
  2989. (ivy--action): New defvar. If a function sets it, `ivy-read' will call
  2990. it.
  2991. * swiper.el (swiper-map): New defvar.
  2992. (swiper-query-replace): New defun.
  2993. (swiper--ivy): Use swiper-map in the call to `ivy-read'.
  2994. * counsel.el (couns-git): Fix one empty candidate.
  2995. 2015-03-25 Oleh Krehel <ohwoeowho@gmail.com>
  2996. swiper.el (swiper-font-lock-ensure): Ignore gnus modes
  2997. 2015-03-23 Oleh Krehel <ohwoeowho@gmail.com>
  2998. Ensure that inserted candidates don't have read-only property
  2999. * ivy.el (ivy-completions): Update.
  3000. Fixes #28.
  3001. The issue was that the whole text of erc buffer has (read-only t)
  3002. property. That means if I copy some of those strings and insert them
  3003. into the minibuffer, I can't delete them unless I set
  3004. `inhibit-read-only' to t. Instead, I set the read-only to nil for the
  3005. string that I insert. It doesn't affect the original buffer string.
  3006. 2015-03-23 Oleh Krehel <ohwoeowho@gmail.com>
  3007. swiper.el (swiper-font-lock-ensure): Omit erc-mode
  3008. Re #28
  3009. 2015-03-22 Oleh Krehel <ohwoeowho@gmail.com>
  3010. Update Copyright
  3011. 2015-03-22 Oleh Krehel <ohwoeowho@gmail.com>
  3012. Move swiper-helm to another repo
  3013. 2015-03-22 John Mastro <john.b.mastro@gmail.com>
  3014. ivy.el (ivy-wrap): New defcustom
  3015. (ivy-next-line): Wrap around if `ivy-wrap' is non-nil
  3016. (ivy-next-line-or-history): Wrap around if `ivy-wrap' is non-nil
  3017. (ivy-previous-line): Wrap around if `ivy-wrap' is non-nil
  3018. (ivy-previous-line-or-history): Wrap around if `ivy-wrap' is non-nil
  3019. 2015-03-22 John Mastro <john.b.mastro@gmail.com>
  3020. swiper.el (swiper-min-highlight): New defcustom
  3021. (swiper--add-overlays): Use `swiper-min-highlight'
  3022. 2015-03-22 John Mastro <john.b.mastro@gmail.com>
  3023. swiper.el (swiper--init): Set `swiper--opoint'
  3024. (swiper): Don't set `swiper--opoint'
  3025. 2015-03-21 Oleh Krehel <ohwoeowho@gmail.com>
  3026. Update "C-n" and "C-p" bindings
  3027. * ivy.el (ivy-next-line): Don't touch history.
  3028. (ivy-next-line-or-history): Select previous history element if there's
  3029. no input.
  3030. (ivy-previous-line): Don't touch history.
  3031. (ivy-previous-line-or-history): Select previous history element if
  3032. there's no input.
  3033. Re #23
  3034. 2015-03-21 Oleh Krehel <ohwoeowho@gmail.com>
  3035. Use `font-lock-append-text-property' to non-destructively modify a
  3036. string
  3037. * ivy.el (ivy--add-face): Improve.
  3038. `font-lock-append-text-property' non-destructively changes properties in
  3039. a string, which means if a string was copied from another and modified,
  3040. the original will not be changed. In this way, it's better than
  3041. `add-face-text-property'; and still better than `propertize' that simply
  3042. erases all properties before applying.
  3043. Fixes #22
  3044. 2015-03-21 Steve Purcell <steve@sanityinc.com>
  3045. Fix invalid package header line
  3046. 2015-03-21 Oleh Krehel <ohwoeowho@gmail.com>
  3047. Add a custom `ivy-count-format'
  3048. * ivy.el (ivy-count-format): New defcustom.
  3049. (ivy-read): Use `ivy-count-format', unless PROMPT already has a %d spec.
  3050. Set `ivy-count-format' to nil or "" if you don't want to see an
  3051. auto-updating match count in the minibuffer.
  3052. Re #23.
  3053. 2015-03-21 Oleh Krehel <ohwoeowho@gmail.com>
  3054. swiper-helm.el: Fix typo
  3055. 2015-03-21 Oleh Krehel <ohwoeowho@gmail.com>
  3056. swiper.el: Remove the helm bits
  3057. They are now in swiper-helm.el. Available for install separately from
  3058. MELPA.
  3059. 2015-03-20 Oleh Krehel <ohwoeowho@gmail.com>
  3060. swiper-helm.el: Copy all helm stuff here
  3061. 2015-03-20 Oleh Krehel <ohwoeowho@gmail.com>
  3062. ivy.el (ivy-completions): Simplify
  3063. 2015-03-19 Oleh Krehel <ohwoeowho@gmail.com>
  3064. ivy.el: Remove while-no-input
  3065. This will speed up the updates. But it might slow down somewhere else.
  3066. The issue was that "M-DEL" did not cause an update.
  3067. 2015-03-19 Oleh Krehel <ohwoeowho@gmail.com>
  3068. README.md: Add build status
  3069. 2015-03-19 Oleh Krehel <ohwoeowho@gmail.com>
  3070. ivy.el (ivy-read): Allow for format-style PROMPT
  3071. * ivy.el (ivy-read): When given a prompt of e.g. "%d pattern: ", update
  3072. the number of candidates in the prompt.
  3073. (ivy--prompt): New defvar.
  3074. (ivy--insert-prompt): New defun.
  3075. (ivy--exhibit): Call `ivy--insert-prompt'.
  3076. (ivy-completions): Fix a bug of `ivy--index' becoming -1 when the number
  3077. of matches becomes zero.
  3078. * swiper.el (swiper--format-spec): New defvar.
  3079. (swiper--candidates): Update.
  3080. (swiper--ivy): Use `swiper--format-spec' to make the prompt.
  3081. 2015-03-19 Oleh Krehel <ohwoeowho@gmail.com>
  3082. ivy.el (ivy-read): Change index to preselect
  3083. * ivy.el (ivy-read): Update signature. Instead of giving the integer
  3084. index of what to preselect, give a string to preselect.
  3085. (ivy--preselect-index): New defun.
  3086. * swiper.el (swiper--index-at-point): Rename to `ivy--preselect-index'.
  3087. (swiper--ivy): Simplify.
  3088. 2015-03-19 Oleh Krehel <ohwoeowho@gmail.com>
  3089. ivy-test.el: Add testing
  3090. * Makefile: Add a test and compile target.
  3091. 2015-03-19 Oleh Krehel <ohwoeowho@gmail.com>
  3092. ivy.el: Return nil when there is no match
  3093. * ivy.el (ivy-done): Update.
  3094. (ivy-read): Update.
  3095. 2015-03-19 Oleh Krehel <ohwoeowho@gmail.com>
  3096. swiper.el: Silence a few compilation warnings
  3097. 2015-03-18 Oleh Krehel <ohwoeowho@gmail.com>
  3098. swiper.el: Fix non-matching lines issue with initial-input
  3099. * swiper.el (swiper--index-at-point): New defun.
  3100. (swiper--ivy): Update.
  3101. Fixes #20.
  3102. 2015-03-18 Oleh Krehel <ohwoeowho@gmail.com>
  3103. Add isearch-like history behavior
  3104. * ivy.el (ivy-next-line): Select previous history element for empty
  3105. input.
  3106. (ivy-previous-line): Select previous history element for empty input.
  3107. (ivy-previous-history-element): New defun.
  3108. (ivy-next-history-element): New defun.
  3109. Re #21
  3110. 2015-03-18 Oleh Krehel <ohwoeowho@gmail.com>
  3111. ivy.el (ivy-read): Bring last history candidate to front
  3112. 2015-03-18 Oleh Krehel <ohwoeowho@gmail.com>
  3113. counsel.el: Add git file completion
  3114. * counsel.el (couns-git): Add.
  3115. 2015-03-18 Oleh Krehel <ohwoeowho@gmail.com>
  3116. swiper.el (swiper--helm): Require helm-match-plugin
  3117. This seems to be necessary after a recent helm update.
  3118. 2015-03-18 Oleh Krehel <ohwoeowho@gmail.com>
  3119. ivy.el: Fix ivy-history recording the full text instead of input
  3120. * ivy.el (ivy-read): Update.
  3121. Fixes #21
  3122. 2015-03-18 Oleh Krehel <ohwoeowho@gmail.com>
  3123. swiper.el (swiper-font-lock-ensure): Exclude a few modes
  3124. Re #19
  3125. 2015-03-17 Oleh Krehel <ohwoeowho@gmail.com>
  3126. Work around magit highlighting problem
  3127. * swiper.el (swiper-font-lock-ensure): Update.
  3128. Re #19
  3129. 2015-03-17 Oleh Krehel <ohwoeowho@gmail.com>
  3130. swiper.el (swiper--opoint): Fix bad defvar
  3131. 2015-03-17 Oleh Krehel <ohwoeowho@gmail.com>
  3132. counsel.el: Add Clojure completion at point
  3133. 2015-03-17 Oleh Krehel <ohwoeowho@gmail.com>
  3134. swiper.el: Fix error for empty buffer
  3135. * swiper.el (swiper--candidates): Update.
  3136. (swiper--action): Update.
  3137. Fixes #17.
  3138. 2015-03-16 killdash9 <killdash9>
  3139. Need to check value of variable
  3140. 2015-03-16 Oleh Krehel <ohwoeowho@gmail.com>
  3141. swiper.el: Clean up overlays better on "C-g"
  3142. * swiper.el (swiper--cleanup): Improve.
  3143. Fixes #11.
  3144. 2015-03-16 Oleh Krehel <ohwoeowho@gmail.com>
  3145. Open invisible overlays using isearch
  3146. * swiper.el (swiper--update-input-ivy): Improve.
  3147. Fixes #11.
  3148. 2015-03-16 Oleh Krehel <ohwoeowho@gmail.com>
  3149. ivy.el (ivy-read): Return immediately for less than 2 candidates
  3150. 2015-03-16 Oleh Krehel <ohwoeowho@gmail.com>
  3151. counsel.el: Add
  3152. 2015-03-15 Oleh Krehel <ohwoeowho@gmail.com>
  3153. Truncate candidates to window width in the minibuffer
  3154. * ivy.el (ivy-completions): Update.
  3155. 2015-03-15 Oleh Krehel <ohwoeowho@gmail.com>
  3156. Add some rudimentary history handling
  3157. * ivy.el (ivy-minibuffer-map): Bind "M-n", "M-p", and "C-g".
  3158. (ivy-history): New defvar.
  3159. (ivy-read): Update.
  3160. (ivy--minibuffer-setup): Offer thing-at-point for "M-n".
  3161. (ivy--default): New defvar.
  3162. Re #16.
  3163. 2015-03-15 Oleh Krehel <ohwoeowho@gmail.com>
  3164. ivy.el (ivy-previous-line): Change to `cl-decf'
  3165. Re #15
  3166. 2015-03-15 Oleh Krehel <ohwoeowho@gmail.com>
  3167. swiper.el: Make ivy the default back end
  3168. 2015-03-15 Oleh Krehel <ohwoeowho@gmail.com>
  3169. Don't recenter unless necessary
  3170. * swiper.el (swiper--update-input-ivy): Update.
  3171. 2015-03-15 Oleh Krehel <ohwoeowho@gmail.com>
  3172. Add anchoring
  3173. * ivy.el (ivy-read): Add optional argument INDEX. It's the index of
  3174. initally selected entry.
  3175. (ivy-completions): Update.
  3176. * swiper.el (swiper--ivy): Call `ivy-read' with `line-number-at-pos'.
  3177. Fixes #16
  3178. 2015-03-15 Xavier Garrido <xavier.garrido@gmail.com>
  3179. Fix use of cl-incf
  3180. * ivy.el (ivy-next-line): Update.
  3181. Fixes #15
  3182. 2015-03-14 Oleh Krehel <ohwoeowho@gmail.com>
  3183. Require delsel for `minibuffer-keyboard-quit'
  3184. * ivy.el (ivy-backward-delete-char): Update.
  3185. Fixes #14.
  3186. 2015-03-14 Oleh Krehel <ohwoeowho@gmail.com>
  3187. swiper.el: Save position before last search
  3188. * swiper.el (swiper--ivy): Forward to `swiper--action'.
  3189. (swiper--helm): Use `swiper--action-helm'.
  3190. (swiper--action-helm): New defun.
  3191. (swiper--action): Generalize, use push-mark, similarly to `isearch'.
  3192. Fixes #12.
  3193. 2015-03-14 Oleh Krehel <ohwoeowho@gmail.com>
  3194. Reveal invisible overlays
  3195. * swiper.el (swiper--ivy): Update.
  3196. (swiper--ensure-visible): New defun.
  3197. (swiper--action): Update.
  3198. Fixes #11.
  3199. 2015-03-14 Steve Purcell <steve@sanityinc.com>
  3200. Inherit standard faces by default
  3201. Every time a new custom face definition is created, it breaks every
  3202. existing theme. Better, then, to inherit standard faces by default.
  3203. This commit has the side benefit of making the faces defined here
  3204. legible in themes with dark backgrounds.
  3205. 2015-03-14 Oleh Krehel <ohwoeowho@gmail.com>
  3206. swiper.el: Restore original point on canceling
  3207. * swiper.el (swiper--opoint): New defvar.
  3208. (swiper): Update.
  3209. (swiper--ivy): Update.
  3210. Fixes #9.
  3211. 2015-03-14 Oleh Krehel <ohwoeowho@gmail.com>
  3212. ivy.el: Add `ivy-exit'
  3213. * ivy.el (ivy-done): Update.
  3214. (ivy-read): Update.
  3215. (ivy-exit): New defvar.
  3216. 2015-03-14 Oleh Krehel <ohwoeowho@gmail.com>
  3217. Add initial-input optional argument
  3218. * swiper.el (swiper): Update.
  3219. (swiper--ivy): Update.
  3220. (swiper--helm): Update.
  3221. * ivy.el (ivy-read): Update.
  3222. Fixes #8.
  3223. 2015-03-13 Oleh Krehel <ohwoeowho@gmail.com>
  3224. Account for zero-length regex matches
  3225. * swiper.el (swiper--add-overlays): Update.
  3226. Fixes #6.
  3227. 2015-03-13 Oleh Krehel <ohwoeowho@gmail.com>
  3228. swiper.el: Use `with-selected-window' instead of `with-current-buffer'
  3229. * swiper.el (swiper--buffer): Remove.
  3230. (swiper--init): Update.
  3231. (swiper--update-input-helm): Update.
  3232. (swiper--update-input-ivy): Update.
  3233. (swiper--update-sel): Update.
  3234. 2015-03-13 Oleh Krehel <ohwoeowho@gmail.com>
  3235. ivy.el: Improve the highlighting in the minibuffer
  3236. * ivy.el (ivy--add-face): Use `add-face-text-property' if it's
  3237. available. You need to upgrade to Emacs 24.4 to get this feature.
  3238. (ivy-completions): Use `ivy--add-face'.
  3239. 2015-03-13 Oleh Krehel <ohwoeowho@gmail.com>
  3240. README.md: Update
  3241. 2015-03-13 Oleh Krehel <ohwoeowho@gmail.com>
  3242. Update dependencies.
  3243. * ivy.el: Depend on emacs "24.1".
  3244. * swiper.el: Depend on ivy "0.1.0".
  3245. 2015-03-13 Oleh Krehel <ohwoeowho@gmail.com>
  3246. Add `ivy' back end
  3247. * ivy.el: New completion back end.
  3248. * swiper.el: Package doesn't depend on `helm'.
  3249. (ivy): Depend on `ivy'.
  3250. (swiper-completion-method): New defcustom.
  3251. (swiper--window): New var.
  3252. (swiper--helm-keymap): Rename from `swiper--keymap'.
  3253. (swiper): Change to a dispatch.
  3254. (swiper--init): New defun.
  3255. (swiper--ivy): New command.
  3256. (swiper--helm): New command.
  3257. (swiper--cleanup): New defun.
  3258. (swiper--update-input-helm): Rename from `swiper--update-input'.
  3259. (swiper--update-input-ivy): New defun.
  3260. (swiper--add-overlays): New defun.
  3261. (swiper--update-sel): Update.
  3262. (swiper--subexps):
  3263. (swiper--regex-hash):
  3264. (swiper--regex): Move to ivy.
  3265. (swiper--action): Update.
  3266. 2015-03-11 killdash9 <killdash9>
  3267. familiar isearch key bindings while helm is active
  3268. 2015-03-11 Oleh Krehel <ohwoeowho@gmail.com>
  3269. swiper.el (swiper--regex): Update signature
  3270. 2015-03-11 Syohei YOSHIDA <syohex@gmail.com>
  3271. Use cl-lib macros instead of cl.el
  3272. 2015-03-11 Syohei YOSHIDA <syohex@gmail.com>
  3273. add autoload cookie for lazy loading
  3274. 2015-03-11 Oleh Krehel <ohwoeowho@gmail.com>
  3275. Add dependency on emacs 24.1
  3276. 2015-03-10 Oleh Krehel <ohwoeowho@gmail.com>
  3277. Add compatibility alias for `font-lock-ensure'
  3278. * swiper.el (swiper-font-lock-ensure): Add.
  3279. Fixes #1.
  3280. 2015-03-10 Oleh Krehel <ohwoeowho@gmail.com>
  3281. README.md: Add
  3282. 2015-03-10 Oleh Krehel <ohwoeowho@gmail.com>
  3283. swiper.el (swiper--regex): Zero groups without space
  3284. * swiper.el (swiper--update-input): Update the face order accordingly.
  3285. 2015-03-10 Oleh Krehel <ohwoeowho@gmail.com>
  3286. Update call to `font-lock-ensure'
  3287. * swiper.el (swiper--candidates): `font-lock-ensure' takes no arguments
  3288. in 24.4.1.
  3289. 2015-03-09 Oleh Krehel <ohwoeowho@gmail.com>
  3290. Initial import