From 90a6a6db7fd29ffe6defc0969011c7288403f074 Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Fri, 17 May 2024 16:10:35 +0200 Subject: Setup für neue Code-Completion Konfiguration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nvim/plugins.vim | 140 +++++++++++++++++++++---------------------------------- 1 file changed, 54 insertions(+), 86 deletions(-) diff --git a/nvim/plugins.vim b/nvim/plugins.vim index 9067c6a..161cffa 100644 --- a/nvim/plugins.vim +++ b/nvim/plugins.vim @@ -19,11 +19,15 @@ call plug#begin() Plug 'windwp/nvim-autopairs' Plug 'windwp/nvim-ts-autotag' + Plug 'hrsh7th/nvim-cmp' + Plug 'L3MON4D3/LuaSnip' + Plug 'saadparwaiz1/cmp_luasnip' + Plug 'rafamadriz/friendly-snippets' + Plug 'hrsh7th/cmp-nvim-lsp' Plug 'hrsh7th/cmp-buffer' - Plug 'hrsh7th/cmp-path' - Plug 'hrsh7th/cmp-cmdline' - Plug 'hrsh7th/nvim-cmp' + " Plug 'hrsh7th/cmp-path' + " Plug 'hrsh7th/cmp-cmdline' call plug#end() " EMMET @@ -54,9 +58,9 @@ let g:mundo_width=40 let g:mundo_preview_height=30 " Autopairs -let b:autopairs_enabled=1 -let g:AutoPairsMapBS=1 -let g:AutoPairsPrefix='' +" let b:autopairs_enabled=1 +" let g:AutoPairsMapBS=1 +" let g:AutoPairsPrefix='' " Treesitter lua << EOF @@ -72,6 +76,9 @@ require('nvim-treesitter.configs').setup { indent = { enable = false, }, + autotag = { + enable = true, + } } EOF @@ -82,10 +89,13 @@ EOF " LSP lua << EOF +local capabilities = require('cmp_nvim_lsp').default_capabilities() + local lspconfig = require('lspconfig') lspconfig.clangd.setup{ - cmd = { 'clangd15' } + cmd = { 'clangd15' }, + capabilities = capabilities } lspconfig.lua_ls.setup { @@ -109,92 +119,50 @@ lspconfig.lua_ls.setup { }, }, }, + capabilities = capabilities } -lspconfig.pyright.setup{ - settings = { - python = { - analysis = { - autoSearchPaths = true, - diagnosticMode = "workspace", - useLibraryCodeForTypes = true - } - } - } +lspconfig.html.setup{ + capabilities = capabilities } -lspconfig.tsserver.setup{} - -lspconfig.vimls.setup{} +lspconfig.tsserver.setup{ + capabilities = capabilities +} -lspconfig.rust_analyzer.setup{ - settings = { - ['rust-analyzer'] = {}, - }, +lspconfig.vimls.setup{ + capabilities = capabilities } EOF -" Completion -lua <'] = 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' }, -- For vsnip users. - -- { name = 'luasnip' }, -- For luasnip users. - -- { name = 'ultisnips' }, -- For ultisnips users. - -- { name = 'snippy' }, -- For snippy users. - }, { - { name = 'buffer' }, - }) - }) +lua << EOF +require("luasnip.loaders.from_vscode").lazy_load() - -- Set configuration for specific filetype. - --cmp.setup.filetype('gitcommit', { - -- sources = cmp.config.sources({ - -- { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git). - -- }, { - -- { name = 'buffer' }, - -- }) - --}) - - -- 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' } - -- }) - --}) +local cmp = require('cmp') + +cmp.setup({ + snippet = { + expand = function(args) + require('luasnip').lsp_expand(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 }), + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + }, { + { name = 'buffer' }, + }) +}) EOF + -- cgit v1.3