Normalize mapping key before use

May be fixes #431
This commit is contained in:
hrsh7th
2021-10-29 22:44:41 +09:00
parent 3945dc5d00
commit 669803b9ff

View File

@@ -1,4 +1,5 @@
local cache = require('cmp.utils.cache') local cache = require('cmp.utils.cache')
local keymap = require('cmp.utils.keymap')
local misc = require('cmp.utils.misc') local misc = require('cmp.utils.misc')
local api = require('cmp.utils.api') local api = require('cmp.utils.api')
@@ -49,13 +50,13 @@ config.get = function()
local type = vim.fn.getcmdtype() local type = vim.fn.getcmdtype()
local cmdline = config.cmdline[type] or { revision = 1, sources = {} } local cmdline = config.cmdline[type] or { revision = 1, sources = {} }
return config.cache:ensure({ 'get_cmdline', type, global.revision or 0, cmdline.revision or 0 }, function() return config.cache:ensure({ 'get_cmdline', type, global.revision or 0, cmdline.revision or 0 }, function()
return misc.merge(cmdline, global) return misc.merge(config.normalize(cmdline), config.normalize(global))
end) end)
else else
local bufnr = vim.api.nvim_get_current_buf() local bufnr = vim.api.nvim_get_current_buf()
local buffer = config.buffers[bufnr] or { revision = 1 } local buffer = config.buffers[bufnr] or { revision = 1 }
return config.cache:ensure({ 'get_buffer', bufnr, global.revision or 0, buffer.revision or 0 }, function() return config.cache:ensure({ 'get_buffer', bufnr, global.revision or 0, buffer.revision or 0 }, function()
return misc.merge(buffer, global) return misc.merge(config.normalize(buffer), config.normalize(global))
end) end)
end end
end end
@@ -90,4 +91,16 @@ config.get_source_config = function(name)
end) end)
end end
---Normalize mapping key
---@param c cmp.ConfigSchema
---@return cmp.ConfigSchema
config.normalize = function(c)
if c.mapping then
for k, v in pairs(c.mapping) do
c.mapping[keymap.normalize(k)] = v
end
end
return c
end
return config return config