Clang: Avoid multi-line display name for completion items

These come directly from clang. If converting for display in the
completion list widget, skip new line chunks.

Fixes: QTCREATORBUG-21600
Change-Id: I83749ed73fa68658ec073d97177768f59a87cebf
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
Nikolai Kosjar
2018-12-03 16:09:08 +01:00
parent 57715c7f66
commit 9e17bd1bf0
3 changed files with 32 additions and 1 deletions

View File

@@ -25,6 +25,8 @@
#include "clangcompletionchunkstotextconverter.h"
#include <QtGlobal>
#include <algorithm>
#include <functional>
@@ -70,6 +72,11 @@ void CompletionChunksToTextConverter::setAddSpaces(bool addSpaces)
m_addSpaces = addSpaces;
}
void CompletionChunksToTextConverter::setHonorVerticalSpace(bool honor)
{
m_honorVerticalSpace = honor;
}
void CompletionChunksToTextConverter::setAddExtraVerticalSpaceBetweenBraces(
bool addExtraVerticalSpaceBetweenBraces)
{
@@ -145,6 +152,8 @@ QString CompletionChunksToTextConverter::convertToName(
{
CompletionChunksToTextConverter converter;
converter.setHonorVerticalSpace(false);
converter.parseChunks(codeCompletionChunks);
return converter.text();
@@ -183,6 +192,10 @@ void CompletionChunksToTextConverter::parse(
parsePlaceHolder(codeCompletionChunk); break;
case CodeCompletionChunk::LeftParen: parseLeftParen(codeCompletionChunk); break;
case CodeCompletionChunk::LeftBrace: parseLeftBrace(codeCompletionChunk); break;
case CodeCompletionChunk::VerticalSpace:
if (!m_honorVerticalSpace)
break;
Q_FALLTHROUGH();
default: parseText(codeCompletionChunk.text); break;
}
}