From da4e060f401d19e9b4cc15384d332ed6f0c58719 Mon Sep 17 00:00:00 2001 From: cy Date: Mon, 2 Dec 2024 23:17:18 -0500 Subject: [PATCH] use luasnip and change stuff in nvim-cmp --- nvim/lazy-lock.json | 15 ++++++------ nvim/lua/config/nvim-cmp.lua | 47 ++++++++++++++++++++++++------------ nvim/lua/plugin_specs.lua | 10 +++++--- 3 files changed, 45 insertions(+), 27 deletions(-) diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json index 4977a21..e6b279a 100644 --- a/nvim/lazy-lock.json +++ b/nvim/lazy-lock.json @@ -1,10 +1,11 @@ { + "LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, - "cmp-nvim-ultisnips": { "branch": "main", "commit": "2be0eda0f7fbf47ebd9fbdace369cc45d57acf49" }, "cmp-omni": { "branch": "main", "commit": "4ef610bbd85a5ee4e97e09450c0daecbdc60de86" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, + "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, "copilot.vim": { "branch": "release", "commit": "87038123804796ca7af20d1b71c3428d858a9124" }, "dressing.nvim": { "branch": "master", "commit": "fc78a3ca96f4db9f8893bb7e2fd9823e0780451b" }, "fzf-lua": { "branch": "main", "commit": "175ddbb9bbe28eef006516f38b126215de1fef57" }, @@ -12,13 +13,11 @@ "lazy.nvim": { "branch": "main", "commit": "56ead98e05bb37a4ec28930a54d836d033cf00f2" }, "lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" }, "nvim-autopairs": { "branch": "master", "commit": "b464658e9b880f463b9f7e6ccddd93fb0013f559" }, - "nvim-cmp": { "branch": "main", "commit": "ed31156aa2cc14e3bc066c59357cc91536a2bc01" }, - "nvim-lspconfig": { "branch": "master", "commit": "e869c7e6af0a3c40a2b344a9765779d74dd12720" }, + "nvim-cmp": { "branch": "main", "commit": "ca4d3330d386e76967e53b85953c170658255ecb" }, + "nvim-lspconfig": { "branch": "master", "commit": "1aa9f36b6d542dafc0b4a38c48969d036003b00a" }, "nvim-tree.lua": { "branch": "master", "commit": "ca7c4c33cac2ad66ec69d45e465379716ef0cc97" }, - "nvim-treesitter": { "branch": "master", "commit": "427a90ae70f66c2fdf2d9ad16a0f08e9697d90d9" }, + "nvim-treesitter": { "branch": "master", "commit": "69170c93149ddb71a22bd954514806395c430c02" }, "nvim-web-devicons": { "branch": "master", "commit": "203da76ecfbb4b192cf830665b03eb651b635c94" }, - "tokyonight.nvim": { "branch": "main", "commit": "c2725eb6d086c8c9624456d734bd365194660017" }, - "ultisnips": { "branch": "master", "commit": "49dc8cb2086db19d385791c8e1635723b0fd95c7" }, - "vim-commentary": { "branch": "master", "commit": "64a654ef4a20db1727938338310209b6a63f60c9" }, - "vim-snippets": { "branch": "master", "commit": "f0a3184d9f90b96b044d5914625a25c554d7f301" } + "tokyonight.nvim": { "branch": "main", "commit": "3d02469b98396dc03e87a4f4b64e109801ef6890" }, + "vim-commentary": { "branch": "master", "commit": "64a654ef4a20db1727938338310209b6a63f60c9" } } diff --git a/nvim/lua/config/nvim-cmp.lua b/nvim/lua/config/nvim-cmp.lua index 6e69a1e..1cdfb48 100644 --- a/nvim/lua/config/nvim-cmp.lua +++ b/nvim/lua/config/nvim-cmp.lua @@ -1,36 +1,53 @@ local cmp = require("cmp") +local luasnip = require("luasnip"); cmp.setup { snippet = { expand = function(args) - vim.fn["UltiSnips#Anon"](args.body) + require('luasnip').lsp_expand(args.body) end, }, - mapping = cmp.mapping.preset.insert { - [""] = function(fallback) + mapping = { + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + if luasnip.expandable() then + luasnip.expand() + else + cmp.confirm({ + select = true, + }) + end + else + fallback() + end + end), + + [""] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() + elseif luasnip.locally_jumpable(1) then + luasnip.jump(1) else fallback() end - end, - [""] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_prev_item() + elseif luasnip.locally_jumpable(-1) then + luasnip.jump(-1) else fallback() end - end, - [""] = cmp.mapping.scroll_docs(-4), - [""] = cmp.mapping.scroll_docs(4), - [""] = cmp.mapping.complete(), - [""] = cmp.mapping.abort(), - [""] = cmp.mapping.confirm({ select = false }), + end, { "i", "s" }), }, - sources = cmp.config.sources { + sources = cmp.config.sources ({ { name = "nvim_lsp" }, - { name = "ultisnips" }, + { name = "luasnip" }, + }, { { name = "buffer" }, - { name = "path" }, - } + }) } diff --git a/nvim/lua/plugin_specs.lua b/nvim/lua/plugin_specs.lua index 1fae72b..4af075a 100644 --- a/nvim/lua/plugin_specs.lua +++ b/nvim/lua/plugin_specs.lua @@ -41,16 +41,18 @@ local plugin_specs = { "hrsh7th/cmp-buffer", "hrsh7th/cmp-omni", "hrsh7th/cmp-cmdline", - "quangnguyen30192/cmp-nvim-ultisnips", + "saadparwaiz1/cmp_luasnip", }, config = function() require("config.nvim-cmp") end, }, - { "SirVer/ultisnips", dependencies = { - "honza/vim-snippets", - }, event = "InsertEnter" }, + { + "L3MON4D3/LuaSnip", + version = "v2.*", + build = "make install_jsregexp", + }, { "stevearc/dressing.nvim", event = "VeryLazy" },