Пример #1
0
        internal bool MightHaveChildren(IVariableInformation variable)
        {
            VisualizerInfo visualizer = VisualizerScanner.FindType(variable);
            ExpandType     expandType = visualizer?.GetExpandType();

            if (expandType != null)
            {
                if (expandType.Items != null && expandType.Items.Length > 0)
                {
                    return(true);
                }

                return(!expandType.HideRawView && variable.MightHaveChildren());
            }

            SmartPointerType smartPointerType = visualizer?.GetSmartPointerType();

            return(smartPointerType != null || variable.MightHaveChildren());
        }
Пример #2
0
        IChildAdapter CreateNatvisChildAdapter(VisualizerInfo visualizer,
                                               IVariableInformation variable)
        {
            ExpandType expandType = visualizer.GetExpandType();

            if (expandType != null)
            {
                return(_natvisCollectionFactory.Create(variable, expandType,
                                                       visualizer.NatvisScope));
            }

            SmartPointerType smartPointerType = visualizer.GetSmartPointerType();

            if (smartPointerType != null)
            {
                return(_smartPointerFactory.Create(
                           variable, smartPointerType, visualizer.NatvisScope, variable.GetChildAdapter()));
            }

            return(variable.GetChildAdapter());
        }