option completion are valid until a modification is made before it
This commit is contained in:
parent
1bd2260fa5
commit
7619fcb198
|
@ -187,13 +187,17 @@ InsertCompletion complete_option(const Buffer& buffer, ByteCoord cursor_pos,
|
||||||
end = buffer.advance(coord, len);
|
end = buffer.advance(coord, len);
|
||||||
}
|
}
|
||||||
size_t timestamp = (size_t)str_to_int(match[4].str());
|
size_t timestamp = (size_t)str_to_int(match[4].str());
|
||||||
|
auto changes = buffer.changes_since(timestamp);
|
||||||
|
if (find_if(changes, [&](const Buffer::Change& change){
|
||||||
|
return change.begin < coord;
|
||||||
|
}) != changes.end())
|
||||||
|
return {};
|
||||||
|
|
||||||
ByteCount longest_completion = 0;
|
ByteCount longest_completion = 0;
|
||||||
for (auto it = opt.begin() + 1; it != opt.end(); ++it)
|
for (auto it = opt.begin() + 1; it != opt.end(); ++it)
|
||||||
longest_completion = std::max(longest_completion, it->length());
|
longest_completion = std::max(longest_completion, it->length());
|
||||||
|
|
||||||
if (timestamp == buffer.timestamp() and
|
if (cursor_pos.line == coord.line and cursor_pos.column >= coord.column and
|
||||||
cursor_pos.line == coord.line and cursor_pos.column >= coord.column and
|
|
||||||
buffer.distance(coord, cursor_pos) < longest_completion)
|
buffer.distance(coord, cursor_pos) < longest_completion)
|
||||||
{
|
{
|
||||||
ComplAndDescList res;
|
ComplAndDescList res;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user