return { { "hrsh7th/nvim-cmp", dependencies = { "hrsh7th/cmp-buffer", "hrsh7th/cmp-path", "hrsh7th/cmp-nvim-lsp", "L3MON4D3/LuaSnip", "saadparwaiz1/cmp_luasnip", "neovim/nvim-lspconfig", "hrsh7th/cmp-cmdline", }, config = function() local cmp = require("cmp") cmp.setup({ snippet = { expand = function(args) require("luasnip").lsp_expand(args.body) end, }, 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" }, { name = "path" }, }), }) end, }, { "nvim-treesitter/nvim-treesitter", config = function() require("nvim-treesitter.configs").setup({ ensure_installed = { "c", "cpp", "cmake", "bash", "go", "lua", "python", "java", "git_config", "git_rebase", "gitattributes", "gitcommit", "gitignore", "groovy", "json", "sql", "vim", "xml", "tcl", "yaml", "ini", "comment", }, }) end, }, { "nvimdev/lspsaga.nvim", config = function() require("lspsaga").setup({}) end, dependencies = { "nvim-treesitter/nvim-treesitter", -- optional "nvim-tree/nvim-web-devicons", -- optional }, }, }