changeset 425:10916f9b1676

Replace delimitMate with nvim-autopairs
author zegervdv <zegervdv@me.com>
date Wed, 28 Jul 2021 11:42:54 +0200
parents f42ea4c4a78c
children 53a73096981a
files dot_config/nvim/init.lua dot_config/nvim/plugin/config.vim
diffstat 2 files changed, 42 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/dot_config/nvim/init.lua	Wed Jul 28 11:40:52 2021 +0200
+++ b/dot_config/nvim/init.lua	Wed Jul 28 11:42:54 2021 +0200
@@ -81,10 +81,48 @@
     -- Parentheses etc
     use { 'tpope/vim-surround' }
     use {
-      'raimondi/delimitMate',
+      'windwp/nvim-autopairs',
       config = function()
-        vim.g.delimitMate_expand_cr = 1
-        vim.g.delimitMate_expand_space = 1
+        local npairs = require 'nvim-autopairs'
+        local Rule = require 'nvim-autopairs.rule'
+
+        npairs.setup()
+
+        require('nvim-autopairs.completion.compe').setup {
+          map_cr = true,
+          map_complete = true,
+        }
+
+        npairs.add_rules {
+          Rule(' ', ' '):with_pair(function(opts)
+            local pair = opts.line:sub(opts.col - 1, opts.col)
+            return vim.tbl_contains({ '()', '[]', '{}' }, pair)
+          end),
+          Rule('( ', ' )')
+            :with_pair(function()
+              return false
+            end)
+            :with_move(function(opts)
+              return opts.prev_char:match '.%)' ~= nil
+            end)
+            :use_key ')',
+          Rule('{ ', ' }')
+            :with_pair(function()
+              return false
+            end)
+            :with_move(function(opts)
+              return opts.prev_char:match '.%}' ~= nil
+            end)
+            :use_key '}',
+          Rule('[ ', ' ]')
+            :with_pair(function()
+              return false
+            end)
+            :with_move(function(opts)
+              return opts.prev_char:match '.%]' ~= nil
+            end)
+            :use_key ']',
+        }
       end,
     }
 
@@ -176,8 +214,7 @@
         }
 
         vim.cmd [[ inoremap <silent><expr> <C-y> compe#complete() ]]
-        vim.cmd [[ inoremap <silent><expr> <CR>      compe#confirm({ 'keys': "\<Plug>delimitMateCR", 'mode': '' }) ]]
-        vim.cmd [[ inoremap <silent><expr> <C-e>     compe#close('<C-e>') ]]
+        vim.cmd [[ inoremap <silent><expr> <C-e> compe#close('<C-e>') ]]
       end,
     }
     use {
--- a/dot_config/nvim/plugin/config.vim	Wed Jul 28 11:40:52 2021 +0200
+++ b/dot_config/nvim/plugin/config.vim	Wed Jul 28 11:42:54 2021 +0200
@@ -738,10 +738,6 @@
   return !col || getline('.')[col - 1]  =~# '\s'
 endfunction
 
-" let g:completion_confirm_key_rhs = "\<Plug>delimitMateCR"
-let g:completion_confirm_key = ""
-imap <expr> <CR> (pumvisible() ? (complete_info()["selected"] != "-1" ? "\<Plug>(completion_confirm_completion)" : "\<Plug>delimitMateCR") : "\<Plug>delimitMateCR")
-
 " Auto close popup menu when finish completion
 autocmd! CompleteDone * if pumvisible() == 0 | pclose | endif