66

Ivy 0.13.0 is out · (or emacs

 5 years ago
source link: https://oremacs.com/2019/10/16/ivy-0.13.0/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Ivy 0.13.0 is out

16 Oct 2019

Intro

Ivy is a completion method that's similar to Ido, but with emphasis on simplicity and customizability.

Overview

The current release constitutes of 183 commits and 3 months of progress since 0.12.0. Many issues ranging from #2153 to #2278 were fixed. The number of people who contributed code as grown to form 148 to 160. Thanks, everyone!

Details on changes

Changelog.org has been a part of the repository since 0.6.0, you can get the details of the current and past changes:

Highlights

Many improvements are incremental and don't require any extra code to enable. I'll go over a few selected features that require a bit of information to make a good use of them.

New bindings

  • counsel-find-file

    • ~~ to move to the local home directory from remote or /sudo::.
    • / RET ~ achieves the same thing, but is longer.
    • M-o R calls find-file-read-only.
  • counsel-git-grep

    • C-x C-d to switch the current directory.
  • swiper-isearch

    • M-o w to copy the current line and go back to where you started.

New features

counsel-package

The idea of counsel-package is to install and remove packages with a single binding:

(global-set-key (kbd "C-c P") 'counsel-package)

But if the package contents weren't up to date, a separate M-x package-refresh-contents had to be triggered, which was an annoying overhead. Now counsel-package will look at the time stamps of the appropriate archive-contents files, and call package-refresh-contents if the timestamp is outdated by more than 4 hours.

counsel-M-x

Some commands are intended to be called only via their key binding. Make them disappear from counsel-M-x like this:

(put 'counsel-find-symbol 'no-counsel-M-x t)

counsel-rg

The default setting of ivy-case-fold-search-default is 'auto, which means:

  • the input "emacs" matches "emacs", "EMACS", and "Emacs"
  • the input "Emacs" matches only "Emacs"

This now also applies to counsel-rg: Ivy will pass the -i flag to ripgrep appropriately, based on ivy-case-fold-search-default. You should remove the -S flag from counsel-rg-base-command if you customized it.

ivy-update-candidates

This is a new API for asynchronous calls. To use it, pass to ivy-read: :dynamic-collection t, and a collection function that takes a user input string, starts some asynchronous process based on that input, and returns 0. The 0 return result tells Ivy that no candidates were returned; instead, ivy-update-candidates is used in the async callback.

See counsel-google for a reference implementation.

ivy-use-virtual-buffers

You can now choose between: recent files, or bookmarks, or both, or none. Don't forget that counsel-set-variable makes it very easy to set customization options.

New Commands

I have put these separately so they don't get lost in the crowd. Be sure to try them out.

  • counsel-buffer-or-recentf - list buffers visiting files (highlighted) then the recentf file list.
  • counsel-fonts - show a list of all supported font families for a particular frame.
  • counsel-google - asynchronously query the Google predictive search API.
  • counsel-major - switch major-mode.
  • counsel-slime-repl-history - browse SLIME REPL history.

Outro

Again, thanks to all the contributors. Happy hacking!

PS. Thanks to everyone who supports me on Liberapay and Patreon!

I am now also on Github sponsors, which is an interesting new effort by Github. The cool thing is that's more integrated with Github, there are less transaction fees, and Github matches every donation for up to $5000 for a whole year. Please consider joining there, since every $1 per month that you donate is doubled by Github.


Recommend

  • 144

    Java Reflection, 1000x Faster 13 Sep 2017 A few weeks ago I got to make some of my code 1000 times faster, without changing the underlying complexity! As the title implies, this involved making Java reflection calls faster. L...

  • 257
    • writequit.org 7 years ago
    • Cache

    Ivy, Counsel and Swiper

    Ivy, Counsel and Swiper Ivy, Counsel and Swiper 1 What is Ivy? Ivy is a completion framework, similar to Helm. When do...

  • 120
    • Github github.com 7 years ago
    • Cache

    GitHub - Yevgnen/ivy-rich

    README More friendly interface for ivy This package comes with rich transformers for commands from ivy and counsel. It should be easy enough to define your own transformers too. Screenshots are av...

  • 68
    • blog.abhixec.com 6 years ago
    • Cache

    Hello Emacs World! · Blog Title

    Random musings

  • 44
    • emacsredux.com 6 years ago
    • Cache

    An easy-kill · Emacs Redux

  • 71
    • oremacs.com 5 years ago
    • Cache

    avy 0.5.0 is out · (or emacs

  • 44
    • www.tuicool.com 5 years ago
    • Cache

    Ivy 0.12.0 is out

    Intro Ivy is a completion method that's similar to Ido , but with emphasis on simplicity and customizability. Overview The curr...

  • 73

    Ivy 0.12.0 is out 20 Jul 2019 Intro Ivy is a completion method that's similar to Ido, but with emphasis on simplicity and customiza...

  • 40
    • www.tuicool.com 5 years ago
    • Cache

    Ivy 0.13.0 is out

    Intro Ivy is a completion method that's similar to Ido , but with emphasis on simplicity and customizability. Overview The curr...

  • 19
    • Github github.com 5 years ago
    • Cache

    GitHub - emacs-lsp/lsp-ivy

    Join GitHub today GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK