Browse Source

Slight memory optimization of autocompletion

merge-requests/365/head
eidheim 10 years ago
parent
commit
98a4f9c251
  1. 17
      src/source_clang.cc

17
src/source_clang.cc

@ -728,20 +728,17 @@ Source::ClangViewParse(file_path, project_path, language), autocomplete_state(Au
autocomplete_dialog_setup(); autocomplete_dialog_setup();
for (auto &data : autocomplete_data) { for (auto &data : autocomplete_data) {
std::stringstream ss; std::string row;
std::string return_value; std::string return_value;
for (auto &chunk : data.chunks) { for (auto &chunk : data.chunks) {
switch (chunk.kind) { if(chunk.kind==clang::CompletionChunk_ResultType)
case clang::CompletionChunk_ResultType: return_value=chunk.chunk;
return_value = chunk.chunk; else if(chunk.kind!=clang::CompletionChunk_Informative)
break; row+=chunk.chunk;
case clang::CompletionChunk_Informative: break;
default: ss << chunk.chunk; break;
}
} }
auto row=ss.str(); data.chunks.clear();
auto row_insert_on_selection=row;
if (!row.empty()) { if (!row.empty()) {
auto row_insert_on_selection=row;
if(!return_value.empty()) if(!return_value.empty())
row+=" --> " + return_value; row+=" --> " + return_value;
autocomplete_dialog_rows[row] = std::pair<std::string, std::string>(std::move(row_insert_on_selection), std::move(data.brief_comments)); autocomplete_dialog_rows[row] = std::pair<std::string, std::string>(std::move(row_insert_on_selection), std::move(data.brief_comments));

Loading…
Cancel
Save