Exemplo n.º 1
0
        public ColorString Append(ISupportColor other)
        {
            if (null == other)
            {
                return(this);
            }

            Append(other.ToColorString());
            return(this);
        }
Exemplo n.º 2
0
        protected StringBuilder ObjectToMarkedUpString(object obj, ColorString formatString, StringBuilder sb)
        {
            if (null == sb)
            {
                sb = new StringBuilder();
            }

            if (null == obj)
            {
                //return sb;
                return(sb.Append("$null"));
            }

            PSObject pso = obj as PSObject;

            if (null != pso)
            {
                // Check if there is a custom .ToString() method attached to this
                // PSObject. (which is used, for instance, for displaying enum values)

                var toStringMethods = Util.TryGetCustomToStringMethod(pso);

                if (null != toStringMethods)
                {
                    // TODO: check overloads/signature?
                    obj = toStringMethods.Invoke();
                    if (obj is string)
                    {
                        return(sb.Append((string)obj));
                    }
                    else
                    {
                        LogManager.Trace("Interesting... a custom .ToString() method returned something besides a string.");
                    }
                }
                else
                {
                    obj = pso.BaseObject;
                }
            }

            ColorString cs = obj as ColorString;

            if (null != cs)
            {
                sb.Append(cs.ToString(DbgProvider.HostSupportsColor));
            }
            else
            {
                ISupportColor isc = obj as ISupportColor;
                if (null != isc)
                {
                    sb.Append(isc.ToColorString().ToString(DbgProvider.HostSupportsColor));
                }
                else
                {
                    string renderedFormatString = null;
                    if (null != formatString)
                    {
                        renderedFormatString = formatString.ToString(DbgProvider.HostSupportsColor);
                    }

                    if (!String.IsNullOrEmpty(renderedFormatString))
                    {
                        sb.Append(Util.CcSprintf(renderedFormatString, obj));
                    }
                    else
                    {
                        // TODO: Or should it be pso.ToString here?
                        sb.Append(obj.ToString());
                    }
                }
            }
            return(sb);
        } // end ObjectToMarkedUpString()
Exemplo n.º 3
0
        protected StringBuilder ObjectToMarkedUpString(object obj, ColorString formatString, StringBuilder sb)
        {
            if (null == sb)
            {
                sb = new StringBuilder();
            }

            if (null == obj)
            {
                // We used to return sb.Append( "$null" ); however I'm changing to append
                // nothing in order to match the behavior of FormatSingleLineDirect (which
                // is what is applied to obj if there is no formatString, which yields an
                // empty string, so when we come through here, obj is an empty string, not
                // null).
                return(sb);
            }

            PSObject pso = obj as PSObject;

            if (null != pso)
            {
                // Check if there is a custom .ToString() method attached to this
                // PSObject. (which is used, for instance, for displaying enum values)

                var toStringMethods = Util.TryGetCustomToStringMethod(pso);

                if (null != toStringMethods)
                {
                    // TODO: check overloads/signature?
                    obj = toStringMethods.Invoke();
                    if (obj is string)
                    {
                        return(sb.Append((string)obj));
                    }
                    else
                    {
                        LogManager.Trace("Interesting... a custom .ToString() method returned something besides a string.");
                    }
                }
                else
                {
                    obj = pso.BaseObject;
                }
            }

            ColorString cs = obj as ColorString;

            if (null != cs)
            {
                sb.Append(cs.ToString(DbgProvider.HostSupportsColor));
            }
            else
            {
                ISupportColor isc = obj as ISupportColor;
                if (null != isc)
                {
                    sb.Append(isc.ToColorString().ToString(DbgProvider.HostSupportsColor));
                }
                else
                {
                    string renderedFormatString = null;
                    if (null != formatString)
                    {
                        renderedFormatString = formatString.ToString(DbgProvider.HostSupportsColor);
                    }

                    if (!String.IsNullOrEmpty(renderedFormatString))
                    {
                        sb.Append(Util.CcSprintf(renderedFormatString, obj));
                    }
                    else
                    {
                        // TODO: Or should it be pso.ToString here?
                        sb.Append(obj.ToString());
                    }
                }
            }
            return(sb);
        } // end ObjectToMarkedUpString()