Reuse scratch buffer for keymap normalization (#991)
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
local misc = require('cmp.utils.misc')
|
local misc = require('cmp.utils.misc')
|
||||||
|
local buffer = require('cmp.utils.buffer')
|
||||||
local api = require('cmp.utils.api')
|
local api = require('cmp.utils.api')
|
||||||
|
|
||||||
local keymap = {}
|
local keymap = {}
|
||||||
@@ -16,15 +17,15 @@ end
|
|||||||
---@param keys string
|
---@param keys string
|
||||||
---@return string
|
---@return string
|
||||||
keymap.normalize = function(keys)
|
keymap.normalize = function(keys)
|
||||||
local normalize_buf = vim.api.nvim_create_buf(false, true)
|
local normalize_buf = buffer.ensure('cmp.util.keymap.normalize')
|
||||||
vim.api.nvim_buf_set_keymap(normalize_buf, 't', keys, '<Plug>(cmp.utils.keymap.normalize)', {})
|
vim.api.nvim_buf_set_keymap(normalize_buf, 't', keys, '<Plug>(cmp.utils.keymap.normalize)', {})
|
||||||
for _, map in ipairs(vim.api.nvim_buf_get_keymap(normalize_buf, 't')) do
|
for _, map in ipairs(vim.api.nvim_buf_get_keymap(normalize_buf, 't')) do
|
||||||
if keymap.equals(map.rhs, '<Plug>(cmp.utils.keymap.normalize)') then
|
if keymap.equals(map.rhs, '<Plug>(cmp.utils.keymap.normalize)') then
|
||||||
vim.api.nvim_buf_delete(normalize_buf, {})
|
vim.api.nvim_buf_del_keymap(normalize_buf, 't', keys)
|
||||||
return map.lhs
|
return map.lhs
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
vim.api.nvim_buf_delete(normalize_buf, {})
|
vim.api.nvim_buf_del_keymap(normalize_buf, 't', keys)
|
||||||
return keys
|
return keys
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user