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:
Iron-E
2021-09-08 22:12:22 -04:00
committed by GitHub
parent 29679d493b
commit ae54dcdc49
6 changed files with 22 additions and 20 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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