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" },