Merge branch '1.0.0' of git@scm.dev.nokia.troll.no:creator/mainline

This commit is contained in:
Roberto Raggi
2009-02-17 11:52:56 +01:00
3 changed files with 37 additions and 20 deletions

View File

@@ -829,30 +829,42 @@ void CppCodeCompletion::addKeywords()
void CppCodeCompletion::addMacros(const LookupContext &context)
{
// macro completion items.
QSet<QByteArray> macroNames;
QSet<QString> processed;
QList<QString> todo;
todo.append(context.thisDocument()->fileName());
while (! todo.isEmpty()) {
QString fn = todo.last();
todo.removeLast();
if (processed.contains(fn))
continue;
processed.insert(fn);
if (Document::Ptr doc = context.document(fn)) {
foreach (const Macro &macro, doc->definedMacros()) {
macroNames.insert(macro.name());
}
todo += doc->includedFiles();
QSet<QString> definedMacros;
addMacros_helper(context, context.thisDocument()->fileName(),
&processed, &definedMacros);
foreach (const QString &macroName, definedMacros) {
TextEditor::CompletionItem item(this);
item.m_text = macroName;
item.m_icon = m_icons.macroIcon();
m_completions.append(item);
}
}
foreach (const QByteArray &macroName, macroNames) {
TextEditor::CompletionItem item(this);
item.m_text = QString::fromUtf8(macroName.constData(), macroName.length());
item.m_icon = m_icons.macroIcon();
m_completions.append(item);
void CppCodeCompletion::addMacros_helper(const LookupContext &context,
const QString &fileName,
QSet<QString> *processed,
QSet<QString> *definedMacros)
{
Document::Ptr doc = context.document(fileName);
if (! doc || processed->contains(doc->fileName()))
return;
processed->insert(doc->fileName());
foreach (const Document::Include &i, doc->includes()) {
addMacros_helper(context, i.fileName(), processed, definedMacros);
}
foreach (const Macro &macro, doc->definedMacros()) {
const QString macroName = QString::fromUtf8(macro.name().constData(), macro.name().length());
if (! macro.isHidden())
definedMacros->insert(macroName);
else
definedMacros->remove(macroName);
}
}

View File

@@ -84,6 +84,10 @@ public:
private:
void addKeywords();
void addMacros(const CPlusPlus::LookupContext &context);
void addMacros_helper(const CPlusPlus::LookupContext &context,
const QString &fileName,
QSet<QString> *processed,
QSet<QString> *definedMacros);
void addCompletionItem(CPlusPlus::Symbol *symbol);
bool completeConstructorOrFunction(CPlusPlus::FullySpecifiedType exprTy,

View File

@@ -388,8 +388,9 @@ bool CheckSpecifier::visit(TypeofSpecifierAST *ast)
return false;
}
bool CheckSpecifier::visit(AttributeSpecifierAST *)
bool CheckSpecifier::visit(AttributeSpecifierAST *ast)
{
accept(ast->next);
return false;
}