feat(nvim): fix completion with blink
This commit is contained in:
		| @@ -17,3 +17,8 @@ vim.keymap.set("n", "N", "Nzzzv") | ||||
| -- Move block on visual mode | ||||
| vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv") | ||||
| vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv") | ||||
|  | ||||
| -- Diagnostic (erreurs LSP) | ||||
| vim.keymap.set('n', 'gl', vim.diagnostic.open_float, { desc = 'Show diagnostic' }) | ||||
| vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Previous diagnostic' }) | ||||
| vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Next diagnostic' }) | ||||
|   | ||||
| @@ -1,77 +1,22 @@ | ||||
| -- return  { | ||||
| --     'hrsh7th/nvim-cmp', | ||||
| --     dependencies = { | ||||
| --         'neovim/nvim-lspconfig', | ||||
| --         'hrsh7th/cmp-nvim-lsp', | ||||
| --         'hrsh7th/cmp-buffer', | ||||
| --         'hrsh7th/cmp-path', | ||||
| --         'hrsh7th/cmp-cmdline', | ||||
| --         'hrsh7th/cmp-vsnip', | ||||
| --         'hrsh7th/vim-vsnip', | ||||
| --     }, | ||||
| --     config = function () | ||||
| --         local cmp = require'cmp' | ||||
| --         cmp.setup({ | ||||
| --             snippet = { | ||||
| --                 expand = function(args) | ||||
| --                     vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. | ||||
| --                 end, | ||||
| --             }, | ||||
| --             window = { | ||||
| --                 completion = cmp.config.window.bordered(), | ||||
| --                 documentation = cmp.config.window.bordered(), | ||||
| --             }, | ||||
| --             sources = cmp.config.sources({ | ||||
| --                 { name = 'nvim_lsp' }, | ||||
| --                 { name = 'vsnip' }, -- For vsnip users. | ||||
| --                 { name = 'path' }, | ||||
| --                 { | ||||
| --                     name = 'buffer', | ||||
| --                     option = { | ||||
| --                         keyword_length = 3, | ||||
| --                         get_bufnrs = function() | ||||
| --                             return vim.api.nvim_list_bufs() | ||||
| --                         end | ||||
| --                     } | ||||
| --                 }, | ||||
| --             }, { | ||||
| --                     { name = 'buffer' }, | ||||
| --                 }) | ||||
| --         }) | ||||
| -- | ||||
| --         -- Set configuration for specific filetype. | ||||
| --         cmp.setup.filetype('gitcommit', { | ||||
| --             sources = cmp.config.sources({ | ||||
| --                 { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git). | ||||
| --             }, { | ||||
| --                     { name = 'buffer' }, | ||||
| --                 }) | ||||
| --         }) | ||||
| -- | ||||
| --         -- 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' } | ||||
| --                 }) | ||||
| --         }) | ||||
| --     end | ||||
| -- } | ||||
|  | ||||
| return { | ||||
| 	"saghen/blink.cmp", | ||||
| 	-- optional: provides snippets for the snippet source | ||||
| 	dependencies = { "rafamadriz/friendly-snippets" }, | ||||
| 	dependencies = { | ||||
| 		"rafamadriz/friendly-snippets", | ||||
| 		{ | ||||
| 			"L3MON4D3/LuaSnip", | ||||
| 			build = "make install_jsregexp", | ||||
| 			config = function() | ||||
| 				require("luasnip").setup({ | ||||
| 					store_selection_keys = "<Tab>", | ||||
| 				}) | ||||
| 				require("luasnip.loaders.from_vscode").lazy_load() | ||||
| 				require("luasnip.loaders.from_lua").lazy_load({ | ||||
| 					paths = { "~/.config/nvim/snippets" }, | ||||
| 				}) | ||||
| 			end, | ||||
| 		}, | ||||
| 	}, | ||||
|  | ||||
| 	-- use a release tag to download pre-built binaries | ||||
| 	version = "1.*", | ||||
| @@ -106,15 +51,28 @@ return { | ||||
| 		-- (Default) Only show the documentation popup when manually triggered | ||||
| 		completion = { | ||||
| 			documentation = { | ||||
| 				auto_show = false, | ||||
| 				auto_show = true, | ||||
| 				auto_show_delay_ms = 200, | ||||
| 			}, | ||||
| 			ghost_text = { | ||||
| 				enabled = true, | ||||
| 			}, | ||||
| 		}, | ||||
|  | ||||
| 		-- Default list of enabled providers defined so that you can extend it | ||||
| 		-- elsewhere in your config, without redefining it, due to `opts_extend` | ||||
| 		sources = { | ||||
| 			default = { "lsp", "path", "snippets", "buffer" }, | ||||
| 			providers = { | ||||
| 				buffer = { | ||||
| 					min_keyword_length = 3, | ||||
| 					score_offset = -10, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
|  | ||||
| 		snippets = { | ||||
| 			preset = "luasnip", | ||||
| 		}, | ||||
|  | ||||
| 		-- (Default) Rust fuzzy matcher for typo resistance and significantly better performance | ||||
|   | ||||
| @@ -1,29 +0,0 @@ | ||||
| { | ||||
|   "Begin/End environment": { | ||||
|     "prefix": "beg", | ||||
|     "body": [ | ||||
|       "\\begin{${1:environment}}", | ||||
|       "\t$0", | ||||
|       "\\end{$1}" | ||||
|     ], | ||||
|     "description": "Begin/End environment" | ||||
|   }, | ||||
|   "Multicols": { | ||||
|     "prefix": "multicols", | ||||
|     "body": [ | ||||
|       "\\begin{multicols}{${1:2}}", | ||||
|       "\t$0", | ||||
|       "\\end{multicols}" | ||||
|     ], | ||||
|     "description": "Multicols environment" | ||||
|   }, | ||||
|   "Minipage": { | ||||
|     "prefix": "minipage", | ||||
|     "body": [ | ||||
|       "\\begin{minipage}{${1:0.5}\\textwidth}", | ||||
|       "\t$0", | ||||
|       "\\end{minipage}" | ||||
|     ], | ||||
|     "description": "Minipage environment" | ||||
|   } | ||||
| } | ||||
| @@ -1,21 +1,57 @@ | ||||
| local ls = require("luasnip") | ||||
| local s = ls.snippet | ||||
| local sn = ls.snippet_node | ||||
| local t = ls.text_node | ||||
| local i = ls.insert_node | ||||
| local f = ls.function_node | ||||
| local d = ls.dynamic_node | ||||
|  | ||||
| return { | ||||
| 	-- Auto-expand: tape "beg" + TAB | ||||
| 	s({ trig = "beg", dscr = "Begin/End environment" }, { | ||||
| 		t("\\begin{"), | ||||
| 		i(1, "environment"), | ||||
| 	-- Minipage avec texte sélectionné | ||||
| 	s({ trig = "minipage", dscr = "Minipage environment" }, { | ||||
| 		t("\\begin{minipage}{"), | ||||
| 		i(1, "0.5"), | ||||
| 		t("\\textwidth}"), | ||||
| 		t({ "", "\t" }), | ||||
| 		d(2, function(_, snip) | ||||
| 			return sn(nil, i(1, snip.env.LS_SELECT_RAW or "")) | ||||
| 		end), | ||||
| 		t({ "", "\\end{minipage}" }), | ||||
| 	}), | ||||
|  | ||||
| 	-- Multicols avec texte sélectionné | ||||
| 	s({ trig = "multicols", dscr = "Multicols environment" }, { | ||||
| 		t("\\begin{multicols}{"), | ||||
| 		i(1, "2"), | ||||
| 		t("}"), | ||||
| 		t({ "", "\t" }), | ||||
| 		i(0), | ||||
| 		t({ "", "\\end{" }), | ||||
| 		d(2, function(_, snip) | ||||
| 			return sn(nil, i(1, snip.env.LS_SELECT_RAW or "")) | ||||
| 		end), | ||||
| 		t({ "", "\\end{multicols}" }), | ||||
| 	}), | ||||
|  | ||||
| 	-- Deux minipages côte à côte | ||||
| 	s({ trig = "minipage2", dscr = "Two minipages side by side" }, { | ||||
| 		t("\\begin{minipage}{"), | ||||
| 		i(1, "0.48"), | ||||
| 		t("\\textwidth}"), | ||||
| 		t({ "", "\t" }), | ||||
| 		i(2), | ||||
| 		t({ "", "\\end{minipage}" }), | ||||
| 		t({ "", "\\hfill" }), | ||||
| 		t({ "", "\\begin{minipage}{" }), | ||||
| 		f(function(args) | ||||
| 			return args[1][1] | ||||
| 			local width = tonumber(args[1][1]) | ||||
| 			if width then | ||||
| 				return tostring(1 - width) | ||||
| 			else | ||||
| 				return "0.48" | ||||
| 			end | ||||
| 		end, { 1 }), | ||||
| 		t("}"), | ||||
| 		t("\\textwidth}"), | ||||
| 		t({ "", "\t" }), | ||||
| 		i(0), | ||||
| 		t({ "", "\\end{minipage}" }), | ||||
| 	}), | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user