From 27dad9a277df69010ce79f4b935d5f991aa57f40 Mon Sep 17 00:00:00 2001 From: rianneogi Date: Fri, 12 Jan 2018 13:39:58 +0530 Subject: [PATCH] Moved lines above --- .gitignore | 1 + src/messages/text_document_completion.cc | 40 ++++++++++++------------ 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index b57bed96..4d92260e 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ waf-* waf2* waf3* x64 +cquery_log.txt diff --git a/src/messages/text_document_completion.cc b/src/messages/text_document_completion.cc index 5fd97b75..0064014f 100644 --- a/src/messages/text_document_completion.cc +++ b/src/messages/text_document_completion.cc @@ -260,6 +260,26 @@ struct TextDocumentCompletionHandler : MessageHandler { } } + bool is_global_completion = false; + std::string existing_completion; + if (file) { + request->params.position = file->FindStableCompletionSource( + request->params.position, &is_global_completion, + &existing_completion); + } + + //If existing completion is empty, dont return completion results + //Only do this when trigger is not manual or context doesn't exist + //(for Atom support) + if (existing_completion.empty() && is_global_completion && (!(request->params.context) || + request->params.context->triggerKind == lsCompletionTriggerKind::TriggerCharacter)) { + LOG_S(INFO) << "Existing completion is empty, no completion results will be returned"; + Out_TextDocumentComplete out; + out.id = request->id; + QueueManager::WriteStdout(IpcId::TextDocumentCompletion, out); + return; + } + if (ShouldRunIncludeCompletion(buffer_line)) { Out_TextDocumentComplete out; out.id = request->id; @@ -286,30 +306,10 @@ struct TextDocumentCompletionHandler : MessageHandler { SortAndFilterCompletionResponse(&out, buffer_line); QueueManager::WriteStdout(IpcId::TextDocumentCompletion, out); } else { - bool is_global_completion = false; - std::string existing_completion; - if (file) { - request->params.position = file->FindStableCompletionSource( - request->params.position, &is_global_completion, - &existing_completion); - } - ClangCompleteManager::OnComplete callback = std::bind( [this, is_global_completion, existing_completion, request]( const std::vector& results, bool is_cached_result) { - //If existing completion is empty, dont return completion results - //Only do this when trigger is not manual and context doesn't exist - //(for Atom support) - if (existing_completion.empty() && is_global_completion && !(request->params.context) && - request->params.context->triggerKind == lsCompletionTriggerKind::TriggerCharacter) { - LOG_S(INFO) << "Existing completion is empty, no completion results will be returned"; - Out_TextDocumentComplete out; - out.id = request->id; - QueueManager::WriteStdout(IpcId::TextDocumentCompletion, out); - return; - } - Out_TextDocumentComplete out; out.id = request->id; out.result.items = results;