diff --git a/core/org.eclipse.cdt.ui/plugin.properties b/core/org.eclipse.cdt.ui/plugin.properties index 356cea095b7..191ab498eb4 100644 --- a/core/org.eclipse.cdt.ui/plugin.properties +++ b/core/org.eclipse.cdt.ui/plugin.properties @@ -334,6 +334,10 @@ HideUsingDirective.description= Hides using directives HideMacroDirective.label= Macro directive HideMacroDirective.description= Hides Macro directives +HideAnonymousStruct.label= Anonymous structs and enums +HideAnonymousStruct.navigator.label= C/C++ anonymous structs and enums +HideAnonymousStruct.description= Hides all anonymous structs and enums + ForwardDeclarationFilter.label= Forward declaration ForwardDeclarationFilter.description= Hides forward declarations, unless found in a header file. diff --git a/core/org.eclipse.cdt.ui/plugin.xml b/core/org.eclipse.cdt.ui/plugin.xml index 1a725d0292a..5862843fc1a 100644 --- a/core/org.eclipse.cdt.ui/plugin.xml +++ b/core/org.eclipse.cdt.ui/plugin.xml @@ -135,6 +135,14 @@ class="org.eclipse.cdt.internal.ui.filters.NonCElementFilter" id="org.eclipse.cdt.internal.ui.CView.NonCElementFilter"> + + + + + diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/filters/AnonymousStructFilter.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/filters/AnonymousStructFilter.java new file mode 100644 index 00000000000..b2d9ddc8df2 --- /dev/null +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/filters/AnonymousStructFilter.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright (c) 2011, 2011 Andrew Gvozdev and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Andrew Gvozdev - initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.internal.ui.filters; + +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.jface.viewers.ViewerFilter; + +import org.eclipse.cdt.internal.core.model.CElement; +import org.eclipse.cdt.internal.core.model.Enumeration; +import org.eclipse.cdt.internal.core.model.Structure; + +/** + * Filters out anonymous structs and enums. + */ +public class AnonymousStructFilter extends ViewerFilter { + /** + * Returns the result of this filter, when applied to the + * given inputs. + * + * @return Returns true if element should be included in filtered set + */ + @Override + public boolean select(Viewer viewer, Object parent, Object element) { + if (element instanceof Structure || element instanceof Enumeration) { + return !((CElement) element).getElementName().isEmpty(); + } + return true; + } +} \ No newline at end of file