return { { "nomnivore/ollama.nvim", dependencies = { "nvim-lua/plenary.nvim", }, -- All the user commands added by the plugin cmd = { "Ollama", "OllamaModel", "OllamaServe", "OllamaServeStop" }, keys = { -- Sample keybind for prompt menu. Note that the is important for selections to work properly. { "oo", ":lua require('ollama').prompt()", desc = "ollama prompt", mode = { "n", "v" }, }, -- Sample keybind for direct prompting. Note that the is important for selections to work properly. { "oG", ":lua require('ollama').prompt('Generate_Code')", desc = "ollama Generate Code", mode = { "n", "v" }, }, }, ---@type Ollama.Config opts = { model = "qwen2.5-coder", url = "http://192.168.10.99:11434", -- your configuration overrides }, enabled = false }, { "mireq/luasnip-snippets", dependencies = { "L3MON4D3/LuaSnip" }, config = function() require('luasnip_snippets.common.snip_utils').setup() end, enabled = false }, { "L3MON4D3/LuaSnip", dependencies = { "saadparwaiz1/cmp_luasnip" }, -- follow latest release. version = "v2.*", -- Replace by the latest released major (first number of latest release) -- install jsregexp (optional!). build = "make install_jsregexp", config = function() -- Mandatory setup function local luasnip = require("luasnip") luasnip.setup({ load_ft_func = require('luasnip_snippets.common.snip_utils').load_ft_func, ft_func = require('luasnip_snippets.common.snip_utils').ft_func, -- To enable auto expansin enable_autosnippets = true, }) vim.keymap.set({"i", "s"}, "", function() if luasnip.expand_or_jumpable() then luasnip.expand_or_jump() else vim.api.nvim_input('') end end, {silent = true}) vim.keymap.set({"i", "s"}, "", function() luasnip.jump(-1) end, {silent = true}) vim.keymap.set({"i", "s"}, "", function() if luasnip.choice_active() then luasnip.change_choice(1) end end, {silent = true}) end, enabled = false }, { 'tzachar/cmp-ai', dependencies = 'nvim-lua/plenary.nvim', enabled = false }, { 'hrsh7th/nvim-cmp', dependencies = { 'hrsh7th/cmp-nvim-lsp', 'hrsh7th/cmp-buffer', 'hrsh7th/cmp-path', 'hrsh7th/cmp-cmdline', 'hrsh7th/nvim-cmp', 'L3MON4D3/LuaSnip', "saadparwaiz1/cmp_luasnip", 'tzachar/cmp-ai', }, config = function() local cmp = require 'cmp' local cmp_ai = require('cmp_ai.config') cmp_ai:setup({ max_lines = 100, provider = 'Ollama', provider_options = { base_url = 'http://192.168.10.99:11434/api/generate', model = 'qwen2.5-coder:latest', prompt = function(lines_before, lines_after) return "<|fim_prefix|>" .. lines_before .. "<|fim_suffix|>" .. lines_after .. "<|fim_middle|>" end, }, notify = true, notify_callback = function(msg) vim.notify(msg) end, run_on_every_keystroke = true, }) cmp.setup({ snippet = { -- REQUIRED - you must specify a snippet engine expand = function(args) --vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. require('luasnip').lsp_expand(args.body) -- For `luasnip` users. -- require('snippy').expand_snippet(args.body) -- For `snippy` users. -- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users. -- vim.snippet.expand(args.body) -- For native neovim snippets (Neovim v0.10+) 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' }, -- For vsnip users. { name = 'luasnip' }, -- For luasnip users. -- { name = 'ultisnips' }, -- For ultisnips users. -- { name = 'snippy' }, -- For snippy users. --{ name = 'cmp_ai' } }, { { name = 'buffer' }, }), performance = { fetching_timeout = 20, debounce = 10, throttle = 10, async_budget = 20000, max_view_entries = 10, confirm_resolve_timeout = 10, filtering_context_budget = 10 } }) -- To use git you need to install the plugin petertriho/cmp-git and uncomment lines below -- Set configuration for specific filetype. --[[ cmp.setup.filetype('gitcommit', { sources = cmp.config.sources({ { name = 'git' }, }, { { name = 'buffer' }, }) }) require("cmp_git").setup() ]] -- -- 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' } }), matching = { disallow_symbol_nonprefix_matching = false } }) end, enabled = false } }