Skip to content

Some company backends should be grouped #4477

@ejez

Description

@ejez

Associated PR: #4476

Some company backends can completely shadow other backends following them. For example, having company-backends as (company-dabbrev company-yasnippet company-ispell) will make company-yasnippet and company-ispell completely useless, because company-dabbrev will always answer: "Yes! I will try to find completion candidates" (even if later on it comes up with an empty list of candidates). This makes the backends following it unreachable.

To solve this issue, these backends should be grouped, which results in merging the completion results.

To identify the backends having this behavior, we can check their docs or by trying them.

company-yasnippet has this behavior:
https://github.com/company-mode/company-mode/blob/0edc87d423b83c707e6c708f421d96f4d198803d/company-yasnippet.el#L134
(it gives recommendations on grouping)

For more info about grouping backends, see:
https://github.com/company-mode/company-mode/blob/0edc87d423b83c707e6c708f421d96f4d198803d/company.el#L452

As an example, the current doom configuration results in the following for org-mode:
(company-capf company-dabbrev company-yasnippet company-ispell)

which results in company-yasnippet and company-ispell being meaningless and unreachable.

The associated PR solves the issue for text-mode and its derived org-mode. It results in having company-backends set to (company-capf (:separate company-dabbrev company-yasnippet company-ispell)) (doom sync might be needed for the changes to take effect)

(prog-mode and other lang modes might need also a review)

Metadata

Metadata

Assignees

No one assigned

    Labels

    is:bugSomething isn't working as intendedmodule:completion/companyPertains to Doom's :completion company modulemodule:lang/orgPertains to Doom's :lang org module

    Type

    No type

    Projects

    Status

    Unreviewed

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions