hrsh7th / nvim-cmp

A completion plugin for neovim coded in Lua.
MIT License
7.86k stars 393 forks source link

completion is not available for regular filetypes. #1918

Closed trace1729 closed 1 month ago

trace1729 commented 4 months ago

FAQ

Announcement

Minimal reproducible full config

call plug#begin('~/.config/nvim/test/plugged')
Plug 'neovim/nvim-lspconfig'
Plug 'hrsh7th/cmp-nvim-lsp'
Plug 'hrsh7th/cmp-buffer'
Plug 'hrsh7th/cmp-path'
Plug 'hrsh7th/cmp-cmdline'
Plug 'hrsh7th/nvim-cmp'

" For vsnip users.
Plug 'hrsh7th/cmp-vsnip'
Plug 'hrsh7th/vim-vsnip'

" For luasnip users.
" Plug 'L3MON4D3/LuaSnip'
" Plug 'saadparwaiz1/cmp_luasnip'

" For ultisnips users.
" Plug 'SirVer/ultisnips'
" Plug 'quangnguyen30192/cmp-nvim-ultisnips'

" For snippy users.
" Plug 'dcampos/nvim-snippy'
" Plug 'dcampos/cmp-snippy'

call plug#end()

lua <<EOF
  -- Set up nvim-cmp.
  local cmp = require'cmp'

  cmp.setup({
    snippet = {
      -- REQUIRED - you must specify a snippet engine
      expand = function(args)
        vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
        -- require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
        -- require('snippy').expand_snippet(args.body) -- For `snippy` users.
        -- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users.
        -- vim.snippet.expand(args.body) -- For native neovim snippets (Neovim v0.10+)
      end,
    },
    window = {
      -- completion = cmp.config.window.bordered(),
      -- documentation = cmp.config.window.bordered(),
    },
    mapping = cmp.mapping.preset.insert({
      ['<C-b>'] = cmp.mapping.scroll_docs(-4),
      ['<C-f>'] = cmp.mapping.scroll_docs(4),
      ['<C-Space>'] = cmp.mapping.complete(),
      ['<C-e>'] = cmp.mapping.abort(),
      ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
    }),
    sources = cmp.config.sources({
      { name = 'nvim_lsp' },
      { name = 'vsnip' }, -- For vsnip users.
      -- { name = 'luasnip' }, -- For luasnip users.
      -- { name = 'ultisnips' }, -- For ultisnips users.
      -- { name = 'snippy' }, -- For snippy users.
    }, {
      { name = 'buffer' },
    })
  })

  -- To use git you need to install the plugin petertriho/cmp-git and uncomment lines below
  -- Set configuration for specific filetype.
  --[[ cmp.setup.filetype('gitcommit', {
    sources = cmp.config.sources({
      { name = 'git' },
    }, {
      { name = 'buffer' },
    })
 })
 require("cmp_git").setup() ]]-- 

  -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
  cmp.setup.cmdline({ '/', '?' }, {
    mapping = cmp.mapping.preset.cmdline(),
    sources = {
      { name = 'buffer' }
    }
  })

  -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
  cmp.setup.cmdline(':', {
    mapping = cmp.mapping.preset.cmdline(),
    sources = cmp.config.sources({
      { name = 'path' }
    }, {
      { name = 'cmdline' }
    }),
    matching = { disallow_symbol_nonprefix_matching = false }
  })

  -- Set up lspconfig.
  local capabilities = require('cmp_nvim_lsp').default_capabilities()
  -- Replace <YOUR_LSP_SERVER> with each lsp server you've enabled.
  require('lspconfig')['clangd'].setup {
    capabilities = capabilities
  }
EOF

Description

completion is not available for regular filetypes, but only avaliable on filetype which has been configured with lsp. In my case, c/cpp files have completion.

Steps to reproduce

using configuration I provided and open regular file type like txt or markdown, no completion is available.

Expected behavior

completion is available for regular filetypes.

Actual behavior

completion is not available for regular filetypes, like .txt, markdown.

Additional context

No response

qaptoR commented 1 month ago

I can use the snippet autocomplete commands to resolve a snippet once it's fully written out, but there is no autocomplete menu when typing to see the snippets. This is in a markdown file.

trace1729 commented 1 month ago

the same applies to me

Shougo commented 1 month ago

Hm... Your source configuration seems broken. Please check your buffer source configuration.

trace1729 commented 1 month ago

Hm... Your source configuration seems broken. Please check your buffer source configuration.

The configuration I used comes from the github README, I perfume it was right. Would you kindly point out where the problem is?😂

Shougo commented 1 month ago

OK. I get it.

runtime! after/plugin/*.lua is required in your vimrc. This is needed to load sources.

NOTE: I don't know why it does not work with vim-plug. vim-plug adds after plugins to rtp. Your vim-plug may be old.

trace1729 commented 1 month ago

OK. I get it.

runtime! after/plugin/*.lua is required in your vimrc. This is needed to load sources.

NOTE: I don't know why it does not work with vim-plug. vim-plug adds after plugins to rtp. Your vim-plug may be old.

Thanks, it helps a lot!

Shougo commented 1 month ago

The issue should be closed.