From 29b304e7d0095f9dc86a28e5e8bd7a41420d948b Mon Sep 17 00:00:00 2001
From: Roberto Raggi <roberto.raggi@nokia.com>
Date: Wed, 8 Sep 2010 14:21:19 +0200
Subject: [PATCH] Skip uninteresting symbols.

---
 src/plugins/cpptools/searchsymbols.cpp | 85 ++++++++++++++++++++++++++
 src/plugins/cpptools/searchsymbols.h   | 30 +++++++--
 2 files changed, 110 insertions(+), 5 deletions(-)

diff --git a/src/plugins/cpptools/searchsymbols.cpp b/src/plugins/cpptools/searchsymbols.cpp
index 7ce03de8307..6e89abac82d 100644
--- a/src/plugins/cpptools/searchsymbols.cpp
+++ b/src/plugins/cpptools/searchsymbols.cpp
@@ -169,6 +169,91 @@ bool SearchSymbols::visit(Class *symbol)
     return false;
 }
 
+bool SearchSymbols::visit(CPlusPlus::UsingNamespaceDirective *)
+{
+    return false;
+}
+
+bool SearchSymbols::visit(CPlusPlus::UsingDeclaration *)
+{
+    return false;
+}
+
+bool SearchSymbols::visit(CPlusPlus::NamespaceAlias *)
+{
+    return false;
+}
+
+bool SearchSymbols::visit(CPlusPlus::Argument *)
+{
+    return false;
+}
+
+bool SearchSymbols::visit(CPlusPlus::TypenameArgument *)
+{
+    return false;
+}
+
+bool SearchSymbols::visit(CPlusPlus::BaseClass *)
+{
+    return false;
+}
+
+bool SearchSymbols::visit(CPlusPlus::Template *)
+{
+    return true;
+}
+
+bool SearchSymbols::visit(CPlusPlus::Block *)
+{
+    return false;
+}
+
+bool SearchSymbols::visit(CPlusPlus::ForwardClassDeclaration *)
+{
+    return false;
+}
+
+bool SearchSymbols::visit(CPlusPlus::ObjCBaseClass *)
+{
+    return false;
+}
+
+bool SearchSymbols::visit(CPlusPlus::ObjCBaseProtocol *)
+{
+    return false;
+}
+
+bool SearchSymbols::visit(CPlusPlus::ObjCClass *)
+{
+    return false;
+}
+
+bool SearchSymbols::visit(CPlusPlus::ObjCForwardClassDeclaration *)
+{
+    return false;
+}
+
+bool SearchSymbols::visit(CPlusPlus::ObjCProtocol *)
+{
+    return false;
+}
+
+bool SearchSymbols::visit(CPlusPlus::ObjCForwardProtocolDeclaration *)
+{
+    return false;
+}
+
+bool SearchSymbols::visit(CPlusPlus::ObjCMethod *)
+{
+    return false;
+}
+
+bool SearchSymbols::visit(CPlusPlus::ObjCPropertyDeclaration *)
+{
+    return false;
+}
+
 QString SearchSymbols::scopedSymbolName(const QString &symbolName) const
 {
     QString name = _scope;
diff --git a/src/plugins/cpptools/searchsymbols.h b/src/plugins/cpptools/searchsymbols.h
index 5b61fe783ba..db2c7ad16d5 100644
--- a/src/plugins/cpptools/searchsymbols.h
+++ b/src/plugins/cpptools/searchsymbols.h
@@ -128,11 +128,31 @@ protected:
     { CPlusPlus::Symbol::visitSymbol(symbol, this); }
 
     QString switchScope(const QString &scope);
-    virtual bool visit(CPlusPlus::Enum *symbol);
-    virtual bool visit(CPlusPlus::Function *symbol);
-    virtual bool visit(CPlusPlus::Namespace *symbol);
-    virtual bool visit(CPlusPlus::Declaration *symbol);
-    virtual bool visit(CPlusPlus::Class *symbol);
+
+    virtual bool visit(CPlusPlus::UsingNamespaceDirective *);
+    virtual bool visit(CPlusPlus::UsingDeclaration *);
+    virtual bool visit(CPlusPlus::NamespaceAlias *);
+    virtual bool visit(CPlusPlus::Declaration *);
+    virtual bool visit(CPlusPlus::Argument *);
+    virtual bool visit(CPlusPlus::TypenameArgument *);
+    virtual bool visit(CPlusPlus::BaseClass *);
+    virtual bool visit(CPlusPlus::Enum *);
+    virtual bool visit(CPlusPlus::Function *);
+    virtual bool visit(CPlusPlus::Namespace *);
+    virtual bool visit(CPlusPlus::Template *);
+    virtual bool visit(CPlusPlus::Class *);
+    virtual bool visit(CPlusPlus::Block *);
+    virtual bool visit(CPlusPlus::ForwardClassDeclaration *);
+
+    // Objective-C
+    virtual bool visit(CPlusPlus::ObjCBaseClass *);
+    virtual bool visit(CPlusPlus::ObjCBaseProtocol *);
+    virtual bool visit(CPlusPlus::ObjCClass *);
+    virtual bool visit(CPlusPlus::ObjCForwardClassDeclaration *);
+    virtual bool visit(CPlusPlus::ObjCProtocol *);
+    virtual bool visit(CPlusPlus::ObjCForwardProtocolDeclaration *);
+    virtual bool visit(CPlusPlus::ObjCMethod *);
+    virtual bool visit(CPlusPlus::ObjCPropertyDeclaration *);
 
     QString scopedSymbolName(const QString &symbolName) const;
     QString scopedSymbolName(const CPlusPlus::Symbol *symbol) const;
-- 
GitLab