public List <TextLine> GetOutput() { var output = new List <TextLine> { new TextLine(string.IsNullOrEmpty(m_textHandler.Text) ? ("Version: " + OpenRepoVersionService.GetCurrentVersion()) : m_textHandler.Text, ConsoleColor.White) }; if (!string.IsNullOrEmpty(LogService.Message)) { output.Add(new TextLine(string.Empty, ConsoleColor.Red)); output.Add(new TextLine(LogService.Message, ConsoleColor.Red)); output.Add(new TextLine(string.Empty, ConsoleColor.Red)); } if (m_currentItems.Count > 0) { var tempTraverser = new IndexTraverser(m_traverser.Current, m_currentItems.Count); var visibleItems = new List <SelectableItem>(); var max = m_currentItems.Count > 11 ? 11 : m_currentItems.Count; var selected = max / 3; for (var i = 0; i < selected; i++) { tempTraverser.MovePrevious(); } for (var i = 0; i < max; i++) { visibleItems.Add(m_currentItems[tempTraverser.Current]); tempTraverser.MoveNext(); } for (var i = 0; i < visibleItems.Count; i++) { var item = visibleItems[i]; if (i == selected) { output.Add(new TextLine($"> {item.Title}", ConsoleColor.Gray)); } else { output.Add(new TextLine($" {item.Title}", ConsoleColor.Gray)); } } } return(output); }
public Task <ConcurrentBag <SelectableItem> > GetItems() { return(Task.FromResult(new ConcurrentBag <SelectableItem> { new SelectableItem("OpenRepo - Edit config", () => new SelectableAction[] { new SelectableAction("Edit", () => StartProgramService.StartProgram(ConfigurationService.ConfigurationPath)) }), new SelectableItem("OpenRepo - Create issue", () => new SelectableAction[] { new SelectableAction("Open", () => StartProgramService.StartProgram("https://github.com/Illedan/openrepo/issues/new?title=Unhandled+Exception+in+Version:+" + OpenRepoVersionService.GetCurrentVersion() + "&body=" + HttpUtility.UrlEncode(LogService.Message))) }), new SelectableItem("OpenRepo - Update", () => new SelectableAction[] { new SelectableAction("Open", () => TerminalService.Instance.Term("dotnet tool update openrepo -g", ToolBox.Bridge.Output.Hidden)) }), })); }