]> Untitled Git - vimfiles.git/commitdiff
my cmp experiment everything is broken
authorPhilippe Hürlimann <p@hurlimann.org>
Thu, 20 Nov 2025 09:57:14 +0000 (10:57 +0100)
committerPhilippe Hürlimann <p@hurlimann.org>
Thu, 20 Nov 2025 09:57:14 +0000 (10:57 +0100)
init.vim

index 147dea39815e4f4f00c2bb8b13b60bf7909ba29b..8b0d50b94ae185c457188e81e1e0cdc9a51c1f93 100644 (file)
--- a/init.vim
+++ b/init.vim
@@ -9,6 +9,13 @@ Plug 'ap/vim-css-color'
 Plug 'avakhov/vim-yaml'
 Plug 'dhruvasagar/vim-table-mode'
 Plug 'editorconfig/editorconfig-vim'
+Plug 'hrsh7th/cmp-buffer'
+Plug 'hrsh7th/cmp-cmdline'
+Plug 'hrsh7th/cmp-nvim-lsp'
+Plug 'hrsh7th/cmp-path'
+Plug 'hrsh7th/cmp-vsnip'
+Plug 'hrsh7th/nvim-cmp'
+Plug 'hrsh7th/vim-vsnip'
 Plug 'jpalardy/vim-slime'
 Plug 'junegunn/vim-easy-align'
 Plug 'kien/ctrlp.vim'
@@ -27,9 +34,9 @@ Plug 'rhysd/vim-clang-format'
 Plug 'rust-lang/rust.vim'
 Plug 'scrooloose/nerdcommenter'
 Plug 'scrooloose/nerdtree'
-Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
-Plug 'Shougo/neosnippet-snippets'
-Plug 'Shougo/neosnippet.vim'
+"Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
+"Plug 'Shougo/neosnippet-snippets'
+"Plug 'Shougo/neosnippet.vim'
 Plug 'tpope/vim-classpath'
 Plug 'tpope/vim-fireplace'
 Plug 'tpope/vim-fugitive'
@@ -49,7 +56,7 @@ endif
 
 call plug#end()
 
-let g:deoplete#enable_at_startup = 1
+"let g:deoplete#enable_at_startup = 1
 
 let g:tex_flavor = 'latex'
 
@@ -121,6 +128,33 @@ let g:EditorConfig_exclude_patterns = ['fugitive://.*']
 "nmap <buffer> <silent> <F5> <Plug>(lcn-menu)
 
 lua << EOF
+
+local cmp = require'cmp'
+cmp.setup({
+    snippet = {
+      expand = function(args)
+        vim.fn["vsnip#anonymous"](args.body)
+      end,
+    },
+    window = {
+      completion = cmp.config.window.bordered(),
+      documentation = cmp.config.window.bordered(),
+    },
+    mapping = cmp.mapping.preset.insert({
+      ['<C-d>'] = cmp.mapping.scroll_docs(-4),
+      ['<C-f>'] = cmp.mapping.scroll_docs(4),
+      ['<C-o>'] = 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' },
+    }, {
+      { name = 'buffer' },
+    })
+})
+
 local opts = { buffer = bufnr, noremap = true, silent = true }
 vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
 vim.keymap.set('n', 'gD', vim.lsp.buf.type_definition, opts)
@@ -134,6 +168,9 @@ vim.keymap.set('n', '<Leader>lf', vim.lsp.buf.format, opts)
 vim.keymap.set('n', '<Leader>ls', vim.lsp.buf.document_symbol, opts)
 vim.keymap.set('n', '<Leader>lh', vim.lsp.buf.document_highlight, opts)
 
+local capabilities = require('cmp_nvim_lsp').default_capabilities()
+vim.lsp.config('*', {capabilities = capabilities})
+
 vim.lsp.config('gopls', {cmd = {'gopls', '-v', 'serve', '-debug=localhost:6060', '-logfile=/tmp/gopls.log'}})
 
 vim.lsp.config('pylsp', {
@@ -154,11 +191,9 @@ vim.lsp.config('pylsp', {
     },
 })
 
-vim.lsp.enable('perlpls')
-vim.lsp.enable('ccls')
-vim.lsp.enable('rust_analyzer')
-vim.lsp.enable('kotlin_language_server')
-vim.lsp.enable('zls')
+for _, ls in ipairs({'gopls', 'pylsp', 'perlpls', 'ccls', 'rust_analyzer', 'kotlin_language_server', 'zls'}) do
+    vim.lsp.enable(ls)
+end
 
 require'nvim-treesitter.configs'.setup {
   disable = { "c" },