return { -- 'neovim/nvim-lspconfig', -- REQUIRED: for native Neovim LSP integration -- lazy = false, -- REQUIRED: tell lazy.nvim to start this plugin at startup -- dependencies = { -- -- main one -- { 'ms-jpq/coq_nvim', branch = 'coq' }, -- -- -- 9000+ Snippets -- { 'ms-jpq/coq.artifacts', branch = 'artifacts' }, -- -- -- lua & third party sources -- See https://github.com/ms-jpq/coq.thirdparty -- -- Need to **configure separately** -- { 'ms-jpq/coq.thirdparty', branch = '3p' }, -- -- - shell repl -- -- - nvim lua api -- -- - scientific calculator -- -- - comment banner -- -- - etc -- }, -- init = function() -- vim.g.coq_settings = { -- auto_start = true, -- if you want to start COQ at startup -- -- Your COQ settings here -- } -- end, -- config = function() -- -- See `:help cmp` -- local cmp = require 'coq' -- local luasnip = require 'luasnip' -- luasnip.config.setup {} -- -- cmp.setup { -- snippet = { -- expand = function(args) -- luasnip.lsp_expand(args.body) -- end, -- }, -- completion = { completeopt = 'menu,menuone,noinsert' }, -- -- -- For an understanding of why these mappings were -- -- chosen, you will need to read `:help ins-completion` -- -- -- -- No, but seriously. Please read `:help ins-completion`, it is really good! -- mapping = cmp.mapping.preset.insert { -- -- Select the [n]ext item -- [''] = cmp.mapping.select_next_item(), -- -- Select the [p]revious item -- [''] = cmp.mapping.select_prev_item(), -- -- -- Scroll the documentation window [b]ack / [f]orward -- [''] = cmp.mapping.scroll_docs(-4), -- [''] = cmp.mapping.scroll_docs(4), -- -- -- Accept ([y]es) the completion. -- -- This will auto-import if your LSP supports it. -- -- This will expand snippets if the LSP sent a snippet. -- [''] = cmp.mapping.confirm { select = true }, -- -- -- If you prefer more traditional completion keymaps, -- -- you can uncomment the following lines -- --[''] = cmp.mapping.confirm { select = true }, -- --[''] = cmp.mapping.select_next_item(), -- --[''] = cmp.mapping.select_prev_item(), -- -- -- Manually trigger a completion from nvim-cmp. -- -- Generally you don't need this, because nvim-cmp will display -- -- completions whenever it has completion options available. -- [''] = cmp.mapping.complete {}, -- -- -- Think of as moving to the right of your snippet expansion. -- -- So if you have a snippet that's like: -- -- function $name($args) -- -- $body -- -- end -- -- -- -- will move you to the right of each of the expansion locations. -- -- is similar, except moving you backwards. -- [''] = cmp.mapping(function() -- if luasnip.expand_or_locally_jumpable() then -- luasnip.expand_or_jump() -- end -- end, { 'i', 's' }), -- [''] = cmp.mapping(function() -- if luasnip.locally_jumpable(-1) then -- luasnip.jump(-1) -- end -- end, { 'i', 's' }), -- -- -- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see: -- -- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps -- }, -- sources = { -- { name = 'nvim_lsp' }, -- { name = 'luasnip' }, -- { name = 'path' }, -- }, -- } -- end, }