diff --git a/src/shell/server.cpp b/src/shell/server.cpp index 05e11e5407..736024bf2c 100644 --- a/src/shell/server.cpp +++ b/src/shell/server.cpp @@ -176,7 +176,7 @@ json server::handle_check(json const &) { } snapshot const * server::get_closest_snapshot(unsigned line) { - snapshot const * ret = nullptr; + snapshot const * ret = m_snapshots.size() ? &m_snapshots.front() : nullptr; for (snapshot const & snap : m_snapshots) { if (snap.m_pos.first <= line) ret = &snap; @@ -274,6 +274,10 @@ json server::handle_complete(json const & req) { unsigned line = req["line"]; std::vector completions; + if (!m_snapshots.size()) { // should only happen when imports have been touched + handle_check({}); + } + if (snapshot const * snap = get_closest_snapshot(line)) { environment const & env = snap->m_env; options const & opts = snap->m_options;