From: Philippe Hürlimann
Date: Thu, 20 Nov 2025 09:57:14 +0000 (+0100)
Subject: my cmp experiment everything is broken
X-Git-Url: https://git.hurlimann.org/?a=commitdiff_plain;h=53a4412776317194809a9a446fa19d726facdb15;p=vimfiles.git
my cmp experiment everything is broken
---
diff --git a/init.vim b/init.vim
index 147dea3..8b0d50b 100644
--- 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 (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({
+ [''] = cmp.mapping.scroll_docs(-4),
+ [''] = cmp.mapping.scroll_docs(4),
+ [''] = cmp.mapping.complete(),
+ [''] = cmp.mapping.abort(),
+ [''] = 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', 'lf', vim.lsp.buf.format, opts)
vim.keymap.set('n', 'ls', vim.lsp.buf.document_symbol, opts)
vim.keymap.set('n', '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" },