使 nvim-cmp 不自动选择第一个选项

Mig*_*uel 10 neovim

我正在使用nvim-cmp作为我的完成引擎,它工作正常,但想更改默认行为以禁用第一个选项的自动选择。原因是,当一行的最后一个单词有建议时,按 Enter 键将应用第一个建议,而不仅仅是插入换行符。

例如,在 haskell 中,输入

main = do<CR>
Run Code Online (Sandbox Code Playgroud)

doluasnip 的匹配项,diso~并被替换为类似的内容

main = 2022-12-05T12:50:34
Run Code Online (Sandbox Code Playgroud)

我希望这些建议可见,但在按下选项卡之前不会选择任何建议,如果没有选择任何建议,则<CR>只是换行符。这可能吗?

Mig*_*uel 11

回答我自己的问题,我发现使用时lsp-zero,必须在那里完成配置。中的文档advanced-usage.md提供了确切的解决方案,我将其发布在这里:

local lsp = require('lsp-zero')
lsp.preset('system-lsp')  -- or recommended, or whatever...
lsp.setup_nvim_cmp({
    preselect = 'none',
    completion = {
        completeopt = 'menu,menuone,noinsert,noselect'
    },
})
lsp.setup()
Run Code Online (Sandbox Code Playgroud)