Files
nvim-cmp/lua/cmp/utils/spec.lua
2021-08-10 21:56:42 +09:00

55 lines
1.2 KiB
Lua

local context = require'cmp.context'
local source = require 'cmp.source'
local types = require('cmp.types')
local spec = {}
spec.before = function()
vim.cmd [[
bdelete!
enew!
setlocal virtualedit=all
]]
end
spec.state = function(text, row, col)
vim.fn.setline(1, text)
vim.fn.cursor(row, col)
local ctx = context.empty()
local s = source.new('spec', {
complete = function()
end
})
return {
context = function()
return ctx
end,
source = function()
return s
end,
backspace = function()
vim.fn.feedkeys('x', 'nx')
vim.fn.feedkeys('h', 'nx')
ctx = context.new(ctx, { reason = types.cmp.ContextReason.Auto })
s:complete(ctx, function() end)
return ctx
end,
input = function(char)
vim.fn.feedkeys(('i%s'):format(char), 'nx')
vim.fn.feedkeys(string.rep('l', #char), 'nx')
ctx.prev_context = nil
ctx = context.new(ctx, { reason = types.cmp.ContextReason.Auto })
s:complete(ctx, function() end)
return ctx
end,
manual = function()
ctx = context.new(ctx, { reason = types.cmp.ContextReason.Manual })
s:complete(ctx, function() end)
return ctx
end
}
end
return spec