Clang: ClangAssistProposalItem is now inheriting AssistProposalItemInterface

Change-Id: I781ba27659e852782292596fe590666b09d7253e
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
This commit is contained in:
Marco Bubke
2016-01-28 15:35:18 +01:00
parent c903f4974f
commit bb3b7307ef
4 changed files with 140 additions and 108 deletions

View File

@@ -27,6 +27,7 @@
#include "clangcompletionchunkstotextconverter.h"
#include <cplusplus/Icons.h>
#include <cplusplus/MatchingText.h>
#include <cplusplus/Token.h>
@@ -60,6 +61,11 @@ bool ClangAssistProposalItem::prematurelyApplies(const QChar &typedChar) const
return applies;
}
bool ClangAssistProposalItem::implicitlyApplies() const
{
return false;
}
static bool hasOnlyBlanksBeforeCursorInLine(QTextCursor textCursor)
{
textCursor.movePosition(QTextCursor::StartOfLine, QTextCursor::KeepAnchor);
@@ -75,8 +81,8 @@ static bool hasOnlyBlanksBeforeCursorInLine(QTextCursor textCursor)
return nonSpace == textBeforeCursor.cend();
}
void ClangAssistProposalItem::applyContextualContent(TextEditor::TextEditorWidget *editorWidget,
int basePosition) const
void ClangAssistProposalItem::apply(TextEditor::TextEditorWidget *editorWidget,
int basePosition) const
{
const CodeCompletion ccr = codeCompletion();
@@ -234,6 +240,103 @@ void ClangAssistProposalItem::applyContextualContent(TextEditor::TextEditorWidge
}
}
void ClangAssistProposalItem::setText(const QString &text)
{
m_text = text;
}
QString ClangAssistProposalItem::text() const
{
return m_text;
}
QIcon ClangAssistProposalItem::icon() const
{
using CPlusPlus::Icons;
static const CPlusPlus::Icons m_icons;
static const char SNIPPET_ICON_PATH[] = ":/texteditor/images/snippet.png";
static const QIcon snippetIcon = QIcon(QLatin1String(SNIPPET_ICON_PATH));
switch (m_codeCompletion.completionKind()) {
case CodeCompletion::ClassCompletionKind:
case CodeCompletion::TemplateClassCompletionKind:
case CodeCompletion::TypeAliasCompletionKind:
return m_icons.iconForType(Icons::ClassIconType);
case CodeCompletion::EnumerationCompletionKind:
return m_icons.iconForType(Icons::EnumIconType);
case CodeCompletion::EnumeratorCompletionKind:
return m_icons.iconForType(Icons::EnumeratorIconType);
case CodeCompletion::ConstructorCompletionKind:
case CodeCompletion::DestructorCompletionKind:
case CodeCompletion::FunctionCompletionKind:
case CodeCompletion::TemplateFunctionCompletionKind:
case CodeCompletion::ObjCMessageCompletionKind:
switch (m_codeCompletion.availability()) {
case CodeCompletion::Available:
case CodeCompletion::Deprecated:
return m_icons.iconForType(Icons::FuncPublicIconType);
default:
return m_icons.iconForType(Icons::FuncPrivateIconType);
}
case CodeCompletion::SignalCompletionKind:
return m_icons.iconForType(Icons::SignalIconType);
case CodeCompletion::SlotCompletionKind:
switch (m_codeCompletion.availability()) {
case CodeCompletion::Available:
case CodeCompletion::Deprecated:
return m_icons.iconForType(Icons::SlotPublicIconType);
case CodeCompletion::NotAccessible:
case CodeCompletion::NotAvailable:
return m_icons.iconForType(Icons::SlotPrivateIconType);
}
case CodeCompletion::NamespaceCompletionKind:
return m_icons.iconForType(Icons::NamespaceIconType);
case CodeCompletion::PreProcessorCompletionKind:
return m_icons.iconForType(Icons::MacroIconType);
case CodeCompletion::VariableCompletionKind:
switch (m_codeCompletion.availability()) {
case CodeCompletion::Available:
case CodeCompletion::Deprecated:
return m_icons.iconForType(Icons::VarPublicIconType);
default:
return m_icons.iconForType(Icons::VarPrivateIconType);
}
case CodeCompletion::KeywordCompletionKind:
return m_icons.iconForType(Icons::KeywordIconType);
case CodeCompletion::ClangSnippetKind:
return snippetIcon;
case CodeCompletion::Other:
return m_icons.iconForType(Icons::UnknownIconType);
}
return QIcon();
}
QString ClangAssistProposalItem::detail() const
{
QString detail = CompletionChunksToTextConverter::convertToToolTipWithHtml(m_codeCompletion.chunks());
if (!m_codeCompletion.briefComment().isEmpty())
detail += QStringLiteral("\n\n") + m_codeCompletion.briefComment().toString();
return detail;
}
bool ClangAssistProposalItem::isSnippet() const
{
return false;
}
bool ClangAssistProposalItem::isValid() const
{
return true;
}
quint64 ClangAssistProposalItem::hash() const
{
return 0;
}
void ClangAssistProposalItem::keepCompletionOperator(unsigned compOp)
{
m_completionOperator = compOp;