diff --git a/.config/nvim/lua/config/lsp.lua b/.config/nvim/lua/config/lsp.lua index f443761b..02226576 100644 --- a/.config/nvim/lua/config/lsp.lua +++ b/.config/nvim/lua/config/lsp.lua @@ -69,10 +69,11 @@ cmp.setup { [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.close(), - [''] = cmp.mapping.confirm { - behavior = cmp.ConfirmBehavior.Replace, - select = true, - }, + [""] = cmp.mapping(function(fallback) + if not cmp.confirm({ select = false }) then + require("pairs.enter").type() + end + end), [''] = function(fallback) if cmp.visible() then cmp.select_next_item() @@ -99,6 +100,16 @@ cmp.setup { }, } +local kind = cmp.lsp.CompletionItemKind + +cmp.event:on("confirm_done", function(event) + local item = event.entry:get_completion_item() + local parensDisabled = item.data and item.data.funcParensDisabled or false + if not parensDisabled and (item.kind == kind.Method or item.kind == kind.Function) then + require("pairs.bracket").type_left("(") + end +end) + local saga = require 'lspsaga' saga.init_lsp_saga() diff --git a/.config/nvim/packer.vim b/.config/nvim/packer.vim index 8986bdb8..c37adbf7 100644 --- a/.config/nvim/packer.vim +++ b/.config/nvim/packer.vim @@ -155,7 +155,15 @@ require('packer').startup { require('Comment').setup() end } - use {'ZhiyuanLck/smart-pairs', event = 'InsertEnter', config = function() require('pairs'):setup() end} + use {'ZhiyuanLck/smart-pairs', + event = 'InsertEnter', + config = function() + require('pairs'):setup({ + enter = { + enable_mapping = false + } + }) + end} use 'tpope/vim-repeat' use 'tpope/vim-surround' use 'kenn7/vim-arsync'