浏览代码

autopairs should be fixed

Chris 4 年之前
父节点
当前提交
3b69bc9c13
共有 1 个文件被更改,包括 27 次插入57 次删除
  1. 27 57
      lua/nv-autopairs/init.lua

+ 27 - 57
lua/nv-autopairs/init.lua

@@ -1,54 +1,3 @@
--- require('nvim-autopairs').setup()
--- 
--- local pairs_map = {
---     ["'"] = "'",
---     ['"'] = '"',
---     ['('] = ')',
---     ['['] = ']',
---     ['{'] = '}',
---     ['`'] = '`',
---     ['```'] = '```',
--- }
--- local disable_filetype = { "TelescopePrompt" }
--- local break_line_filetype = nil -- mean all file type
--- local html_break_line_filetype = {'html' , 'vue' , 'typescriptreact' , 'svelte' , 'javascriptreact'}
--- local ignored_next_char = "%w"
--- 
--- local remap = vim.api.nvim_set_keymap
--- local npairs = require('nvim-autopairs')
--- 
--- -- skip it, if you use another global object
--- _G.MUtils= {}
--- 
--- vim.g.completion_confirm_key = ""
--- MUtils.completion_confirm=function()
---   if vim.fn.pumvisible() ~= 0  then
---     if vim.fn.complete_info()["selected"] ~= -1 then
---       vim.fn["compe#confirm"]()
---       return npairs.esc("<c-y>")
---     else
---       vim.defer_fn(function()
---         vim.fn["compe#confirm"]("<cr>")
---       end, 20)
---       return npairs.esc("<c-n>")
---     end
---   else
---     return npairs.check_break_line_char()
---   end
--- end
---
---
--- remap('i' , '<CR>','v:lua.MUtils.completion_confirm()', {expr = true , noremap = true})
--- TODO switch to lua plugin when possible
--- vim.cmd([[
--- let g:lexima_no_default_rules = v:true
--- call lexima#set_default_rules()
--- inoremap <silent><expr> <C-Space> compe#complete()
--- inoremap <silent><expr> <CR>      compe#confirm(lexima#expand('<LT>CR>', 'i'))
--- inoremap <silent><expr> <C-e>     compe#close('<C-e>')
--- inoremap <silent><expr> <C-f>     compe#scroll({ 'delta': +4 })
--- inoremap <silent><expr> <C-d>     compe#scroll({ 'delta': -4 })
---     ]])
 require('nvim-autopairs').setup()
 local npairs = require('nvim-autopairs')
 
@@ -60,13 +9,33 @@ end
 
 _G.MUtils = {}
 
+-- TEST
+vim.g.completion_confirm_key = ""
 MUtils.completion_confirm = function()
     if vim.fn.pumvisible() ~= 0 then
         if vim.fn.complete_info()["selected"] ~= -1 then
             vim.fn["compe#confirm"]()
+            -- return npairs.esc("<c-y>")
             return npairs.esc("")
         else
-            vim.fn.nvim_select_popupmenu_item(0, false, false, {})
+            vim.defer_fn(function()
+                vim.fn["compe#confirm"]("<cr>")
+            end, 20)
+            return npairs.esc("<c-n>")
+        end
+    else
+        return npairs.check_break_line_char()
+    end
+end
+-- TEST
+
+MUtils.completion_confirm = function()
+    if vim.fn.pumvisible() ~= 0 then
+        if vim.fn.complete_info()["selected"] ~= -1 then
+            vim.fn["compe#confirm"]()
+            return npairs.esc("")
+        else
+            vim.api.nvim_select_popupmenu_item(0, false, false, {})
             vim.fn["compe#confirm"]()
             return npairs.esc("<c-n>")
         end
@@ -75,8 +44,8 @@ MUtils.completion_confirm = function()
     end
 end
 
-MUtils.tab=function()
-    if vim.fn.pumvisible() ~= 0  then
+MUtils.tab = function()
+    if vim.fn.pumvisible() ~= 0 then
         return npairs.esc("<C-n>")
     else
         if vim.fn["vsnip#available"](1) ~= 0 then
@@ -88,8 +57,8 @@ MUtils.tab=function()
     end
 end
 
-MUtils.s_tab=function()
-    if vim.fn.pumvisible() ~= 0  then
+MUtils.s_tab = function()
+    if vim.fn.pumvisible() ~= 0 then
         return npairs.esc("<C-p>")
     else
         if vim.fn["vsnip#jumpable"](-1) ~= 0 then
@@ -102,6 +71,7 @@ MUtils.s_tab=function()
 end
 
 -- Autocompletion and snippets
-imap("<CR>", "v:lua.MUtils.completion_confirm()", {expr = true, noremap = true})
+vim.api.nvim_set_keymap('i', '<CR>', 'v:lua.MUtils.completion_confirm()', {expr = true, noremap = true})
+-- imap("<CR>", "v:lua.MUtils.completion_confirm()", {expr = true, noremap = true})
 imap("<Tab>", "v:lua.MUtils.tab()", {expr = true, noremap = true})
 imap("<S-Tab>", "v:lua.MUtils.s_tab()", {expr = true, noremap = true})