protected override void InputTemplate(OffscreenBuffer screenBuffer) { screenBuffer.WritePrompt(_message); screenBuffer.Write(_paginator.FilterTerm); if (string.IsNullOrEmpty(_paginator.FilterTerm)) { screenBuffer.Write(" Hit space to select", Prompt.ColorSchema.Answer); } var subset = _paginator.ToSubset(); foreach (var item in subset) { var value = _textSelector(item); screenBuffer.WriteLine(); if (_paginator.TryGetSelectedItem(out var selectedItem) && EqualityComparer <T> .Default.Equals(item, selectedItem)) { if (_selectedItems.Contains(item)) { screenBuffer.Write($"{Prompt.Symbols.Selector} {Prompt.Symbols.Selected} {value}", Prompt.ColorSchema.Select); } else { screenBuffer.Write($"{Prompt.Symbols.Selector} {Prompt.Symbols.NotSelect} {value}", Prompt.ColorSchema.Select); } }
protected override void InputTemplate(OffscreenBuffer screenBuffer) { screenBuffer.WritePrompt(_options.Message); screenBuffer.Write(new string('*', _inputBuffer.Length)); screenBuffer.SetCursorPosition(); }
protected override void InputTemplate(OffscreenBuffer screenBuffer) { screenBuffer.WritePrompt(_message); screenBuffer.Write(_paginator.FilterTerm); var subset = _paginator.ToSubset(); foreach (var item in subset) { var value = _valueSelector(item); screenBuffer.WriteLine(); if (_paginator.TryGetSelectedItem(out var selectedItem) && EqualityComparer <T> .Default.Equals(item, selectedItem)) { screenBuffer.Write($"{Prompt.Symbols.Selector} {value}", Prompt.ColorSchema.Select); }
protected override void InputTemplate(OffscreenBuffer screenBuffer) { screenBuffer.WritePrompt(_options.Message); if (_options.DefaultValue == null) { screenBuffer.Write("(y/n) "); } else if (_options.DefaultValue.Value) { screenBuffer.Write("(Y/n) "); } else { screenBuffer.Write("(y/N) "); } screenBuffer.SetCursorPosition(); }
protected override void InputTemplate(OffscreenBuffer screenBuffer) { screenBuffer.WritePrompt(_message); if (_defaultValue.HasValue) { screenBuffer.Write($"({_defaultValue.Value}) "); } var(left, top) = screenBuffer.GetCursorPosition(); var input = _inputBuffer.ToString(); screenBuffer.Write(input); var width = EastAsianWidth.GetWidth(input.Take(_startIndex)) + left; screenBuffer.SetCursorPosition(width % screenBuffer.BufferWidth, top + (width / screenBuffer.BufferWidth)); }