コード例 #1
0
		protected virtual void OnFormatOptionHelpText(FormatOptionHelpTextEventArgs e)
		{
			EventHandler<FormatOptionHelpTextEventArgs> handler = FormatOptionHelpText;

			if (handler != null)
				handler(this, e);
		}
コード例 #2
0
		private void AddOption(string requiredWord, int maxLength, BaseOptionAttribute option, int widthOfHelpText)
		{
			_optionsHelp.Append("  ");
			StringBuilder optionName = new StringBuilder(maxLength);
			if (option.HasShortName)
			{
				if (_addDashesToOption)
				{
					optionName.Append('-');
				}

				optionName.AppendFormat("{0}", option.ShortName);

				if (option.HasLongName)
				{
					optionName.Append(", ");
				}
			}

			if (option.HasLongName)
			{
				if (_addDashesToOption)
				{
					optionName.Append("--");
				}

				optionName.AppendFormat("{0}", option.LongName);
			}

			if (optionName.Length < maxLength)
			{
				_optionsHelp.Append(optionName.ToString().PadRight(maxLength));
			}
			else
			{
				_optionsHelp.Append(optionName.ToString());
			}

			_optionsHelp.Append("    ");
			if (option.Required)
			{
				option.HelpText = String.Format("{0} ", requiredWord) + option.HelpText;
			}

			FormatOptionHelpTextEventArgs e = new FormatOptionHelpTextEventArgs(option);
			OnFormatOptionHelpText(e);
			option.HelpText = e.Option.HelpText;

			if (!string.IsNullOrEmpty(option.HelpText))
			{
				do
				{
					int wordBuffer = 0;
					var words = option.HelpText.Split(new[] { ' ' });
					for (int i = 0; i < words.Length; i++)
					{
						if (words[i].Length < (widthOfHelpText - wordBuffer))
						{
							_optionsHelp.Append(words[i]);
							wordBuffer += words[i].Length;
							if ((widthOfHelpText - wordBuffer) > 1 && i != words.Length - 1)
							{
								_optionsHelp.Append(" ");
								wordBuffer++;
							}
						}
						else if (words[i].Length >= widthOfHelpText && wordBuffer == 0)
						{
							_optionsHelp.Append(words[i].Substring(
								0,
								widthOfHelpText
							));
							wordBuffer = widthOfHelpText;
							break;
						}
						else
						{
							break;
						}
					}
					option.HelpText = option.HelpText.Substring(Math.Min(
						wordBuffer,
						option.HelpText.Length
					))
						.Trim();
					if (option.HelpText.Length > 0)
					{
						_optionsHelp.Append(Environment.NewLine);
						_optionsHelp.Append(new string(' ', maxLength + 6));
					}
				} while (option.HelpText.Length > widthOfHelpText);
			}
			_optionsHelp.Append(option.HelpText);
			_optionsHelp.Append(Environment.NewLine);
			if (_additionalNewLineAfterOption)
				_optionsHelp.Append(Environment.NewLine);
		}