@@ -6,6 +6,9 @@ namespace EtcdTerminal.App.Engine;
66public static class Menu
77{
88 private const string _arrow = " ❯ " ;
9+ private const string _emptyIndent = " " ;
10+ private const string _navHint = "(\u2191 /\u2193 navigate, Enter confirm, Esc back)" ;
11+ private const string _clearAnsi = "\x1b [J" ;
912
1013 public static string ? Show ( string title , IEnumerable < string > choices , Func < string , string > ? displayConverter = null )
1114 {
@@ -34,7 +37,7 @@ public static class Menu
3437
3538 for ( var i = 0 ; i < items . Count ; i ++ )
3639 {
37- Console . Write ( i == 0 ? _arrow : " " ) ;
40+ Console . Write ( i == 0 ? _arrow : _emptyIndent ) ;
3841
3942 if ( i == 0 )
4043 Console . ForegroundColor = ConsoleColor . Yellow ;
@@ -49,7 +52,7 @@ public static class Menu
4952
5053 Console . WriteLine ( ) ;
5154 Console . ForegroundColor = ConsoleColor . DarkGray ;
52- Console . Write ( "( \u2191 / \u2193 navigate, Enter confirm, Esc back)" ) ;
55+ Console . Write ( _navHint ) ;
5356 Console . ResetColor ( ) ;
5457
5558 while ( true )
@@ -62,12 +65,12 @@ public static class Menu
6265 case ConsoleKey . Escape :
6366 Console . CursorTop = menuStart ;
6467 Console . CursorLeft = 0 ;
65- Console . Write ( " \x1b [J" ) ;
68+ Console . Write ( _clearAnsi ) ;
6669 return null ;
6770 case ConsoleKey . Enter :
6871 Console . CursorTop = menuStart ;
6972 Console . CursorLeft = 0 ;
70- Console . Write ( " \x1b [J" ) ;
73+ Console . Write ( _clearAnsi ) ;
7174 return items [ index ] ;
7275 case ConsoleKey . UpArrow :
7376 index = ( index - 1 + items . Count ) % items . Count ;
@@ -81,7 +84,7 @@ public static class Menu
8184
8285 Console . CursorTop = firstItemTop + oldIndex ;
8386 Console . CursorLeft = 0 ;
84- Console . Write ( " " ) ;
87+ Console . Write ( _emptyIndent ) ;
8588
8689 WriteTruncated ( plain [ oldIndex ] ) ;
8790
0 commit comments