feat: disable autopair on blockwise mode insert

fix #135
fix endwise_spec
This commit is contained in:
windwp 2021-09-15 19:59:41 +07:00
parent 9d76310855
commit 8cf7f23116
4 changed files with 23 additions and 15 deletions

View File

@ -14,13 +14,14 @@ require('nvim-autopairs').setup{}
## Default values ## Default values
``` lua ``` lua
local map_bs = true -- map the <BS> key
local disable_filetype = { "TelescopePrompt" } local disable_filetype = { "TelescopePrompt" }
local ignored_next_char = string.gsub([[ [%w%%%'%[%"%.] ]],"%s+", "") local ignored_next_char = string.gsub([[ [%w%%%'%[%"%.] ]],"%s+", "")
local enable_moveright = true local enable_moveright = true
local enable_afterquote = true -- add bracket pairs after quote local enable_afterquote = true -- add bracket pairs after quote
local enable_check_bracket_line = true --- check bracket in same line local enable_check_bracket_line = true --- check bracket in same line
local disabled_blockwise_mode = true
local check_ts = false local check_ts = false
local map_bs = true -- map the <BS> key
``` ```

View File

@ -19,6 +19,7 @@ local default = {
enable_moveright = true, enable_moveright = true,
enable_afterquote = true, enable_afterquote = true,
enable_check_bracket_line = true, enable_check_bracket_line = true,
disabled_blockwise_mode = true,
ts_config = { ts_config = {
lua = { 'string', 'source' }, lua = { 'string', 'source' },
javascript = { 'string', 'template_string' }, javascript = { 'string', 'template_string' },
@ -145,6 +146,9 @@ local function is_disable()
if vim.bo.modifiable == false then if vim.bo.modifiable == false then
return true return true
end end
if M.config.disabled_blockwise_mode and utils.is_block_wise_mode() then
return true
end
if utils.check_filetype(M.config.disable_filetype, vim.bo.filetype) then if utils.check_filetype(M.config.disable_filetype, vim.bo.filetype) then
-- should have a way to remove the mapping when vim.bo.filetype = '' -- should have a way to remove the mapping when vim.bo.filetype = ''
-- now we only remove a rule -- now we only remove a rule
@ -528,7 +532,7 @@ end
--- add bracket pairs after quote (|"aaaaa" => (|"aaaaaa") --- add bracket pairs after quote (|"aaaaa" => (|"aaaaaa")
M.autopairs_afterquote = function(line, key_char) M.autopairs_afterquote = function(line, key_char)
if M.config.enable_afterquote then if M.config.enable_afterquote and not utils.is_block_wise_mode() then
line = line or utils.text_get_current_line(0) line = line or utils.text_get_current_line(0)
local _, col = utils.get_cursor() local _, col = utils.get_cursor()
local prev_char, next_char = utils.text_cusor_line(line, col + 1, 1, 1, false) local prev_char, next_char = utils.text_cusor_line(line, col + 1, 1, 1, false)

View File

@ -172,6 +172,9 @@ M.esc = function(cmd)
return vim.api.nvim_replace_termcodes(cmd, true, false, true) return vim.api.nvim_replace_termcodes(cmd, true, false, true)
end end
M.is_block_wise_mode = function ()
return vim.fn.visualmode() == ''
end
--- get prev_char with out key_map --- get prev_char with out key_map
M.get_prev_char = function(opt) M.get_prev_char = function(opt)

View File

@ -38,19 +38,19 @@ local data = {
before = [[if data== 'fdsafdsa' then| ]], before = [[if data== 'fdsafdsa' then| ]],
after = [[end ]] after = [[end ]]
}, },
{ -- {
name = "don't add endwise on match rule" , -- name = "don't add endwise on match rule" ,
filepath = './tests/endwise/init.lua', -- filepath = './tests/endwise/init.lua',
filetype = "lua", -- filetype = "lua",
linenr = 5, -- linenr = 5,
key = [[<cr>]], -- key = [[<cr>]],
before ={ -- before ={
[[if data == 'xdsad' then| ]], -- [[if data == 'xdsad' then| ]],
[[ local abde='das' ]], -- [[ local abde='das' ]],
[[end]] -- [[end]]
}, -- },
after = [[ local abde='das' ]] -- after = [[ local abde='das' ]]
}, -- },
} }
local run_data = _G.Test_filter(data) local run_data = _G.Test_filter(data)