소스 검색

feature: allow cmp confirm options to be configurable (#1523)

Chase Colman 3 년 전
부모
커밋
fbfd8c1fc3
1개의 변경된 파일13개의 추가작업 그리고 4개의 파일을 삭제
  1. 13 4
      lua/core/cmp.lua

+ 13 - 4
lua/core/cmp.lua

@@ -30,6 +30,10 @@ M.config = function()
     return
     return
   end
   end
   lvim.builtin.cmp = {
   lvim.builtin.cmp = {
+    confirm_opts = {
+      behavior = cmp.ConfirmBehavior.Replace,
+      select = true,
+    },
     formatting = {
     formatting = {
       format = function(entry, vim_item)
       format = function(entry, vim_item)
         local icons = require("lsp.kind").icons
         local icons = require("lsp.kind").icons
@@ -107,10 +111,15 @@ M.config = function()
 
 
       ["<C-Space>"] = cmp.mapping.complete(),
       ["<C-Space>"] = cmp.mapping.complete(),
       ["<C-e>"] = cmp.mapping.close(),
       ["<C-e>"] = cmp.mapping.close(),
-      ["<CR>"] = cmp.mapping.confirm {
-        behavior = cmp.ConfirmBehavior.Replace,
-        select = true,
-      },
+      ["<CR>"] = cmp.mapping(function(fallback)
+        if not require("cmp").confirm(lvim.builtin.cmp.confirm_opts) then
+          if luasnip.jumpable() then
+            vim.fn.feedkeys(T "<Plug>luasnip-jump-next", "")
+          else
+            fallback()
+          end
+        end
+      end),
     },
     },
   }
   }
 end
 end