Chers confrères emacsiens,
Une petite question à propos des completion frameworks, parce que je crois que je passe clairement à côté d'un concept important.
Je n'utilise aucun d'entre eux actuellement : ni helm, ni ivy, ni rien. Je suis simplement content du comportement par défaut d'Emacs à ce niveau-là. Récemment, selectrum fait pas mal le buzz, et en particulier son association avec marginalia, qui semble effectivement assez jolie et efficace. J'ai donc testé rapidement ça dans ma config emacs :
(use-package selectrum
:ensure t
:init
(selectrum-mode +1)
(selectrum-prescient-mode +1))
(use-package marginalia
:ensure t
:bind (:map minibuffer-local-map
("C-M-a" . marginalia-cycle))
:init
(marginalia-mode)
(advice-add #'marginalia-cycle :after
(lambda () (when (bound-and-true-p selectrum-mode) (selectrum-exhibit))))
(setq marginalia-annotators '(marginalia-annotators-heavy marginalia-annotators-light nil)))
Bilan des opérations : les "candidats" proposés par selectrum (par exemple en débutant un M-x
) sont certes très joliment mis en forme et il est aisé de naviguer entre eux, mais je ne pige pas pourquoi ils sont à ce point différents des candidats proposés par le Emacs "vanilla".
Expérience 1 : avec le Emacs vanilla, M-x l-pac
suivant de RET ou TAB donne directement accès à la fonction list-packages
. Faire M-x l-pac
avec selectrum ne donne accès à rien du tout : il faut taper M-x l*-pac
pour que le candidat list-packages
soit proposé.
Expérience 2 : instruit par l'expérience 1, je tente la même chose pour find-file
. Avec le Emacs vanilla, M-x fi-fi TAB
propose (évidemment) find-file
parmi les candidats pour la complétion. Avec selectrum, ni M-x fi-fi
, ni M-x fi*-fi
ne le proposent. Am I missing something?
Plus généralement, je ne comprends pas vraiment quelle est la syntaxe que souhaite selectrum (ou ivy, d'ailleurs !) pour lister des candidats adéquats. La plupart des candidats proposés lors de mes essais sont totalement à côté de la plaque, et toujours différents des candidats proposés par Emacs vanilla. Sauf erreur de ma part, c'est un point très peu documenté dans la doc de selectrum...
Quelqu'un ici aurait une petite expérience en la matière et quelques conseils à donner ?
Merci !