cmp comparators issues

Am I the only one who struggle with cmp comparators? I can't make any setup to work like I want it to work.

Like come on, diagramIds is literally on the line above ...

The comparators aren't even documented: https://github.com/hrsh7th/nvim-cmp/issues/883

This is the closest thing I could find to usefull: https://github.com/hrsh7th/nvim-cmp/issues/183 but it didn't help either

How did you manage to cope with this? Is there some reasonable setup for cmp comparators?

7 points · 3 comments · view on lemmy.world

3 Comments

muntoo@lemmy.world · 3 pts · 3y

Not sure if this helps, but here's my ordering:

        sorting = {
          priority_weight = 2,
          comparators = {
            require("copilot_cmp.comparators").prioritize,
            compare.offset,
            compare.exact,
            compare.recently_used,
            compare.score,
            compare.scopes,
            compare.locality,
            compare.kind,
            compare.sort_text,
            compare.length,
            compare.order,
          },
        },

...Realistically copilot is so good that it knows what the next word I'm completing is without even typing in a single character, so this doesn't bother me like it used to.

Lemmy@iusearchlinux.fyi · 1 pts · 3y

For me the LSP (via lsp-zero) would produce the completion you are looking for in the example. I don't know how to make that work without lsp.

weilbith@discuss.tchncs.de · 1 pts · 3y

Unfortunately having similar issues. It is okayish, but sometimes I feel like there must be something smarter and more context aware too. But I would kind of take the language servers into account here. Though, the specification provides no scoring mechanism. Only a preselect flag which nvim-cmp already supports.

At the same time this feels like a quite complicate topic. How to actually sort/compare them? In our special case above you would add something based on symbol usage/definition close to your cursor. Which might be a relevant factor. It would be interesting if there some knowledge/science about what actually works best for such a problem.