From: Oleh Krehel Date: Mon, 25 Apr 2016 09:57:11 +0000 (+0200) Subject: doc/Changelog.org: Prepare for the 0.8.0 release X-Git-Url: https://code.delx.au/gnu-emacs-elpa/commitdiff_plain/bab5aabf65556e34ab956ccca3aa1823a59d9253 doc/Changelog.org: Prepare for the 0.8.0 release --- diff --git a/doc/Changelog.org b/doc/Changelog.org index 21076dea1..df721d3cf 100644 --- a/doc/Changelog.org +++ b/doc/Changelog.org @@ -614,3 +614,573 @@ Complete Common Lisp symbols using SLIME. *** =counsel-yank-pop= Give completion for inserting from the kill ring. See =counsel-yank-pop-truncate= defcustom and [[https://github.com/abo-abo/swiper/issues/218][#218]]. + +* 0.8.0 +** Package rename +Due to popular demand, =swiper-0.7.0= is succeeded by =ivy-0.8.0= in GNU +ELPA. The contents of the package don't change, only the name. Make +sure to remove the =~/.emacs.d/elpa/swiper-0.7.0= directory if you +have it and ~M-x~ =package-install ivy=. +** Documentation +HTML documentation is available at http://oremacs.com/swiper/. + +Texinfo documentation is in doc/ivy.texi. + +The HTML file shouldn't be in this repository to avoid bloat, instead +it's in the gh-pages branch at +https://github.com/abo-abo/swiper/tree/gh-pages. +** Fixes +*** ivy-read +**** Fix recursive minibuffer exit with ~C-g~ +Make it so e.g. ~C-h f C-h v C-g~ goes back to the =describe-function= selection. +**** Ensure the return result +In some cases, =read-from-minibuffer= will return the whole minibuffer +contents (i.e. all available candidates). Return =ivy--current= instead. +**** Properly support matching ignoring order +See [[https://github.com/abo-abo/swiper/issues/296][#296]] and [[https://github.com/abo-abo/swiper/issues/329][#329]]. +**** Insert intermediate candidates during async completions +See [[https://github.com/abo-abo/swiper/issues/340][#340]]. +**** Initialize =ivy-last= to empty state +See [[https://github.com/abo-abo/swiper/issues/352][#352]]. +**** Fix extra actions for =completing-read= +See [[https://github.com/abo-abo/swiper/issues/337][#337]]. +**** Support a list of symbols as collection +See [[https://github.com/abo-abo/swiper/issues/375][#375]]. +**** Define =setq-local= and =defvar-local= unless defined +With this commit, Ivy works on emacs-24.2. +See [[https://github.com/abo-abo/swiper/issues/415][#415]]. +**** Make ~M-o~ not modify the action +See [[https://github.com/abo-abo/swiper/issues/454][#454]]. +**** Make sure user keybindings are respected +See [[https://github.com/abo-abo/swiper/issues/466][#466]]. +**** Fix =read-file-name= with a specified dir +See [[https://github.com/abo-abo/swiper/issues/475][#475]]. +**** Don't highlight the match in the file part +See [[https://github.com/abo-abo/swiper/issues/483][#483]]. +**** Add a few tests for alists +*** ivy-occur +**** Fix =default-directory= +This way, =next-error= etc will work properly. +*** ivy--resize-minibuffer-to-fit +**** Fix for small delta +See [[https://github.com/abo-abo/swiper/issues/339][#339]]. +**** Check =frame-root-window-p= +See [[https://github.com/abo-abo/swiper/issues/380][#380]]. +*** ivy-completing-read +**** Use =completing-read-default= for tmm +See [[https://github.com/abo-abo/swiper/issues/316][#316]]. +*** ivy--regex-plus +**** Recognize ! at the beginning of the str +See [[https://github.com/abo-abo/swiper/issues/318][#318]]. +**** Prettify a bit +See [[https://github.com/abo-abo/swiper/issues/344][#344]]. +**** Don't consider =\\(?...\)= a group +See [[https://github.com/abo-abo/swiper/issues/393][#393]]. +*** ivy--get-window +**** Always return a valid window +Even if =state= is invalid. +*** ivy--recompute-index +**** Update =cl-position= logic +See [[https://github.com/abo-abo/swiper/issues/207][#207]]. +*** ivy-reverse-i-search +**** Fix due to recursive update +See [[https://github.com/abo-abo/swiper/issues/323][#323]]. +*** ivy--reset-state +**** Don't null =initial-input= +This is specifically for ='read-file-name-internal= collection. The +input needs to be set to nil for e.g. =rgrep=, which supplies the +*absolute* path as =initial-input=, resulting in a mess. + +For now, don't set input to nil if =:action= was passed to =ivy-read=. +See [[https://github.com/abo-abo/swiper/issues/336][#336]]. +**** Don't deactivate region +See [[https://github.com/abo-abo/swiper/issues/377][#377]]. +*** ivy-completion-in-region +**** Use =completion-all-completions= +See [[https://github.com/abo-abo/swiper/issues/341][#341]]. +**** Optimize for 1 candidate +When there's only one candidate, call the action immediately. +**** Add feedback for 1 candidate +When the sole completion is the same as the input, notify the user. +See [[https://github.com/abo-abo/swiper/issues/350][#350]]. +**** Bind =completion-ignore-case= +It's convenient to have it the same value as =case-fold-search=. +*** ivy-read-action +**** Give enough minibuffer space +See [[https://github.com/abo-abo/swiper/issues/402][#402]]. +**** Allow to customize the action hint formatter +See [[https://github.com/abo-abo/swiper/issues/469][#469]]. +*** ivy-count-format +**** Fix for nil value +See [[https://github.com/abo-abo/swiper/issues/349][#349]]. +*** ivy-switch-buffer +**** Don't fall back to =switch-to-buffer= +See [[https://github.com/abo-abo/swiper/issues/410][#410]]. +*** ivy-next-history-element +**** No "\\_<" for dynamic-collection +"\\_<" regex is Emacs-specific and should only be done if +=:dynamic-collection= is nil. It is nil for =counsel-git-grep= with +repositories < 20000 lines, but non-nil for larger ones. + +Fixes [[https://github.com/abo-abo/swiper/issues/409][#409]]. +*** ivy-occur-press +**** Pulse no longer +Repeated pulses within a short time span resulted in horrible window +flickering. +*** ivy-resume +**** Add a guard against null =:action= +*** ivy-avy +**** Make ~C-g~ cancel gracefully +See abo-abo/avy[[https://github.com/abo-abo/swiper/issues/140][#140]]. +*** ivy-dispatching-done +Allow to exit with no candidates. +*** swiper +**** Improve for multiple occurrences on one line +See [[https://github.com/abo-abo/swiper/issues/314][#314]]. +**** Fix "backward" search +When none of the previous candidates after the point match the current +input, instead of returning 0, return the index of the last matching +candidate. This is a good choice, because that candidate is the +closest to the point of the initial search start. + +See [[https://github.com/abo-abo/swiper/issues/319][#319]]. +**** Return point +See [[https://github.com/abo-abo/swiper/issues/370][#370]]. +**** Update =regexp-search-ring= +See [[https://github.com/abo-abo/swiper/issues/89][#89]]. +**** Always remove '(field) text property +Allows to search better in modes for shell interaction. +*** swiper-font-lock-ensure +**** Add modes +Add bongo-library-mode, bongo-playlist-mode, sauron-mode. + +See [[https://github.com/abo-abo/swiper/issues/19][#19]]. +**** Don't fail when font-lock is off +See [[https://github.com/abo-abo/swiper/issues/400][#400]]. +*** swiper--multi-candidates +**** Add check for =make-string= +See [[https://github.com/abo-abo/swiper/issues/481][#481]]. +*** counsel--async-sentinel +**** Fix issue with =ivy--regex-ignore-order= +See [[https://github.com/abo-abo/swiper/issues/342][#342]]. +**** Re-display when no cands +**** Recognize error codes other than 1 +See [[https://github.com/abo-abo/swiper/issues/394][#394]]. +*** consel-git +**** Fix window selection. +Use =with-ivy-window=, so that each new file chosen with e.g. ~C-M-n~ is +selected in the same window. +*** counsel-recoll +**** Add =:unwind= +See [[https://github.com/abo-abo/swiper/issues/403][#403]]. +*** compilation warnings +See [[https://github.com/abo-abo/swiper/issues/324][#324]]. +** New Features +*** ivy-read +**** Use =flx= for highlighting fuzzy matches +See [[https://github.com/abo-abo/swiper/issues/207][#207]]. +**** Simplify the signature for =:dynamic-collection= functions +When given =:dynamic-collection=, assume the collection function only +needs one argument - the string input. +**** Modify ~M-n~ prediction when region is active +When the region is active and ~M-n~ is called, insert the region +contents into the minibuffer and deactivate the region. The region +deactivation is done for =swiper=, to make it easier to search for +multiple words or a subword. +**** Allow to compose collections +***** Example 1: async collection +Stack =recentf= on top of =counsel-locate=: + +#+begin_src elisp +(defun small-test () + (cl-subseq recentf-list 0 10)) + +(ivy-set-sources + 'counsel-locate + '((small-test) + (original-source))) +#+end_src + +Here, (original-source) represents the async candidates of +=counsel-locate=. All extra sources are static - each function is called +once to generate a list of strings, which will be filtered later. + +The order matters, so you can have e.g.: + +#+begin_src elisp +(ivy-set-sources + 'counsel-locate + '((original-source) + (small-test))) +#+end_src + +See [[https://github.com/abo-abo/swiper/issues/373][#373]]. +***** Example 2: sync collection +#+begin_src elisp +(defun my-extra-source () + (append + (when (eq 'Git (vc-backend (buffer-file-name))) + (list "git1" "git2" "git3")) + (when (file-exists-p "doc/Changelog.org") + (list (propertize "doc/Changelog.org" 'face '(:background "red")))))) + +(defun my-find-file () + (interactive) + (ivy-read "Find file: " 'read-file-name-internal + :action (lambda (x) + (with-ivy-window + (find-file (expand-file-name x ivy--directory)))) + :require-match 'confirm-after-completion + :history 'file-name-history + :caller 'my-find-file)) + +(ivy-set-sources + 'my-find-file + '((my-extra-source) + (original-source))) +#+end_src + +The function =my-find-file= knows nothing about the extra source, it's +only purpose is to introduce a =:caller= to attach things to, as to not +to mess up e.g. =counsel-find-file=. + +The function =my-extra-source= gets called once in =ivy-read= via +=ivy--reset-state=. It takes no args and returns a list of strings, +possibly empty. +**** Improve documentation UI +Bind ~C-h m~ to =ivy-help=. + +=ivy-help-file= is a new defvar pointing to the ivy-help.org file. + +Bind ~D~ in =hydra-ivy= to go to hydra's definition. + +See [[https://github.com/abo-abo/swiper/issues/376][#376]] and [[https://github.com/abo-abo/swiper/issues/379][#379]]. +**** Add ignore pattern toggling +~C-c C-a~ is bound to =ivy-toggle-ignore= - a new command to toggle ignore +patterns (user-configured filtering). If the ignore patterns are +enabled and there are zero candidates after ignoring, display the ones +that match the current text. This feature currently works for +=ivy-switch-buffer= and =counsel-find-file=. + +See [[https://github.com/abo-abo/swiper/issues/369][#369]]. +*** ivy-mode +**** Set =completion-in-region-function= +See [[https://github.com/abo-abo/swiper/issues/331][#331]]. +**** Improve ~M-n~ for ='read-file-name-internal= +*** ivy-set-occur +Allows to customize =ivy-occur= per-command. +**** =ivy-switch-buffer= +Add custom occur. +See [[https://github.com/abo-abo/swiper/issues/438][#438]] and [[https://github.com/abo-abo/swiper/issues/440][#440]]. +*** ivy-occur-mode +**** New commands on ~j~, ~k~, ~c~ +(ivy-occur-toggle-calling): New command bound to ~c~. +(ivy-occur-next-line): New command bound to ~j~. +(ivy-occur-previous-line): New command bound to ~k~. + +This makes =ivy-occur= much more convenient, instead of ~gjgjgjg~, just +~cjjj~. Especially good for commands that change the contents of the +other window, like =describe-function= or =counsel-git-grep=. + +Example: + +- ~C-h f~ (=describe-funtion=) +- =run= (=self-insert-command=) +- ~C-c C-o~ (=ivy-occur=); ~C-o u~ also works. +- ~cjjjjkkkk~ +**** New command =ivy-occur-revert-buffer= on ~g~ +Does what e.g. =revert-buffer= does for *Help* buffers. + +Has special handling for =counsel-git-grep=, =counsel-ag= and +=counsel-grep=: will run the shell command once more and reflect the +updates in files. + +Move =ivy-occur-press= from ~g~ to ~f~. +**** Improve the feedback for ~j~ and ~k~ +The overlays will be more responsive now. +*** ivy-re-builders-alist +**** Allow =this-command= to be a key +Example: +#+begin_src elisp +(defun asdf () + (interactive) + (completing-read "prompt: " '("abc" "abcd" "def"))) + +(global-set-key (kbd "C-c t") 'asdf) + +(setq ivy-re-builders-alist + '( + (asdf . ivy--regex-fuzzy) + (t . ivy--regex-plus))) +#+end_src +This is useful for commands that you didn't write. For new commands +that you write, consider using =ivy-read= and =:caller=. + +See [[https://github.com/abo-abo/swiper/issues/330][#330]]. +*** ivy-set-actions +**** Call with =t= to affect all commands +Example: + +#+begin_src elisp +(ivy-set-actions + t + '(("i" insert "insert"))) +#+end_src + +Now an "insert" action will be available for all =ivy-read= sessions +when pressing ~M-o~. + +See [[https://github.com/abo-abo/swiper/issues/337][#337]]. +*** ivy-faces +New defcustom group. +See [[https://github.com/abo-abo/swiper/issues/389][#389]]. +*** ivy-flx-limit +New variable. Configure when =flx= is used. +See [[https://github.com/abo-abo/swiper/issues/207][#207]]. +*** ivy-ignore-buffers +New defcustom. See [[https://github.com/abo-abo/swiper/issues/366][#366]]. +*** ivy-inhibit-action +New variable. See [[https://github.com/abo-abo/swiper/issues/363][#363]]. +*** ivy-do-completion-in-region +New defcustom. See [[https://github.com/abo-abo/swiper/issues/367][#367]]. +*** ivy-fixed-height-minibuffer +New defcustom. + +When non nil, fix the height of the minibuffer during ivy completion +at =ivy-height=. This effectively sets the minimum height at this level +and tries to ensure that it does not change depending on the number of +candidates. + +See [[https://github.com/abo-abo/swiper/issues/353][#353]]. +*** ivy-set-display-transformer +New API function. + +Now used by =switch-to-buffer= and =read-file-name=. + +See [[https://github.com/abo-abo/swiper/issues/399][#399]]. +*** ivy-ignore-buffers +New defcustom similar to =ido-ignore-buffers=. + +See [[https://github.com/abo-abo/swiper/issues/382][#382]]. +*** ivy-add-newline-after-prompt +New defcustom. + +See [[https://github.com/abo-abo/swiper/issues/451][#451]]. +*** ivy-switch-buffer +**** Add virtual views +=ivy-views= variable stores pre-defined views. Allows to set a window +configuration with many buffers from =ivy-switch-buffer=. + +How to use: just set =ivy-views= appropriately. An example value is +provided (but nulled, so that it's empty initially). +*** ivy-use-ignore-default +New defcustom + +See [[https://github.com/abo-abo/swiper/issues/477][#477]]. +*** swiper +**** Improve =swiper-query-replace= +To replace a symbol with a similar symbol, + +1. Press ~C-s M-n~ for =swiper= and select the symbol at point as input. +2. Press ~M-q~ for =swiper-query-replace= +3. Press ~M-n~ to yank the symbol to replace. +4. Edit the replacement and ~RET~. + +Here step-3 was modified to yank e.g. "symbol" instead of +"\_" previously. + +*** swiper-font-lock-exclude +New variable for major modes that misbehave with =font-lock-ensure=. +See [[https://github.com/abo-abo/swiper/issues/346][#346]]. +*** swiper-all +**** New auto-updates position +See [[https://github.com/abo-abo/swiper/issues/401][#401]]. +*** counsel-mode +A minor-mode that remaps built-in functions that have counsel +replacements available. + +See [[https://github.com/abo-abo/swiper/issues/414][#414]]. +**** Allow use of describe-prefix-bindings +See [[https://github.com/abo-abo/swiper/issues/441][#441]]. +*** counsel-find-file +**** Add =initial-input= +See [[https://github.com/abo-abo/swiper/issues/336][#336]]. +**** Change tramp prompt from "Find File: " to "user@host: " +**** Bind =counsel-up-directory= to ~C-DEL~ +New function that moves up to the parent directory and at the same +time preselects the current directory. This is useful for moving up +and down a file tree quickly. + +See [[https://github.com/abo-abo/swiper/issues/343][#343]]. +**** Customize =M-n= action +This feature allows to quickly visit Github issues from either +=magit-commit-mode= or from a version-controlled file. The point has to +be at the "#" char in e.g. "[[https://github.com/abo-abo/swiper/issues/123][#123]]", that represents an issue. + +It's possible to customize =ivy-ffap-url-functions= to do a similar +thing for places other than Github. + +The ~C-x C-f M-n~ key binding will work better with =counsel-find-file=, +for plain =find-file= it will open a =dired= buffer in addition to opening +the URL. +**** Can un-ignore dotfiles with a leading dot input +When =ivy-text= starts with a dot, don't use +=counsel-find-file-ignore-regexp=. The generic way to do this is with +~C-c C-a~ (=ivy-toggle-ignore=), but this is faster and more convenient. + +See [[https://github.com/abo-abo/swiper/issues/408][#408]]. +**** Bind ~M-o f~ to =find-file-other-window= +**** Correctly expand file name at point +See [[https://github.com/abo-abo/swiper/issues/430][#430]]. +**** Add display transformer +See [[https://github.com/abo-abo/swiper/issues/458][#458]]. +**** Add magic slash that changes the directory +Update to the behavior: the slash ("/") will enter a directory even if +its name isn't completely typed out if either: + +1. It's the only candidate. +2. The candidate index isn't 0, i.e. "C-n" has been typed at least once. +3. The input isn't "/". + +The above rules still allow to keep the old behavior with "//" moving +to root and "/ssh:" opening tramp. + +This is an experimental feature, please report if it breaks someone's +workflow. + +See [[https://github.com/abo-abo/swiper/issues/321][#321]] and [[https://github.com/abo-abo/swiper/issues/480][#480]]. +*** counsel-git-grep +**** Bind ~C-c C-m~ to =counsel-git-grep-switch-cmd= +The initial command always runs on all files. + +To run only on *.el files, ~C-c C-m~ followed by ~M-i~ =-- *.el=. +To run on *.c and *.h files, ~C-c C-m~ followed by ~M-i~ =-- *.c *.h=. +To switch to all files again, ~C-c C-m~ and select the appropriate +entry. + +See [[https://github.com/abo-abo/swiper/issues/420][#420]]. +*** counsel-locate +**** counsel-locate-cmd +New defcustom that replaces =counsel-locate-options=. + +See [[https://github.com/abo-abo/swiper/issues/385][#385]]. +**** counsel-locate-cmd-mdfind +New function. +See [[https://github.com/abo-abo/swiper/issues/390][#390]]. +**** counsel-locate-cmd-es +New function. +See [[https://github.com/abo-abo/swiper/issues/426][#426]]. +*** counsel-yank-pop +**** Truncate during display +During the completion, only the context around the match will be shown. +By default, the context is +2 lines above and +2 lines below the match. +It can be adjusted with =counsel-yank-pop-truncate-radius=. +Additionally, =ivy-height= is temporarily bound to 5 during completion. +This way, the maximum minibuffer height should be 1+4*5=21 lines. + +See [[https://github.com/abo-abo/swiper/issues/315][#315]]. +*** counsel-unicode-char +Display hex codes in left column. +*** counsel-rhythmbox +**** Preselect the current song +*** counsel-ag +**** =counsel-ag-base-command= +Allows the command run by =counsel-ag-function= to be customized. There +are several reasons to allow this: The vimgrep option is a recent +addition; on windows it's more convenient to use pt; and the user +might want to customize ignored files. + +Standard value: +#+begin_src elisp +(setq counsel-ag-base-command "ag --nocolor --nogroup %s -- .") +#+end_src + +See [[https://github.com/abo-abo/swiper/issues/335][#335]]. +**** Add dir prompt for ~C-u~ +See [[https://github.com/abo-abo/swiper/issues/429][#429]]. +**** Add =counsel-ag-map= +See [[https://github.com/abo-abo/swiper/issues/462][#462]]. +*** counsel-async-split-string-re +New defcustom. +*** counsel--async-cmd +**** Add optional exit-code table +This argument can be used to associate exit codes with the underlying +reason. Used in counsel-ag-function to signal that an exit code of 1 +means that no matches were found. + +See [[https://github.com/abo-abo/swiper/issues/421][#421]]. +*** counsel-prompt-function +New defcustom + +See [[https://github.com/abo-abo/swiper/issues/424][#424]] and [[https://github.com/abo-abo/swiper/issues/425][#425]]. +*** counsel-grep +**** Reveal outlines +Just like =swiper=. +**** Should pick candidates closest to point +Fixes the algorithm selecting the first matching candidate in case +there are 0 matching candidates following point. Now the last matching +candidate will be selected, resulting in less scrolling. +**** Speed up x40 times +The default shell command will not use =--ignore-case= switch for +=grep=. It's a bit less convenient, but results in a huge speed-up. +*** counsel-M-x +**** Add help action +Bound to ~M-o h~ by default. + +See [[https://github.com/abo-abo/swiper/issues/452][#452]]. +** New Commands +*** =counsel-tmm= +Completion for the menu bar items. For example: + +=counsel-tmm= -> =Options= -> =Set Default Font...=. + +Thanks to completion, the latter stages of the chain would look like: =op= ~RET~ =set= ~RET~. +*** =counsel-imenu= +Jump to a buffer position indexed by imenu. +*** =counsel-decbinds= +Show a list of all defined keys, and their definitions. Describe the +selected candidate. +See [[https://github.com/abo-abo/swiper/issues/332][#332]]. +*** =counsel-list-processes= +Offer completion for =process-list= + +The default action deletes the selected process. An extra action +allows to switch to the process buffer. + +See [[https://github.com/abo-abo/swiper/issues/357][#357]] and [[https://github.com/abo-abo/swiper/issues/398][#398]]. +*** =ivy-switch-buffer-other-window= +Remap =switch-to-buffer-other-window= to =ivy-switch-buffer-other-window= for =ivy-mode=. + +See [[https://github.com/abo-abo/swiper/issues/361][#361]]. +*** =counsel-git-stash= +Search through all available git stashes. + +See [[https://github.com/abo-abo/swiper/issues/374][#374]]. +*** =counsel-git-log= +Call the =git log --grep= shell command and search through the output. +*** =counsel-pt= +Grep for a string in the current directory using pt. + +See [[https://github.com/abo-abo/swiper/issues/434][#434]]. +*** =counsel-linux-app= +Launch a Linux desktop application, similar to Alt-. + +See [[https://github.com/abo-abo/swiper/issues/446][#446]]. +*** =counsel-ace-link= +Ivy completion for =ace-link=. +*** =counsel-esh-history= +Browse Eshell history. + +See [[https://github.com/abo-abo/swiper/issues/459][#459]]. +*** =counsel-shell-history= +Browse shell history. +*** =counsel-grep-or-swiper= +New command: automatically use =swiper= for smaller buffers and +=counsel-grep= for larger buffers. + +Adjust with: +#+begin_src elisp +(setq counsel-grep-swiper-limit 300000) +#+end_src + +By default, the splitting predicate is 300K bytes in a file.