Comme @Jesse l'a déjà souligné, ce que vous voulez ici, c'est le company-files
backend. Il existe plusieurs façons de l'utiliser:
Liez une touche pour appeler company-files
directement.
Utilisez la commande company-begin-backend
. Cela vous invite à utiliser le backend, puis propose des candidats à l'achèvement.
Utilisez company-other-backend
pour faire défiler la liste des backends (voir l'élément suivant). Cela peut être utilisé pour déclencher l'achèvement ou il peut être utilisé après le déclenchement du mode entreprise pour basculer vers un autre ensemble de candidats à l'achèvement. Vous souhaiterez peut-être affecter une liaison de touches dans la carte d'entreprise, par exemple(define-key company-active-map (kbd "C-e") #'company-other-backend)
Configurez la variable company-backends
. Le mode entreprise parcourt cette liste afin de trouver un backend qui accepte le préfixe actuel (c'est-à-dire le texte avant le point). Il est tout à fait possible d'avoir un backend dans la liste qui accepte le préfixe actuel mais n'offre aucun candidat d'achèvement, auquel cas le mode entreprise ne complétera rien automatiquement. Vous pouvez personnaliser la liste pour commander les backends d'une manière qui répond à vos besoins.
Quelques exemples de modifications company-backends
:
Si vous ne souhaitiez que compléter des noms de fichiers, vous pouvez en faire votre seul backend:
(setq company-backends '(company-files))
Cela semble peu probable, il est donc préférable de mettre d'abord votre backend le plus couramment utilisé, puis d'utiliser l'une des options mentionnées précédemment pour changer de backend ou en invoquer une par nom lorsque vous avez besoin d'autre chose.
Vous pouvez également configurer un backend «groupe» qui crée un ensemble fusionné de candidats à l'achèvement. Essayez ceci, par exemple:
(setq company-backends '((company-capf company-dabbrev-code company-files)))
Cela spécifie un seul backend qui fusionne les candidats de trois autres backends. Il vous donnera les résultats de l'achèvement au point, de dabbrev et du système de fichiers.
Vous pouvez utiliser des hooks de mode pour spécifier un ensemble différent de backends pour différents modes principaux. Par exemple:
(add-hook 'org-mode-hook
(lambda ()
(setq-local company-backends '((company-files company-dabbrev)))))
(add-hook 'emacs-lisp-mode-hook
(lambda ()
(setq-local company-backends '((company-capf company-dabbrev-code)))))