bbatsov/prelude

Problems with ivy-prescient which added recently

wd opened this issue · 8 comments

wd commented

Expected behavior

Before I upgrade to the latest version, when I run counsel-M-x, I'll get

image

When I input deft, I'll get this one. You can see the deft command will be selected by default.

image

Actual behavior

After I upgrade to the latest version, the counsel-M-x will show

image

And after input deft, it will show

image

Steps to reproduce the problem

See the above section. I can reproduce the old results by removing all the configs related to ivy-prescient in modules/prelude-ivy.el.

I see here didn't include the command counsel-M-x, but even I added it to the list, the result seems still worse than the old one. These are settings for ivy in my .emacs.

(use-package ivy
  :config
  (setq ivy-virtual-abbreviate "abbreviate")
  (setq ivy-on-del-error-function #'ignore)
  )

Environment & Version information

Emacs version

GNU Emacs 28.0.50 (build 1, x86_64-apple-darwin20.1.0, NS appkit-2022.10 Version 11.0.1 (Build 20B50)) of 2020-12-12

Operating system

MacOS Big Sur 11.0.1

@raxod502 any idea what might be causing this?

I'll see if I can make the prescient integration optional, but given that it depends on the load order I guess that's going to be hard. Might be best to just remove it for ivy, but let's see if @raxod502 can help us with some insight.

Unfortunately, I can't provide any insight into ivy-prescient, as I no longer support it (in favor of selectrum-prescient and other prescient.el integration packages). Currently ISO a maintainer for that integration: radian-software/prescient.el#65

Got it. I guess I'll just remove it then. Thanks!

wd commented

By default, prescient.el will set prescient-sort-length-enable to t, that's why the results will sort by length.

Yes, but recently used commands should still be sorted first. Only commands that have never been used before will be sorted by length.

wd commented

Yes, but recently used commands should still be sorted first. Only commands that have never been used before will be sorted by length.

My bad, the reason is that I haven't run any other commands yet. The command I run will show up at the top after I run it.

And these two settings will let the output behaves as before after enabling ivy-prescient.

  (setq prescient-sort-length-enable nil)
  (setq ivy-prescient-retain-classic-highlighting t)

Well, in the mean time I just removed it. I guess that'd be best for most people.