diff --git a/lua/cmp/utils/window.lua b/lua/cmp/utils/window.lua index 871a9f6..6075632 100644 --- a/lua/cmp/utils/window.lua +++ b/lua/cmp/utils/window.lua @@ -43,6 +43,7 @@ window.ensure = function(self) self[name] = vim.api.nvim_create_buf(false, true) vim.api.nvim_buf_set_option(self[name], 'undolevels', -1) vim.api.nvim_buf_set_option(self[name], 'buftype', 'nofile') + vim.api.nvim_buf_set_option(self[name], 'bufhidden', 'hide') end end end diff --git a/lua/cmp/view/custom_entries_view.lua b/lua/cmp/view/custom_entries_view.lua index b371b35..3f13630 100644 --- a/lua/cmp/view/custom_entries_view.lua +++ b/lua/cmp/view/custom_entries_view.lua @@ -187,17 +187,20 @@ custom_entries_view.draw = function(self) local botline = info.topline + info.height - 1 local texts = {} for i = topline, botline - 1 do - local view = self.entries[i + 1]:get_view(self.offset) - local text = {} - table.insert(text, ' ') - table.insert(text, view.abbr.text) - table.insert(text, string.rep(' ', 1 + self.column_width.abbr - view.abbr.width)) - table.insert(text, view.kind.text) - table.insert(text, string.rep(' ', 1 + self.column_width.kind - view.kind.width)) - table.insert(text, view.menu.text) - table.insert(text, string.rep(' ', 1 + self.column_width.menu - view.menu.width)) - table.insert(text, ' ') - table.insert(texts, table.concat(text, '')) + local e = self.entries[i + 1] + if e then + local view = e:get_view(self.offset) + local text = {} + table.insert(text, ' ') + table.insert(text, view.abbr.text) + table.insert(text, string.rep(' ', 1 + self.column_width.abbr - view.abbr.width)) + table.insert(text, view.kind.text) + table.insert(text, string.rep(' ', 1 + self.column_width.kind - view.kind.width)) + table.insert(text, view.menu.text) + table.insert(text, string.rep(' ', 1 + self.column_width.menu - view.menu.width)) + table.insert(text, ' ') + table.insert(texts, table.concat(text, '')) + end end vim.api.nvim_buf_set_lines(self.entries_win.buf, topline, botline, false, texts) end