Reduce use of VimL (#168)
* perf(context): reduce use of `cmd` and `fn` * perf(float): reduce use of `cmd` and `fn` * perf(init): reduce use of `cmd` and `fn` * perf(menu): reduce use of `cmd` and `fn` * perf(plugin): reduce use of `cmd` and `fn` * docs(README): reduce use of `cmd` and `fn`
This commit is contained in:
@@ -55,8 +55,9 @@ context.new = function(prev_context, option)
|
||||
self.cursor_line = vim.api.nvim_get_current_line()
|
||||
self.virtcol = vim.fn.virtcol('.')
|
||||
self.cursor = {}
|
||||
self.cursor.row = vim.api.nvim_win_get_cursor(0)[1]
|
||||
self.cursor.col = vim.api.nvim_win_get_cursor(0)[2] + 1
|
||||
local cursor = vim.api.nvim_win_get_cursor(0)
|
||||
self.cursor.row = cursor[1]
|
||||
self.cursor.col = cursor[2] + 1
|
||||
self.cursor.line = self.cursor.row - 1
|
||||
self.cursor.character = misc.to_utfindex(self.cursor_line, self.cursor.col)
|
||||
self.cursor_before_line = string.sub(self.cursor_line, 1, self.cursor.col - 1)
|
||||
|
||||
@@ -125,7 +125,7 @@ float.scroll = function(self, delta)
|
||||
|
||||
vim.defer_fn(function()
|
||||
vim.api.nvim_buf_call(buf, function()
|
||||
vim.cmd('normal! ' .. top .. 'zt')
|
||||
vim.api.nvim_command('normal! ' .. top .. 'zt')
|
||||
end)
|
||||
end, 0)
|
||||
end
|
||||
|
||||
@@ -63,7 +63,7 @@ end
|
||||
---Select next item if possible
|
||||
cmp.select_next_item = function()
|
||||
if vim.fn.pumvisible() == 1 then
|
||||
vim.fn.feedkeys(keymap.t('<C-n>'), 'n')
|
||||
vim.api.nvim_feedkeys(keymap.t('<C-n>'), 'n', true)
|
||||
return true
|
||||
else
|
||||
return false
|
||||
@@ -73,7 +73,7 @@ end
|
||||
---Select prev item if possible
|
||||
cmp.select_prev_item = function()
|
||||
if vim.fn.pumvisible() == 1 then
|
||||
vim.fn.feedkeys(keymap.t('<C-p>'), 'n')
|
||||
vim.api.nvim_feedkeys(keymap.t('<C-p>'), 'n', true)
|
||||
return true
|
||||
else
|
||||
return false
|
||||
|
||||
@@ -48,7 +48,8 @@ menu.close = function(self)
|
||||
debug.log('menu.close', vim.fn.pumvisible())
|
||||
if vim.fn.pumvisible() == 1 then
|
||||
-- TODO: Is it safe to call...?
|
||||
vim.fn.complete(#vim.fn.getline('.') + 1, {})
|
||||
local line = vim.api.nvim_win_get_cursor(0)[1]
|
||||
vim.fn.complete(#vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1] + 1, {})
|
||||
end
|
||||
self:unselect()
|
||||
end)
|
||||
@@ -162,15 +163,15 @@ menu.show = function(self)
|
||||
|
||||
local completeopt = vim.o.completeopt
|
||||
if self.preselect == 1 then
|
||||
vim.cmd('set completeopt=menuone,noinsert')
|
||||
vim.opt.completeopt = {'menuone', 'noinsert'}
|
||||
else
|
||||
vim.cmd('set completeopt=' .. config.get().completion.completeopt)
|
||||
vim.opt.completeopt = config.get().completion.completeopt
|
||||
end
|
||||
vim.fn.complete(self.offset, self.items)
|
||||
if self.preselect > 1 then
|
||||
vim.api.nvim_select_popupmenu_item(self.preselect - 1, false, false, {})
|
||||
end
|
||||
vim.cmd('set completeopt=' .. completeopt)
|
||||
vim.opt.completeopt = completeopt
|
||||
end
|
||||
|
||||
---Select current item
|
||||
|
||||
Reference in New Issue
Block a user