Skip to content

Commit 6c84bc7

Browse files
committed
implement is_invalid detection
1 parent c4e491a commit 6c84bc7

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

lua/cmp/entry.lua

+11
Original file line numberDiff line numberDiff line change
@@ -562,4 +562,15 @@ entry.convert_range_encoding = function(self, range)
562562
end)
563563
end
564564

565+
---Return true if the entry is invalid.
566+
entry.is_invalid = function(self)
567+
local is_invalid = false
568+
is_invalid = is_invalid or misc.empty(self.completion_item.label)
569+
if self.completion_item.textEdit then
570+
local range = self.completion_item.textEdit.range or self.completion_item.textEdit.insert
571+
is_invalid = is_invalid or range.start.line ~= range['end'].line
572+
end
573+
return is_invalid
574+
end
575+
565576
return entry

lua/cmp/source.lua

+5-3
Original file line numberDiff line numberDiff line change
@@ -353,11 +353,13 @@ source.complete = function(self, ctx, callback)
353353

354354
self.status = source.SourceStatus.COMPLETED
355355
self.entries = {}
356-
for i, item in ipairs(response.items or response) do
356+
for _, item in ipairs(response.items or response) do
357357
if (item or {}).label then
358358
local e = entry.new(ctx, self, item, response.itemDefaults)
359-
self.entries[i] = e
360-
self.offset = math.min(self.offset, e:get_offset())
359+
if not e:is_invalid() then
360+
table.insert(self.entries, e)
361+
self.offset = math.min(self.offset, e:get_offset())
362+
end
361363
end
362364
end
363365
self.revision = self.revision + 1

0 commit comments

Comments
 (0)