@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user