radian-software / selectrum

🔔 Better solution for incremental narrowing in Emacs.
MIT License
739 stars 33 forks source link

Adding support for Slime #597

Closed joshcho closed 2 years ago

joshcho commented 2 years ago

How would I go about adding support for Slime? There is helm-slime for the helm equivalent, and I am wondering how I might go about attaching selectrum for slime.

okamsn commented 2 years ago

I am not very familiar with Slime.

For completion, it seems to use the minibuffer (and so Selectrum) if you remove slime-c-p-c-completion-at-point from slime-completion-at-point-functions.

The README for Sly, with which I am also not very familiar, has its own section on completion interfaces, stating

SLY works with most Emacs "completion UIs" out of the box, providing completion in source files and inputting Common Lisp symbol names from the minibuffer. Company, Emacs 27's Fido-mode, and Helm are well-supported, as is "vanilla" completion. For consistency, SLY defaults to its own UI, sly-symbol-completion-mode, useful if you don't have or like any of those. You can turn it off. Also, if you use Helm and wish to have even more Helm-based fanciness, you can use helm-sly.

So, maybe that would be a better option, if it is more intentional. I don't know what the differences between the two are. The completion felt a bit slow in Selectrum on my machine, but Company seemed fine. Both interfaces included the matching scores.

If you're already using a more flexible completion style like Prescient or Orderless, setting sly-complete-symbol-function to sly-simple-completions instead of sly-flex-completions seems to speed things up a bit.

joshcho commented 2 years ago

Native solutions didn't work too well, so I had to figure something out myself using Slime Doc Contrib and additional config. Thanks.