return { "saghen/blink.cmp", -- optional: provides snippets for the snippet source dependencies = { "rafamadriz/friendly-snippets", { "L3MON4D3/LuaSnip", version = "v1.*" }, "windwp/nvim-autopairs", -- { -- "zbirenbaum/copilot.lua", -- cmd = { "Copilot" }, -- event = { "VeryLazy" }, -- opts = { suggestion = { enabled = false }, panel = { enabled = false } }, -- }, -- -- Add blink.cmp copilot source -- { -- "giuxtaposition/blink-cmp-copilot", -- }, -- Add blink.cmp latex source for LaTeX/VimTeX support "erooke/blink-cmp-latex", -- Add minuet-ai for AI completions with llama-server { "milanglacier/minuet-ai.nvim", config = function() require('minuet').setup { provider = 'openai_fim_compatible', n_completions = 1, -- recommend for local model for resource saving -- I recommend beginning with a small context window size and incrementally -- expanding it, depending on your local computing power. A context window -- of 512, serves as an good starting point to estimate your computing -- power. Once you have a reliable estimate of your local computing power, -- you should adjust the context window to a larger value. context_window = 512, provider_options = { openai_fim_compatible = { -- For Windows users, TERM may not be present in environment variables. -- Consider using APPDATA instead. api_key = 'TERM', name = 'Qwen', end_point = 'http://localhost:8012/v1/completions', -- The model is set by the llama-cpp server and cannot be altered -- post-launch. model = 'PLACEHOLDER', optional = { max_tokens = 56, top_p = 0.9, }, -- Llama.cpp does not support the `suffix` option in FIM completion. -- Therefore, we must disable it and manually populate the special -- tokens required for FIM completion. template = { prompt = function(context_before_cursor, context_after_cursor, _) return '<|fim_prefix|>' .. context_before_cursor .. '<|fim_suffix|>' .. context_after_cursor .. '<|fim_middle|>' end, suffix = false, }, }, }, } end, }, }, -- use a release tag to download pre-built binaries version = "1.*", -- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust -- build = 'cargo build --release', event = "VeryLazy", ---@module 'blink.cmp' ---@type blink.cmp.Config opts = { -- Opciones de keymap disponibles: -- 'default' (actual) - Ctrl+y para aceptar, similar a built-in completions -- 'super-tab' - Tab para aceptar, similar a VSCode -- 'enter' - Enter para aceptar -- 'none' - Sin atajos automáticos (defines los tuyos) keymap = { preset = "default", -- Deshabilitar navegación con flechas [""] = {}, [""] = {}, }, -- Todas las configuraciones de preset 'default' incluyen: -- Ctrl+space: Abrir menú o mostrar docs si ya está abierto -- Ctrl+n/Ctrl+p: Seleccionar siguiente/anterior -- Ctrl+e: Ocultar menú -- Ctrl+k: Toggle signature help (si signature.enabled = true) appearance = { -- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font' nerd_font_variant = "mono", }, completion = { documentation = { auto_show = true, auto_show_delay_ms = 500, window = { border = "rounded" }, }, menu = { border = "rounded", draw = { columns = { { "label", "label_description", gap = 1 }, { "kind_icon", "kind" }, }, }, }, ghost_text = { enabled = false }, }, -- Default list of enabled providers sources = { default = { "lsp", "path", "snippets", "buffer", "minuet" }, -- default = { "lsp", "path", "snippets", "buffer", "copilot", "minuet" }, per_filetype = { tex = { "lsp", "path", "snippets", "buffer", "latex" }, bib = { "lsp", "path", "snippets", "buffer", "latex" }, codecompanion = { "codecompanion" }, }, providers = { minuet = { name = "minuet", module = "minuet.blink", score_offset = 101, async = true, }, -- copilot = { -- name = "copilot", -- module = "blink-cmp-copilot", -- score_offset = 100, -- async = true, -- }, latex = { name = "latex", module = "blink-cmp-latex", }, lazydev = { name = "LazyDev", module = "lazydev.integrations.blink", -- make lazydev completions top priority (see `:h blink.cmp`) score_offset = 100, }, }, }, snippets = { preset = "luasnip" }, -- Experimental signature help support signature = { enabled = true }, -- (Default) Rust fuzzy matcher for typo resistance and significantly better performance fuzzy = { implementation = "prefer_rust_with_warning" }, }, opts_extend = { "sources.default" }, }