If I do

(setq company-backends '(company-tabnine company-capf company-yasnippet))

Then company will try company-tabnine to give me completions. If tabnine fails, it will try capf. If instead I do

(setq company-backends '((company-tabnine company-capf company-yasnippet)))

Then company will yield completions from all of the backends at once, which is what I want. I think it has some internal guidelines for how to order the completions: which appear at the top. But I want completions from tabnine always to be prioritized; at the top. Any way to achieve that?

1 Answer 1


Try using the :separate keyword:

(setq company-backends '((company-tabnine :separate company-capf company-yasnippet)))

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.