void ShowHelp(bool showSecondLevelHelp) { _assemblyInfo.ShowTitleLines(); WriteLine(Usage); WriteLine(_("Options:")); var lines = new ArrayList(_list.Count); int tabSize = 0; foreach (OptionDetails option in _list) { if (option.SecondLevelHelp == showSecondLevelHelp) { string[] optionLines = option.ToString().Split('\n'); foreach (string line in optionLines) { int pos = line.IndexOf('\t'); if (pos > tabSize) { tabSize = pos; } lines.Add(line); } } } tabSize += 2; foreach (string line in lines) { string[] parts = line.Split('\t'); Write(parts[0].PadRight(tabSize)); WriteLine(parts[1]); if (parts.Length > 2) { var spacer = new string(' ', tabSize); for (int i = 2; i < parts.Length; i++) { Write(spacer); WriteLine(parts[i]); } } } _assemblyInfo.ShowFooter(); }