Como o @Jesse já apontou, o que você quer aqui é o company-files
back - end. Existem várias maneiras diferentes de usá-lo:
Ligue uma tecla para ligar company-files
diretamente.
Use comando company-begin-backend
. Isso solicita que o back-end use e oferece candidatos à conclusão.
Use company-other-backend
para percorrer a lista de back-end (consulte o próximo item). Isso pode ser usado para acionar a conclusão ou depois que o modo da empresa foi acionado para alternar para um conjunto diferente de candidatos à conclusão. Você pode atribuir uma ligação de chave no mapa da empresa, por exemplo(define-key company-active-map (kbd "C-e") #'company-other-backend)
Configurar a variável company-backends
. O modo Empresa percorre esta lista para encontrar um back-end que aceite o prefixo atual (ou seja, o texto antes do ponto). É perfeitamente possível ter um back-end na lista que aceite o prefixo atual, mas não ofereça nenhum candidato de conclusão, quando o modo da empresa não concluirá nada automaticamente. Você pode personalizar a lista para solicitar os back-end de uma maneira que atenda às suas necessidades.
Alguns exemplos de modificação company-backends
:
Se você sempre quis completar nomes de arquivos, poderia fazer desse seu único back-end:
(setq company-backends '(company-files))
Isso parece improvável, então é melhor colocar primeiro o back-end mais comumente usado e depois usar uma das opções mencionadas anteriormente para alternar os back-end ou invocar um pelo nome quando precisar de algo mais.
Você também pode configurar um back-end de 'grupo' que cria um conjunto mesclado de candidatos à conclusão. Tente isso, por exemplo:
(setq company-backends '((company-capf company-dabbrev-code company-files)))
Isso especifica um único back-end que mescla os candidatos de outros três back-end. Ele fornecerá resultados da conclusão no ponto, dabbrev e o sistema de arquivos.
Você pode usar ganchos de modo para especificar um conjunto diferente de back-end para diferentes modos principais. Por exemplo:
(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)))))