Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmp.complete() does not apply one-time config parameter to completion #1139

Closed
2 tasks done
dansalvato opened this issue Aug 19, 2022 · 0 comments
Closed
2 tasks done
Labels
bug Something isn't working

Comments

@dansalvato
Copy link
Contributor

dansalvato commented Aug 19, 2022

FAQ

  • I have checked the FAQ and it didn't resolve my problem.

Announcement

Minimal reproducible full config

if has('vim_starting')
  set encoding=utf-8
endif
scriptencoding utf-8

if &compatible
  set nocompatible
endif

let s:plug_dir = expand('/tmp/plugged/vim-plug')
if !filereadable(s:plug_dir .. '/plug.vim')
  execute printf('!curl -fLo %s/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim', s:plug_dir)
end

execute 'set runtimepath+=' . s:plug_dir
call plug#begin(s:plug_dir)
Plug 'hrsh7th/nvim-cmp'
Plug 'hrsh7th/cmp-buffer'
Plug 'hrsh7th/cmp-nvim-lsp'
Plug 'hrsh7th/vim-vsnip'
Plug 'neovim/nvim-lspconfig'
call plug#end()
PlugInstall | quit

" Setup global configuration. More on configuration below.
lua << EOF
local cmp = require "cmp"
cmp.setup({
  snippet = {
    expand = function(args)
      vim.fn["vsnip#anonymous"](args.body)
    end,
  },
  view = {
    entries = {name = 'wildmenu'}
  },
  mapping = cmp.mapping.preset.insert({
    ['<C-f>'] = function(_)
      cmp.close()
      cmp.complete({
        config = {
          view = {
            entries = {name = 'custom'}
          },
        }
      })
    end,
  }),
  sources = cmp.config.sources({
    { name = 'nvim_lsp' },
    { name = 'vsnip' },
  }, {
    { name = 'buffer' },
  }),
})
EOF

lua << EOF
local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())

require'lspconfig'.cssls.setup {
  capabilities = capabilities,
}
EOF

Description

I have <C-f> mapped to call cmp.complete() with a one-time config parameter, but the config seems to be ignored. In this example, the base config uses wildmenu while the mapping uses custom. The issue seems to happen with other config definitions as well (I've tried it with window borders double and single, with the same result—I never get a single border).

Steps to reproduce

  1. Trigger completion by typing in Insert mode.
  2. Press <C-f> to run the mapping that triggers completion with the new config parameter.
  3. Completion runs, but the one-time config is not applied to this completion.

Expected behavior

cmp.complete() should display a completion view based on the config parameters passed into it.

Actual behavior

cmp.complete() runs, but the completion view displayed only uses the original setup config, and not the one-time config passed to it.

Additional context

No response

@dansalvato dansalvato added the bug Something isn't working label Aug 19, 2022
williamboman added a commit to williamboman/nvim-cmp that referenced this issue Sep 23, 2022
…indow

* upstream/main: (36 commits)
  feat: add `filter` option to sources (hrsh7th#1067)
  Restore rockspec
  Fix grammar mistake: "setup" -> "set up" (hrsh7th#1155)
  fix(timer): close timers before Neovim exits (hrsh7th#1166)
  Add incsearch_redraw_keys settings (hrsh7th#1162)
  Fix hrsh7th#1149 (temporary fix)
  Fix hrsh7th#1146
  Re-fix hrsh7th#1144
  Fix hrsh7th#1144
  Fix hrsh7th#1142
  Fix hrsh7th#1135
  Fix onetime configuration handling
  fix(entry/get_replace_range): handle TextEdit.range (hrsh7th#1140)
  Refactor a bit
  Restore filetype setting
  Fix hrsh7th#1139
  Add FAQ for clangd's command-line arguments. Fixes hrsh7th#999
  The default highlight groups shouldn't be default=true. Fixes hrsh7th#972
  Fix hrsh7th#1102
  Use `cmp.config.sources` (hrsh7th#1105)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant