Class HideInFilterWindowAttribute
Marker attribute that instructs editor filter windows and type-selection UI to exclude the decorated type from the list of selectable options.
Inherited Members
Namespace: Scylla.Core.Attributes
Assembly: ScyllaCore.dll
Syntax
[AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Interface, Inherited = false)]
public sealed class HideInFilterWindowAttribute : Attribute
Remarks
Scylla editor tools that let users browse or select types (for example, component pickers or type-filter dropdowns) enumerate all types in the assemblies they scan. Not every discovered type is suitable for direct user selection - abstract base classes, internal helper types, and framework-internal implementations should generally remain invisible to end users to avoid confusion or mis-use.
Applying HideInFilterWindowAttribute signals those tools to skip the decorated type during enumeration. The type continues to exist and function normally at runtime; only its visibility in editor selection UI is affected.
This is a pure marker attribute: it carries no data and has no configurable
properties. Its presence alone is the signal - check for it via
Type.IsDefined(typeof(HideInFilterWindowAttribute), false) or
Type.GetCustomAttribute<HideInFilterWindowAttribute>().
The attribute is non-inherited (Inherited = false), meaning a subclass
of a hidden base type is not automatically hidden. If a concrete
subclass should also be excluded from the selection UI, it must apply
HideInFilterWindowAttribute explicitly.
Common use cases include:
- Abstract base classes that cannot be instantiated directly.
- Internal framework helper types not intended for external configuration.
- Deprecated types kept for serialization compatibility but no longer relevant for new configurations.
Hiding an internal utility class from the type selection UI:
[HideInFilterWindow]
internal class InternalUtilityClass
{
/* Not shown in any editor type-picker. */
}
Hiding an abstract base class so only concrete subclasses are selectable:
[HideInFilterWindow]
public abstract class BaseEntity
{
/* Concrete subclasses are visible unless they also carry this attribute. */
}
Checking for the attribute via reflection in a custom tool:
bool shouldHide = type.IsDefined(typeof(HideInFilterWindowAttribute), inherit: false);