void ExecuteMessage()
        {
            if (String.IsNullOrEmpty(message))
            {
                return;
            }

            string[]      lines = message.Split('\n');
            string        line;
            int           maxLineWidth = Console.WindowWidth;
            StringBuilder sb           = new StringBuilder();

            foreach (string l in lines)
            {
                if (l.Length == 0)
                {
                    sb.Append("\n");
                    continue;
                }

                line = l.Trim();
                if (line.Length > maxLineWidth)
                {
                    sb.AppendFormat("{0}\n", Helpers.BreakLongLine(line, String.Empty, maxLineWidth));
                }
                else
                {
                    sb.AppendFormat("{0}{1}\n", String.Empty, line);
                }
            }
            Console.WriteLine(sb.ToString());
        }
        string FormatFeatureDescription(string name, FeatureNode fn)
        {
            if (fn == null)
            {
                return(null);
            }

            List <FeatureBlock> lfb = fn.Blocks;

            if (lfb == null || lfb.Count == 0)
            {
                return(null);
            }

            StringBuilder ret = new StringBuilder();

            ret.AppendFormat("{0} (Target: {1})", name, lfb [0].Target);

            List <FeatureAction> al = fn.ActionsBefore;

            if (al != null && al.Count > 0)
            {
                ret.AppendFormat("; {0} actions before", al.Count);
            }

            al = fn.ActionsAfter;
            if (al != null && al.Count > 0)
            {
                ret.AppendFormat("; {0} actions after", al.Count);
            }

            ret.Append("\n");

            string desc = fn.Description;

            if (String.IsNullOrEmpty(desc))
            {
                return(ret.ToString());
            }

            string indent       = "     ";
            int    maxLineWidth = Console.WindowWidth - indent.Length;

            string[] dlines = desc.Trim().Split('\n');
            string   line;

            foreach (string l in dlines)
            {
                if (l.Length == 0)
                {
                    ret.Append("\n");
                    continue;
                }

                line = l.Trim();
                if (line.Length > maxLineWidth)
                {
                    ret.AppendFormat("{0}\n", Helpers.BreakLongLine(line, indent, maxLineWidth));
                }
                else
                {
                    ret.AppendFormat("{0}{1}\n", indent, line);
                }
            }

            ret.Append("\n");
            return(ret.ToString());
        }