Skip to content

Commit d818fd0

Browse files
authored
fix(view): check in get_selected_index (#1993)
1 parent e1757ae commit d818fd0

3 files changed

Lines changed: 12 additions & 10 deletions

File tree

lua/cmp/view/custom_entries_view.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ custom_entries_view.info = function(self)
307307
end
308308

309309
custom_entries_view.get_selected_index = function(self)
310-
if self:visible() and self.active then
310+
if self:visible() and self.entries_win:option('cursorline') then
311311
return vim.api.nvim_win_get_cursor(self.entries_win.win)[1]
312312
end
313313
end

lua/cmp/view/native_entries_view.lua

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,11 @@ native_entries_view.preselect = function(self, index)
117117
end
118118

119119
native_entries_view.get_selected_index = function(self)
120-
if self:visible() and (vim.v.completed_item or {}).word then
121-
return vim.fn.complete_info({ 'selected' }).selected
120+
if self:visible() then
121+
local idx = vim.fn.complete_info({ 'selected' }).selected
122+
if idx > -1 then
123+
return math.max(0, idx) + 1
124+
end
122125
end
123126
end
124127

@@ -169,11 +172,9 @@ native_entries_view.get_first_entry = function(self)
169172
end
170173

171174
native_entries_view.get_selected_entry = function(self)
172-
if self:visible() then
173-
local idx = self:get_selected_index()
174-
if idx > -1 then
175-
return self.entries[math.max(0, idx) + 1]
176-
end
175+
local idx = self:get_selected_index()
176+
if idx then
177+
return self.entries[idx]
177178
end
178179
end
179180

lua/cmp/view/wildmenu_entries_view.lua

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,8 +229,9 @@ wildmenu_entries_view.get_first_entry = function(self)
229229
end
230230

231231
wildmenu_entries_view.get_selected_entry = function(self)
232-
if self:visible() and self.active then
233-
return self.entries[self:get_selected_index()]
232+
local idx = self:get_selected_index()
233+
if idx then
234+
return self.entries[idx]
234235
end
235236
end
236237

0 commit comments

Comments
 (0)