SmartPointerEntity(NatvisExpressionEvaluator evaluator, NatvisDiagnosticLogger logger,
                    IVariableInformation variable, SmartPointerType smartPointerItem,
                    NatvisScope natvisScope, IChildAdapter fallbackAdapter)
 {
     _evaluator        = evaluator;
     _logger           = logger;
     _variable         = variable;
     _smartPointerItem = smartPointerItem;
     _natvisScope      = natvisScope;
     _fallbackAdapter  = fallbackAdapter;
 }
Esempio n. 2
0
        public SmartPointerStringElement(SmartPointerType smartPointer)
        {
            if (smartPointer == null)
            {
                throw new ArgumentNullException(nameof(smartPointer));
            }

            if (string.IsNullOrWhiteSpace(smartPointer.Value))
            {
                throw new ArgumentException(nameof(smartPointer.Value));
            }

            _smartPointer = smartPointer;
        }
Esempio n. 3
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());
        }
Esempio n. 4
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());
        }
 public SmartPointerEntity Create(IVariableInformation variable,
                                  SmartPointerType smartPointerItem,
                                  NatvisScope natvisScope,
                                  IChildAdapter fallbackAdapter) =>
 new SmartPointerEntity(_evaluator, _logger, variable, smartPointerItem, natvisScope,
                        fallbackAdapter);