forked from qt-creator/qt-creator
Clang: ClangAssistProposalItem is now inheriting AssistProposalItemInterface
Change-Id: I781ba27659e852782292596fe590666b09d7253e Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user