diff --git a/src/command_line.cc b/src/command_line.cc index c40ee245..b57210e0 100644 --- a/src/command_line.cc +++ b/src/command_line.cc @@ -786,11 +786,12 @@ struct Index_DoIndex { Parse, }; + Index_DoIndex(Type type, const std::string& path, const optional>& args) + : type(type), path(path), args(args) {} + + Type type; std::string path; optional> args; - Type type; - - Index_DoIndex(Type type) : type(type) {} }; struct Index_DoIdMap { @@ -888,9 +889,7 @@ void ImportCachedIndex(IndexerConfig* config, // Import all dependencies. for (auto& dependency_path : cache->dependencies) { std::cerr << "- Dispatching dependency import " << dependency_path << std::endl; - Index_DoIndex dep_index_request(Index_DoIndex::Type::ImportOnly); - dep_index_request.path = dependency_path; - queue_do_index->PriorityEnqueue(std::move(dep_index_request)); + queue_do_index->PriorityEnqueue(Index_DoIndex(Index_DoIndex::Type::ImportOnly, dependency_path, nullopt)); } *last_modification_time = cache->last_modification_time; @@ -1198,10 +1197,7 @@ void QueryDbMainLoop( << "] Dispatching index request for file " << filepath << std::endl; - Index_DoIndex request(Index_DoIndex::Type::ImportAndUpdate); - request.path = filepath; - request.args = entry.args; - queue_do_index->Enqueue(std::move(request)); + queue_do_index->Enqueue(Index_DoIndex(Index_DoIndex::Type::ImportAndUpdate, filepath, entry.args)); } break; } @@ -1228,18 +1224,16 @@ void QueryDbMainLoop( case IpcId::TextDocumentDidSave: { auto msg = static_cast(message.get()); - WorkingFile* working_file = working_files->GetFileByFilename(msg->params.textDocument.uri.GetPath()); - if (working_file) { - // TODO: Update working file indexed content when we actually get the - // index update. + std::string path = msg->params.textDocument.uri.GetPath(); + + // TODO: Update working file indexed content when we actually apply the + // index update. + WorkingFile* working_file = working_files->GetFileByFilename(path); + if (working_file) working_file->SetIndexContent(working_file->buffer_content); - } // Send an index update request. - Index_DoIndex request(Index_DoIndex::Type::Parse); - request.path = msg->params.textDocument.uri.GetPath(); - request.args = project->FindArgsForFile(msg->params.textDocument.uri.GetPath()); - queue_do_index->Enqueue(std::move(request)); + queue_do_index->Enqueue(Index_DoIndex(Index_DoIndex::Type::Parse, path, project->FindArgsForFile(path))); break; }