Exemple #1
0
        private IReadOnlyList <OptionGroup> GroupOptions(IEnumerable <Option> options)
        {
            Contract.Ensures(Contract.Result <IList <OptionGroup> >() != null);

            var groups  = new OrderedDictionary <string, OptionGroup>();
            var helpMap = new Dictionary <Option, OptionHelp>();

            foreach (var opt in options)
            {
                if (opt.Kind == OptionKind.Group)
                {
                    continue;
                }

                int flags = opt.Flags;
                if (Settings.FlagsToInclude != 0 && (flags & Settings.FlagsToInclude) == 0)
                {
                    continue;
                }
                if ((flags & Settings.FlagsToExclude) != 0)
                {
                    continue;
                }

                // Ignore options without help text or which are aliases of an
                // option without help text.
                Option mainOpt;
                if (opt.HelpText != null)
                {
                    mainOpt = opt;
                }
                else if ((mainOpt = opt.Alias) != null && mainOpt.HelpText != null)
                {
                    // Empty
                }
                else
                {
                    continue;
                }

                string title = GetGroupTitle(mainOpt) ?? Settings.DefaultHelpGroup;
                if (!groups.ContainsKey(title))
                {
                    groups.Add(title, new OptionGroup(title));
                }

                string name = opt.GetHelpName(Settings.DefaultMetaVar);
                if (!helpMap.TryGetValue(mainOpt, out OptionHelp help))
                {
                    helpMap[mainOpt] = help = new OptionHelp(name, mainOpt.HelpText);
                    groups[title].Add(help);
                }
                else
                {
                    help.AddVariant(name);
                }
            }

            return(groups.Values);
        }
Exemple #2
0
 public string Help()
 {
     OptionHelp help = new OptionHelp();
     foreach (Option opt in iOptions)
     {
         opt.AppendHelp(help);
     }
     return iUsage + "\n" + help;
 }
Exemple #3
0
        public string Help()
        {
            OptionHelp help = new OptionHelp();

            foreach (Option opt in iOptions)
            {
                opt.AppendHelp(help);
            }
            return(iUsage + "\n" + help.ToString());
        }
Exemple #4
0
 public override void AppendHelp(OptionHelp aHelp)
 {
     aHelp.Append(iShortName, iLongName, iHelpDesc, iHelpMetaVar);
 }
Exemple #5
0
 public abstract void AppendHelp(OptionHelp aHelp);
Exemple #6
0
 public override void AppendHelp(OptionHelp aHelp)
 {
     aHelp.Append(iShortName, iLongName, iHelpDesc, iHelpMetaVar);
 }
Exemple #7
0
 public abstract void AppendHelp(OptionHelp aHelp);