From aa62e1f27b0cb3d712d6f2b13071cca0f09379be Mon Sep 17 00:00:00 2001 From: sommerfeld Date: Thu, 11 Sep 2025 16:38:11 +0100 Subject: Add a lot of changes --- .../.config/nvim/lua/custom/plugins/completion.lua | 188 +++++++++------------ 1 file changed, 84 insertions(+), 104 deletions(-) (limited to 'home/.config/nvim/lua/custom/plugins/completion.lua') diff --git a/home/.config/nvim/lua/custom/plugins/completion.lua b/home/.config/nvim/lua/custom/plugins/completion.lua index 789a459..70fdba0 100644 --- a/home/.config/nvim/lua/custom/plugins/completion.lua +++ b/home/.config/nvim/lua/custom/plugins/completion.lua @@ -1,116 +1,96 @@ return { { - "hrsh7th/nvim-cmp", + "zbirenbaum/copilot.lua", + cmd = "Copilot", + build = ":Copilot auth", event = "InsertEnter", - config = function() - local cmp = require("cmp") - - local has_words_before = function() - local line, col = unpack(vim.api.nvim_win_get_cursor(0)) - return col ~= 0 - and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1] - :sub(col, col) - :match("%s") - == nil - end - - local luasnip = require("luasnip") - - cmp.setup({ - snippet = { - expand = function(args) - require("luasnip").lsp_expand(args.body) - end, - }, - mapping = { - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() - elseif has_words_before() then - cmp.complete() - else - fallback() - end - end, { - "i", - "s", - }), - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif luasnip.jumpable(-1) then - luasnip.jump(-1) - else - fallback() - end - end, { - "i", - "s", - }), - [""] = cmp.mapping.confirm({ - behavior = cmp.ConfirmBehavior.Replace, - select = true, - }), - }, - formatting = { - format = function(entry, vim_item) - -- set a name for each source - vim_item.menu = ({ - path = "[Path]", - nvim_lsp = "[LSP]", - luasnip = "[LuaSnip]", - dap = "[dap]", - })[entry.source.name] - return vim_item - end, - }, - sources = { - { name = "nvim_lsp" }, - { name = "luasnip" }, - { name = "path" }, - { name = "nvim_lsp_signature_help" }, - }, - }) - - require "cmp".setup.filetype( - { "dap-repl", "dapui_watches", "dapui_hover" }, { - sources = { - { name = "dap" }, - }, - }) - - local cmp_autopairs = require 'nvim-autopairs.completion.cmp' - cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done()) - end, + keys = { + { + "tc", + function() + require("copilot.command").toggle() + end, + desc = "[T]oggle [C]opilot attachment", + }, + }, + opts = { + suggestion = { enabled = false }, + panel = { enabled = false }, + }, + }, + { + "saghen/blink.compat", + opts = {}, + }, + { + "saghen/blink.cmp", dependencies = { - "hrsh7th/cmp-nvim-lsp", - "hrsh7th/cmp-path", - "hrsh7th/cmp-nvim-lsp-signature-help", + "rafamadriz/friendly-snippets", + "fang2hou/blink-copilot", "rcarriga/cmp-dap", - "windwp/nvim-autopairs", - { - "saadparwaiz1/cmp_luasnip", - dependencies = { - { - "L3MON4D3/LuaSnip", - event = "InsertCharPre", - keys = { - { "", function() require "luasnip".jump(1) end, mode = "i" }, - { "", function() require "luasnip".jump(-1) end, mode = "i" }, - }, - config = function() - require("luasnip/loaders/from_vscode").lazy_load() + }, + opts = { + keymap = { + preset = "cmdline", + [""] = { "accept", "fallback" }, + }, + appearance = { + use_nvim_cmp_as_default = true, + }, + completion = { + list = { + selection = { + preselect = function() + return not require("blink.cmp").snippet_active({ direction = 1 }) end, - dependencies = { - "kitagry/vs-snippets", - "rafamadriz/friendly-snippets", - "kkonghao/snippet-dog", + }, + }, + documentation = { auto_show = true }, + }, + signature = { + enabled = true, + trigger = { + enabled = true, + show_on_keyword = true, + show_on_insert = true, + }, + }, + sources = { + default = { "lazydev", "lsp", "copilot", "snippets", "path", "buffer" }, + per_filetype = { + ["dap-repl"] = { "dap" }, + }, + providers = { + path = { + opts = { + get_cwd = vim.fn.getcwd, }, - } + }, + copilot = { + name = "copilot", + module = "blink-copilot", + score_offset = 100, + async = true, + }, + lazydev = { + name = "LazyDev", + module = "lazydev.integrations.blink", + -- make lazydev completions top priority (see `:h blink.cmp`) + score_offset = 100, + }, + dap = { name = "dap", module = "blink.compat.source" }, }, }, }, }, + { + "saghen/blink.pairs", + version = "*", + dependencies = "saghen/blink.download", + opts = { + mappings = { + disabled_filetypes = { "TelescopePrompt" }, + }, + }, + }, } -- cgit v1.2.3-70-g09d2