forked from qt-creator/qt-creator
GlslEditor: Simplify completion proposal setup
Change-Id: I6d103eb6471687b1fe18e88a9f2cca375eeed6cd Reviewed-by: Christian Stenger <christian.stenger@digia.com>
This commit is contained in:
@@ -242,6 +242,15 @@ GlslCompletionAssistProcessor::GlslCompletionAssistProcessor()
|
|||||||
GlslCompletionAssistProcessor::~GlslCompletionAssistProcessor()
|
GlslCompletionAssistProcessor::~GlslCompletionAssistProcessor()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
static AssistProposalItem *createCompletionItem(const QString &text, const QIcon &icon, int order = 0)
|
||||||
|
{
|
||||||
|
AssistProposalItem *item = new AssistProposalItem;
|
||||||
|
item->setText(text);
|
||||||
|
item->setIcon(icon);
|
||||||
|
item->setOrder(order);
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
IAssistProposal *GlslCompletionAssistProcessor::perform(const AssistInterface *interface)
|
IAssistProposal *GlslCompletionAssistProcessor::perform(const AssistInterface *interface)
|
||||||
{
|
{
|
||||||
m_interface.reset(static_cast<const GlslCompletionAssistInterface *>(interface));
|
m_interface.reset(static_cast<const GlslCompletionAssistInterface *>(interface));
|
||||||
@@ -259,6 +268,7 @@ IAssistProposal *GlslCompletionAssistProcessor::perform(const AssistInterface *i
|
|||||||
|
|
||||||
QList<GLSL::Symbol *> members;
|
QList<GLSL::Symbol *> members;
|
||||||
QStringList specialMembers;
|
QStringList specialMembers;
|
||||||
|
QList<TextEditor::AssistProposalItem *> m_completions;
|
||||||
|
|
||||||
bool functionCall = (ch == QLatin1Char('(') && pos == m_interface->position() - 1);
|
bool functionCall = (ch == QLatin1Char('(') && pos == m_interface->position() - 1);
|
||||||
|
|
||||||
@@ -379,9 +389,9 @@ IAssistProposal *GlslCompletionAssistProcessor::perform(const AssistInterface *i
|
|||||||
0
|
0
|
||||||
};
|
};
|
||||||
for (int index = 0; attributeNames[index]; ++index)
|
for (int index = 0; attributeNames[index]; ++index)
|
||||||
addCompletion(QString::fromLatin1(attributeNames[index]), m_attributeIcon);
|
m_completions << createCompletionItem(QString::fromLatin1(attributeNames[index]), m_attributeIcon);
|
||||||
for (int index = 0; uniformNames[index]; ++index)
|
for (int index = 0; uniformNames[index]; ++index)
|
||||||
addCompletion(QString::fromLatin1(uniformNames[index]), m_uniformIcon);
|
m_completions << createCompletionItem(QString::fromLatin1(uniformNames[index]), m_uniformIcon);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -389,7 +399,7 @@ IAssistProposal *GlslCompletionAssistProcessor::perform(const AssistInterface *i
|
|||||||
QStringList keywords = GLSL::Lexer::keywords(languageVariant(m_interface->mimeType()));
|
QStringList keywords = GLSL::Lexer::keywords(languageVariant(m_interface->mimeType()));
|
||||||
// m_keywordCompletions.clear();
|
// m_keywordCompletions.clear();
|
||||||
for (int index = 0; index < keywords.size(); ++index)
|
for (int index = 0; index < keywords.size(); ++index)
|
||||||
addCompletion(keywords.at(index), m_keywordIcon);
|
m_completions << createCompletionItem(keywords.at(index), m_keywordIcon);
|
||||||
// m_keywordVariant = languageVariant(m_interface->mimeType());
|
// m_keywordVariant = languageVariant(m_interface->mimeType());
|
||||||
// }
|
// }
|
||||||
|
|
||||||
@@ -421,9 +431,9 @@ IAssistProposal *GlslCompletionAssistProcessor::perform(const AssistInterface *i
|
|||||||
icon = m_otherIcon;
|
icon = m_otherIcon;
|
||||||
}
|
}
|
||||||
if (specialMembers.contains(s->name()))
|
if (specialMembers.contains(s->name()))
|
||||||
addCompletion(s->name(), icon, SpecialMemberOrder);
|
m_completions << createCompletionItem(s->name(), icon, SpecialMemberOrder);
|
||||||
else
|
else
|
||||||
addCompletion(s->name(), icon);
|
m_completions << createCompletionItem(s->name(), icon);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_startPosition = pos + 1;
|
m_startPosition = pos + 1;
|
||||||
@@ -469,17 +479,6 @@ bool GlslCompletionAssistProcessor::acceptsIdleEditor() const
|
|||||||
return isActivationChar(ch);
|
return isActivationChar(ch);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GlslCompletionAssistProcessor::addCompletion(const QString &text,
|
|
||||||
const QIcon &icon,
|
|
||||||
int order)
|
|
||||||
{
|
|
||||||
AssistProposalItem *item = new AssistProposalItem;
|
|
||||||
item->setText(text);
|
|
||||||
item->setIcon(icon);
|
|
||||||
item->setOrder(order);
|
|
||||||
m_completions.append(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
// GlslCompletionAssistInterface
|
// GlslCompletionAssistInterface
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
|
|||||||
@@ -109,11 +109,9 @@ public:
|
|||||||
private:
|
private:
|
||||||
TextEditor::IAssistProposal *createHintProposal(const QVector<GLSL::Function *> &symbols);
|
TextEditor::IAssistProposal *createHintProposal(const QVector<GLSL::Function *> &symbols);
|
||||||
bool acceptsIdleEditor() const;
|
bool acceptsIdleEditor() const;
|
||||||
void addCompletion(const QString &text, const QIcon &icon, int order = 0);
|
|
||||||
|
|
||||||
int m_startPosition;
|
int m_startPosition;
|
||||||
QScopedPointer<const GlslCompletionAssistInterface> m_interface;
|
QScopedPointer<const GlslCompletionAssistInterface> m_interface;
|
||||||
QList<TextEditor::AssistProposalItem *> m_completions;
|
|
||||||
|
|
||||||
QIcon m_keywordIcon;
|
QIcon m_keywordIcon;
|
||||||
QIcon m_varIcon;
|
QIcon m_varIcon;
|
||||||
|
|||||||
Reference in New Issue
Block a user