78 instantiations of AspireTerminalKey
Aspire.Hosting (77)
ApplicationModel\AspireTerminalKey.cs (77)
56public static AspireTerminalKey A => new(Hex1bKey.A, Hex1bModifiers.None, nameof(A)); 59public static AspireTerminalKey B => new(Hex1bKey.B, Hex1bModifiers.None, nameof(B)); 62public static AspireTerminalKey C => new(Hex1bKey.C, Hex1bModifiers.None, nameof(C)); 65public static AspireTerminalKey D => new(Hex1bKey.D, Hex1bModifiers.None, nameof(D)); 68public static AspireTerminalKey E => new(Hex1bKey.E, Hex1bModifiers.None, nameof(E)); 71public static AspireTerminalKey F => new(Hex1bKey.F, Hex1bModifiers.None, nameof(F)); 74public static AspireTerminalKey G => new(Hex1bKey.G, Hex1bModifiers.None, nameof(G)); 77public static AspireTerminalKey H => new(Hex1bKey.H, Hex1bModifiers.None, nameof(H)); 80public static AspireTerminalKey I => new(Hex1bKey.I, Hex1bModifiers.None, nameof(I)); 83public static AspireTerminalKey J => new(Hex1bKey.J, Hex1bModifiers.None, nameof(J)); 86public static AspireTerminalKey K => new(Hex1bKey.K, Hex1bModifiers.None, nameof(K)); 89public static AspireTerminalKey L => new(Hex1bKey.L, Hex1bModifiers.None, nameof(L)); 92public static AspireTerminalKey M => new(Hex1bKey.M, Hex1bModifiers.None, nameof(M)); 95public static AspireTerminalKey N => new(Hex1bKey.N, Hex1bModifiers.None, nameof(N)); 98public static AspireTerminalKey O => new(Hex1bKey.O, Hex1bModifiers.None, nameof(O)); 101public static AspireTerminalKey P => new(Hex1bKey.P, Hex1bModifiers.None, nameof(P)); 104public static AspireTerminalKey Q => new(Hex1bKey.Q, Hex1bModifiers.None, nameof(Q)); 107public static AspireTerminalKey R => new(Hex1bKey.R, Hex1bModifiers.None, nameof(R)); 110public static AspireTerminalKey S => new(Hex1bKey.S, Hex1bModifiers.None, nameof(S)); 113public static AspireTerminalKey T => new(Hex1bKey.T, Hex1bModifiers.None, nameof(T)); 116public static AspireTerminalKey U => new(Hex1bKey.U, Hex1bModifiers.None, nameof(U)); 119public static AspireTerminalKey V => new(Hex1bKey.V, Hex1bModifiers.None, nameof(V)); 122public static AspireTerminalKey W => new(Hex1bKey.W, Hex1bModifiers.None, nameof(W)); 125public static AspireTerminalKey X => new(Hex1bKey.X, Hex1bModifiers.None, nameof(X)); 128public static AspireTerminalKey Y => new(Hex1bKey.Y, Hex1bModifiers.None, nameof(Y)); 131public static AspireTerminalKey Z => new(Hex1bKey.Z, Hex1bModifiers.None, nameof(Z)); 134public static AspireTerminalKey D0 => new(Hex1bKey.D0, Hex1bModifiers.None, nameof(D0)); 137public static AspireTerminalKey D1 => new(Hex1bKey.D1, Hex1bModifiers.None, nameof(D1)); 140public static AspireTerminalKey D2 => new(Hex1bKey.D2, Hex1bModifiers.None, nameof(D2)); 143public static AspireTerminalKey D3 => new(Hex1bKey.D3, Hex1bModifiers.None, nameof(D3)); 146public static AspireTerminalKey D4 => new(Hex1bKey.D4, Hex1bModifiers.None, nameof(D4)); 149public static AspireTerminalKey D5 => new(Hex1bKey.D5, Hex1bModifiers.None, nameof(D5)); 152public static AspireTerminalKey D6 => new(Hex1bKey.D6, Hex1bModifiers.None, nameof(D6)); 155public static AspireTerminalKey D7 => new(Hex1bKey.D7, Hex1bModifiers.None, nameof(D7)); 158public static AspireTerminalKey D8 => new(Hex1bKey.D8, Hex1bModifiers.None, nameof(D8)); 161public static AspireTerminalKey D9 => new(Hex1bKey.D9, Hex1bModifiers.None, nameof(D9)); 164public static AspireTerminalKey F1 => new(Hex1bKey.F1, Hex1bModifiers.None, nameof(F1)); 167public static AspireTerminalKey F2 => new(Hex1bKey.F2, Hex1bModifiers.None, nameof(F2)); 170public static AspireTerminalKey F3 => new(Hex1bKey.F3, Hex1bModifiers.None, nameof(F3)); 173public static AspireTerminalKey F4 => new(Hex1bKey.F4, Hex1bModifiers.None, nameof(F4)); 176public static AspireTerminalKey F5 => new(Hex1bKey.F5, Hex1bModifiers.None, nameof(F5)); 179public static AspireTerminalKey F6 => new(Hex1bKey.F6, Hex1bModifiers.None, nameof(F6)); 182public static AspireTerminalKey F7 => new(Hex1bKey.F7, Hex1bModifiers.None, nameof(F7)); 185public static AspireTerminalKey F8 => new(Hex1bKey.F8, Hex1bModifiers.None, nameof(F8)); 188public static AspireTerminalKey F9 => new(Hex1bKey.F9, Hex1bModifiers.None, nameof(F9)); 191public static AspireTerminalKey F10 => new(Hex1bKey.F10, Hex1bModifiers.None, nameof(F10)); 194public static AspireTerminalKey F11 => new(Hex1bKey.F11, Hex1bModifiers.None, nameof(F11)); 197public static AspireTerminalKey F12 => new(Hex1bKey.F12, Hex1bModifiers.None, nameof(F12)); 200public static AspireTerminalKey Enter => new(Hex1bKey.Enter, Hex1bModifiers.None, nameof(Enter)); 203public static AspireTerminalKey Tab => new(Hex1bKey.Tab, Hex1bModifiers.None, nameof(Tab)); 206public static AspireTerminalKey Escape => new(Hex1bKey.Escape, Hex1bModifiers.None, nameof(Escape)); 209public static AspireTerminalKey Backspace => new(Hex1bKey.Backspace, Hex1bModifiers.None, nameof(Backspace)); 212public static AspireTerminalKey Delete => new(Hex1bKey.Delete, Hex1bModifiers.None, nameof(Delete)); 215public static AspireTerminalKey Insert => new(Hex1bKey.Insert, Hex1bModifiers.None, nameof(Insert)); 218public static AspireTerminalKey Space => new(Hex1bKey.Spacebar, Hex1bModifiers.None, nameof(Space)); 221public static AspireTerminalKey Up => new(Hex1bKey.UpArrow, Hex1bModifiers.None, nameof(Up)); 224public static AspireTerminalKey Down => new(Hex1bKey.DownArrow, Hex1bModifiers.None, nameof(Down)); 227public static AspireTerminalKey Left => new(Hex1bKey.LeftArrow, Hex1bModifiers.None, nameof(Left)); 230public static AspireTerminalKey Right => new(Hex1bKey.RightArrow, Hex1bModifiers.None, nameof(Right)); 233public static AspireTerminalKey Home => new(Hex1bKey.Home, Hex1bModifiers.None, nameof(Home)); 236public static AspireTerminalKey End => new(Hex1bKey.End, Hex1bModifiers.None, nameof(End)); 239public static AspireTerminalKey PageUp => new(Hex1bKey.PageUp, Hex1bModifiers.None, nameof(PageUp)); 242public static AspireTerminalKey PageDown => new(Hex1bKey.PageDown, Hex1bModifiers.None, nameof(PageDown)); 245public static AspireTerminalKey Comma => new(Hex1bKey.OemComma, Hex1bModifiers.None, nameof(Comma)); 248public static AspireTerminalKey Period => new(Hex1bKey.OemPeriod, Hex1bModifiers.None, nameof(Period)); 251public static AspireTerminalKey Minus => new(Hex1bKey.OemMinus, Hex1bModifiers.None, nameof(Minus)); 254public static AspireTerminalKey EqualsSign => new(Hex1bKey.OemPlus, Hex1bModifiers.None, nameof(EqualsSign)); 257public static AspireTerminalKey Slash => new(Hex1bKey.OemQuestion, Hex1bModifiers.None, nameof(Slash)); 260public static AspireTerminalKey Semicolon => new(Hex1bKey.Oem1, Hex1bModifiers.None, nameof(Semicolon)); 263public static AspireTerminalKey LeftBracket => new(Hex1bKey.Oem4, Hex1bModifiers.None, nameof(LeftBracket)); 266public static AspireTerminalKey Backslash => new(Hex1bKey.Oem5, Hex1bModifiers.None, nameof(Backslash)); 269public static AspireTerminalKey RightBracket => new(Hex1bKey.Oem6, Hex1bModifiers.None, nameof(RightBracket)); 272public static AspireTerminalKey Apostrophe => new(Hex1bKey.Oem7, Hex1bModifiers.None, nameof(Apostrophe)); 275public static AspireTerminalKey Backtick => new(Hex1bKey.OemTilde, Hex1bModifiers.None, nameof(Backtick)); 288return new(key.Key, key.Modifiers | Hex1bModifiers.Control, key._name!); 302return new(key.Key, key.Modifiers | Hex1bModifiers.Shift, key._name!); 316return new(key.Key, key.Modifiers | Hex1bModifiers.Alt, key._name!);
Aspire.Hosting.Tests (1)
Terminals\AspireTerminalKeyTests.cs (1)
143var second = new AspireTerminalKey();
345 references to AspireTerminalKey
Aspire.Hosting (96)
ApplicationModel\AspireTerminal.cs (5)
104/// Use the named values on <see cref="AspireTerminalKey"/> and combine them with 105/// <see cref="AspireTerminalKey.Ctrl"/>, <see cref="AspireTerminalKey.Shift"/>, and 106/// <see cref="AspireTerminalKey.Alt"/>. For example, <c>AspireTerminalKey.Ctrl(AspireTerminalKey.R)</c> 117public Task SendKeyAsync(AspireTerminalKey key, CancellationToken cancellationToken = default)
ApplicationModel\AspireTerminalKey.cs (87)
38public readonly struct AspireTerminalKey : IEquatable<AspireTerminalKey> 56public static AspireTerminalKey A => new(Hex1bKey.A, Hex1bModifiers.None, nameof(A)); 59public static AspireTerminalKey B => new(Hex1bKey.B, Hex1bModifiers.None, nameof(B)); 62public static AspireTerminalKey C => new(Hex1bKey.C, Hex1bModifiers.None, nameof(C)); 65public static AspireTerminalKey D => new(Hex1bKey.D, Hex1bModifiers.None, nameof(D)); 68public static AspireTerminalKey E => new(Hex1bKey.E, Hex1bModifiers.None, nameof(E)); 71public static AspireTerminalKey F => new(Hex1bKey.F, Hex1bModifiers.None, nameof(F)); 74public static AspireTerminalKey G => new(Hex1bKey.G, Hex1bModifiers.None, nameof(G)); 77public static AspireTerminalKey H => new(Hex1bKey.H, Hex1bModifiers.None, nameof(H)); 80public static AspireTerminalKey I => new(Hex1bKey.I, Hex1bModifiers.None, nameof(I)); 83public static AspireTerminalKey J => new(Hex1bKey.J, Hex1bModifiers.None, nameof(J)); 86public static AspireTerminalKey K => new(Hex1bKey.K, Hex1bModifiers.None, nameof(K)); 89public static AspireTerminalKey L => new(Hex1bKey.L, Hex1bModifiers.None, nameof(L)); 92public static AspireTerminalKey M => new(Hex1bKey.M, Hex1bModifiers.None, nameof(M)); 95public static AspireTerminalKey N => new(Hex1bKey.N, Hex1bModifiers.None, nameof(N)); 98public static AspireTerminalKey O => new(Hex1bKey.O, Hex1bModifiers.None, nameof(O)); 101public static AspireTerminalKey P => new(Hex1bKey.P, Hex1bModifiers.None, nameof(P)); 104public static AspireTerminalKey Q => new(Hex1bKey.Q, Hex1bModifiers.None, nameof(Q)); 107public static AspireTerminalKey R => new(Hex1bKey.R, Hex1bModifiers.None, nameof(R)); 110public static AspireTerminalKey S => new(Hex1bKey.S, Hex1bModifiers.None, nameof(S)); 113public static AspireTerminalKey T => new(Hex1bKey.T, Hex1bModifiers.None, nameof(T)); 116public static AspireTerminalKey U => new(Hex1bKey.U, Hex1bModifiers.None, nameof(U)); 119public static AspireTerminalKey V => new(Hex1bKey.V, Hex1bModifiers.None, nameof(V)); 122public static AspireTerminalKey W => new(Hex1bKey.W, Hex1bModifiers.None, nameof(W)); 125public static AspireTerminalKey X => new(Hex1bKey.X, Hex1bModifiers.None, nameof(X)); 128public static AspireTerminalKey Y => new(Hex1bKey.Y, Hex1bModifiers.None, nameof(Y)); 131public static AspireTerminalKey Z => new(Hex1bKey.Z, Hex1bModifiers.None, nameof(Z)); 134public static AspireTerminalKey D0 => new(Hex1bKey.D0, Hex1bModifiers.None, nameof(D0)); 137public static AspireTerminalKey D1 => new(Hex1bKey.D1, Hex1bModifiers.None, nameof(D1)); 140public static AspireTerminalKey D2 => new(Hex1bKey.D2, Hex1bModifiers.None, nameof(D2)); 143public static AspireTerminalKey D3 => new(Hex1bKey.D3, Hex1bModifiers.None, nameof(D3)); 146public static AspireTerminalKey D4 => new(Hex1bKey.D4, Hex1bModifiers.None, nameof(D4)); 149public static AspireTerminalKey D5 => new(Hex1bKey.D5, Hex1bModifiers.None, nameof(D5)); 152public static AspireTerminalKey D6 => new(Hex1bKey.D6, Hex1bModifiers.None, nameof(D6)); 155public static AspireTerminalKey D7 => new(Hex1bKey.D7, Hex1bModifiers.None, nameof(D7)); 158public static AspireTerminalKey D8 => new(Hex1bKey.D8, Hex1bModifiers.None, nameof(D8)); 161public static AspireTerminalKey D9 => new(Hex1bKey.D9, Hex1bModifiers.None, nameof(D9)); 164public static AspireTerminalKey F1 => new(Hex1bKey.F1, Hex1bModifiers.None, nameof(F1)); 167public static AspireTerminalKey F2 => new(Hex1bKey.F2, Hex1bModifiers.None, nameof(F2)); 170public static AspireTerminalKey F3 => new(Hex1bKey.F3, Hex1bModifiers.None, nameof(F3)); 173public static AspireTerminalKey F4 => new(Hex1bKey.F4, Hex1bModifiers.None, nameof(F4)); 176public static AspireTerminalKey F5 => new(Hex1bKey.F5, Hex1bModifiers.None, nameof(F5)); 179public static AspireTerminalKey F6 => new(Hex1bKey.F6, Hex1bModifiers.None, nameof(F6)); 182public static AspireTerminalKey F7 => new(Hex1bKey.F7, Hex1bModifiers.None, nameof(F7)); 185public static AspireTerminalKey F8 => new(Hex1bKey.F8, Hex1bModifiers.None, nameof(F8)); 188public static AspireTerminalKey F9 => new(Hex1bKey.F9, Hex1bModifiers.None, nameof(F9)); 191public static AspireTerminalKey F10 => new(Hex1bKey.F10, Hex1bModifiers.None, nameof(F10)); 194public static AspireTerminalKey F11 => new(Hex1bKey.F11, Hex1bModifiers.None, nameof(F11)); 197public static AspireTerminalKey F12 => new(Hex1bKey.F12, Hex1bModifiers.None, nameof(F12)); 200public static AspireTerminalKey Enter => new(Hex1bKey.Enter, Hex1bModifiers.None, nameof(Enter)); 203public static AspireTerminalKey Tab => new(Hex1bKey.Tab, Hex1bModifiers.None, nameof(Tab)); 206public static AspireTerminalKey Escape => new(Hex1bKey.Escape, Hex1bModifiers.None, nameof(Escape)); 209public static AspireTerminalKey Backspace => new(Hex1bKey.Backspace, Hex1bModifiers.None, nameof(Backspace)); 212public static AspireTerminalKey Delete => new(Hex1bKey.Delete, Hex1bModifiers.None, nameof(Delete)); 215public static AspireTerminalKey Insert => new(Hex1bKey.Insert, Hex1bModifiers.None, nameof(Insert)); 218public static AspireTerminalKey Space => new(Hex1bKey.Spacebar, Hex1bModifiers.None, nameof(Space)); 221public static AspireTerminalKey Up => new(Hex1bKey.UpArrow, Hex1bModifiers.None, nameof(Up)); 224public static AspireTerminalKey Down => new(Hex1bKey.DownArrow, Hex1bModifiers.None, nameof(Down)); 227public static AspireTerminalKey Left => new(Hex1bKey.LeftArrow, Hex1bModifiers.None, nameof(Left)); 230public static AspireTerminalKey Right => new(Hex1bKey.RightArrow, Hex1bModifiers.None, nameof(Right)); 233public static AspireTerminalKey Home => new(Hex1bKey.Home, Hex1bModifiers.None, nameof(Home)); 236public static AspireTerminalKey End => new(Hex1bKey.End, Hex1bModifiers.None, nameof(End)); 239public static AspireTerminalKey PageUp => new(Hex1bKey.PageUp, Hex1bModifiers.None, nameof(PageUp)); 242public static AspireTerminalKey PageDown => new(Hex1bKey.PageDown, Hex1bModifiers.None, nameof(PageDown)); 245public static AspireTerminalKey Comma => new(Hex1bKey.OemComma, Hex1bModifiers.None, nameof(Comma)); 248public static AspireTerminalKey Period => new(Hex1bKey.OemPeriod, Hex1bModifiers.None, nameof(Period)); 251public static AspireTerminalKey Minus => new(Hex1bKey.OemMinus, Hex1bModifiers.None, nameof(Minus)); 254public static AspireTerminalKey EqualsSign => new(Hex1bKey.OemPlus, Hex1bModifiers.None, nameof(EqualsSign)); 257public static AspireTerminalKey Slash => new(Hex1bKey.OemQuestion, Hex1bModifiers.None, nameof(Slash)); 260public static AspireTerminalKey Semicolon => new(Hex1bKey.Oem1, Hex1bModifiers.None, nameof(Semicolon)); 263public static AspireTerminalKey LeftBracket => new(Hex1bKey.Oem4, Hex1bModifiers.None, nameof(LeftBracket)); 266public static AspireTerminalKey Backslash => new(Hex1bKey.Oem5, Hex1bModifiers.None, nameof(Backslash)); 269public static AspireTerminalKey RightBracket => new(Hex1bKey.Oem6, Hex1bModifiers.None, nameof(RightBracket)); 272public static AspireTerminalKey Apostrophe => new(Hex1bKey.Oem7, Hex1bModifiers.None, nameof(Apostrophe)); 275public static AspireTerminalKey Backtick => new(Hex1bKey.OemTilde, Hex1bModifiers.None, nameof(Backtick)); 284public static AspireTerminalKey Ctrl(AspireTerminalKey key) 298public static AspireTerminalKey Shift(AspireTerminalKey key) 312public static AspireTerminalKey Alt(AspireTerminalKey key) 324public bool Equals(AspireTerminalKey other) => Key == other.Key && Modifiers == other.Modifiers; 331public override bool Equals(object? obj) => obj is AspireTerminalKey other && Equals(other); 366public static bool operator ==(AspireTerminalKey left, AspireTerminalKey right) => left.Equals(right); 374public static bool operator !=(AspireTerminalKey left, AspireTerminalKey right) => !left.Equals(right);
ApplicationModel\Hex1bAspireTerminal.cs (1)
300public async Task SendKeyAsync(AspireTerminalKey key, CancellationToken cancellationToken = default)
ApplicationModel\ITerminalBackend.cs (1)
20Task SendKeyAsync(AspireTerminalKey key, CancellationToken cancellationToken);
ApplicationModel\ResourceAspireTerminal.cs (1)
110public async Task SendKeyAsync(AspireTerminalKey key, CancellationToken cancellationToken = default)
ApplicationModel\TerminalAutomation.cs (1)
34AspireTerminalKey key,
Aspire.Hosting.Tests (249)
Terminals\AspireTerminalKeyTests.cs (171)
18var properties = typeof(AspireTerminalKey).GetProperties(BindingFlags.Public | BindingFlags.Static); 22Assert.All(properties, property => Assert.Equal(typeof(AspireTerminalKey), property.PropertyType)); 41(AspireTerminalKey Value, Hex1bModifiers Modifiers)[] modifiedKeys = 43(AspireTerminalKey.Ctrl(key), Hex1bModifiers.Control), 44(AspireTerminalKey.Shift(key), Hex1bModifiers.Shift), 45(AspireTerminalKey.Alt(key), Hex1bModifiers.Alt), 46(AspireTerminalKey.Ctrl(AspireTerminalKey.Shift(key)), Hex1bModifiers.Control | Hex1bModifiers.Shift), 47(AspireTerminalKey.Ctrl(AspireTerminalKey.Alt(key)), Hex1bModifiers.Control | Hex1bModifiers.Alt), 48(AspireTerminalKey.Alt(AspireTerminalKey.Shift(key)), Hex1bModifiers.Alt | Hex1bModifiers.Shift), 49(AspireTerminalKey.Ctrl(AspireTerminalKey.Alt(AspireTerminalKey.Shift(key))), Hex1bModifiers.Control | Hex1bModifiers.Alt | Hex1bModifiers.Shift) 66Func<AspireTerminalKey, AspireTerminalKey>[] factories = 68AspireTerminalKey.Ctrl, 69AspireTerminalKey.Shift, 70AspireTerminalKey.Alt 75var allModifiers = AspireTerminalKey.Ctrl(AspireTerminalKey.Alt(AspireTerminalKey.Shift(key))); 90AspireTerminalKey[] permutations = 92AspireTerminalKey.Ctrl(AspireTerminalKey.Alt(AspireTerminalKey.Shift(key))), 93AspireTerminalKey.Ctrl(AspireTerminalKey.Shift(AspireTerminalKey.Alt(key))), 94AspireTerminalKey.Alt(AspireTerminalKey.Ctrl(AspireTerminalKey.Shift(key))), 95AspireTerminalKey.Alt(AspireTerminalKey.Shift(AspireTerminalKey.Ctrl(key))), 96AspireTerminalKey.Shift(AspireTerminalKey.Ctrl(AspireTerminalKey.Alt(key))), 97AspireTerminalKey.Shift(AspireTerminalKey.Alt(AspireTerminalKey.Ctrl(key))) 100foreach (var permutation in permutations) 112var first = AspireTerminalKey.Ctrl(AspireTerminalKey.Shift(AspireTerminalKey.E)); 113var second = AspireTerminalKey.Shift(AspireTerminalKey.Ctrl(AspireTerminalKey.E)); 114var differentKey = AspireTerminalKey.Ctrl(AspireTerminalKey.Shift(AspireTerminalKey.F)); 115var differentModifiers = AspireTerminalKey.Ctrl(AspireTerminalKey.E); 116IEquatable<AspireTerminalKey> equatable = first; 126foreach (var different in new[] { differentKey, differentModifiers, default }) 142var first = default(AspireTerminalKey); 143var second = new AspireTerminalKey(); 155(AspireTerminalKey Key, string Expected)[] cases = 157(AspireTerminalKey.E, "E"), 158(AspireTerminalKey.Ctrl(AspireTerminalKey.E), "Ctrl+E"), 159(AspireTerminalKey.Alt(AspireTerminalKey.E), "Alt+E"), 160(AspireTerminalKey.Shift(AspireTerminalKey.E), "Shift+E"), 161(AspireTerminalKey.Ctrl(AspireTerminalKey.Alt(AspireTerminalKey.E)), "Ctrl+Alt+E"), 162(AspireTerminalKey.Shift(AspireTerminalKey.Ctrl(AspireTerminalKey.E)), "Ctrl+Shift+E"), 163(AspireTerminalKey.Alt(AspireTerminalKey.Shift(AspireTerminalKey.E)), "Alt+Shift+E"), 164(AspireTerminalKey.Shift(AspireTerminalKey.Alt(AspireTerminalKey.Ctrl(AspireTerminalKey.E))), "Ctrl+Alt+Shift+E"), 165(AspireTerminalKey.Ctrl(AspireTerminalKey.Delete), "Ctrl+Delete"), 166(AspireTerminalKey.Shift(AspireTerminalKey.D1), "Shift+D1"), 167(AspireTerminalKey.Alt(AspireTerminalKey.Backtick), "Alt+Backtick"), 182var key = default(AspireTerminalKey); 190Assert.Throws<ArgumentException>("key", () => AspireTerminalKey.Ctrl(default)); 191Assert.Throws<ArgumentException>("key", () => AspireTerminalKey.Shift(default)); 192Assert.Throws<ArgumentException>("key", () => AspireTerminalKey.Alt(default)); 195private static (string Name, AspireTerminalKey Value, Hex1bKey NativeKey)[] GetNamedKeys() => 197("A", AspireTerminalKey.A, Hex1bKey.A), 198("B", AspireTerminalKey.B, Hex1bKey.B), 199("C", AspireTerminalKey.C, Hex1bKey.C), 200("D", AspireTerminalKey.D, Hex1bKey.D), 201("E", AspireTerminalKey.E, Hex1bKey.E), 202("F", AspireTerminalKey.F, Hex1bKey.F), 203("G", AspireTerminalKey.G, Hex1bKey.G), 204("H", AspireTerminalKey.H, Hex1bKey.H), 205("I", AspireTerminalKey.I, Hex1bKey.I), 206("J", AspireTerminalKey.J, Hex1bKey.J), 207("K", AspireTerminalKey.K, Hex1bKey.K), 208("L", AspireTerminalKey.L, Hex1bKey.L), 209("M", AspireTerminalKey.M, Hex1bKey.M), 210("N", AspireTerminalKey.N, Hex1bKey.N), 211("O", AspireTerminalKey.O, Hex1bKey.O), 212("P", AspireTerminalKey.P, Hex1bKey.P), 213("Q", AspireTerminalKey.Q, Hex1bKey.Q), 214("R", AspireTerminalKey.R, Hex1bKey.R), 215("S", AspireTerminalKey.S, Hex1bKey.S), 216("T", AspireTerminalKey.T, Hex1bKey.T), 217("U", AspireTerminalKey.U, Hex1bKey.U), 218("V", AspireTerminalKey.V, Hex1bKey.V), 219("W", AspireTerminalKey.W, Hex1bKey.W), 220("X", AspireTerminalKey.X, Hex1bKey.X), 221("Y", AspireTerminalKey.Y, Hex1bKey.Y), 222("Z", AspireTerminalKey.Z, Hex1bKey.Z), 223("D0", AspireTerminalKey.D0, Hex1bKey.D0), 224("D1", AspireTerminalKey.D1, Hex1bKey.D1), 225("D2", AspireTerminalKey.D2, Hex1bKey.D2), 226("D3", AspireTerminalKey.D3, Hex1bKey.D3), 227("D4", AspireTerminalKey.D4, Hex1bKey.D4), 228("D5", AspireTerminalKey.D5, Hex1bKey.D5), 229("D6", AspireTerminalKey.D6, Hex1bKey.D6), 230("D7", AspireTerminalKey.D7, Hex1bKey.D7), 231("D8", AspireTerminalKey.D8, Hex1bKey.D8), 232("D9", AspireTerminalKey.D9, Hex1bKey.D9), 233("F1", AspireTerminalKey.F1, Hex1bKey.F1), 234("F2", AspireTerminalKey.F2, Hex1bKey.F2), 235("F3", AspireTerminalKey.F3, Hex1bKey.F3), 236("F4", AspireTerminalKey.F4, Hex1bKey.F4), 237("F5", AspireTerminalKey.F5, Hex1bKey.F5), 238("F6", AspireTerminalKey.F6, Hex1bKey.F6), 239("F7", AspireTerminalKey.F7, Hex1bKey.F7), 240("F8", AspireTerminalKey.F8, Hex1bKey.F8), 241("F9", AspireTerminalKey.F9, Hex1bKey.F9), 242("F10", AspireTerminalKey.F10, Hex1bKey.F10), 243("F11", AspireTerminalKey.F11, Hex1bKey.F11), 244("F12", AspireTerminalKey.F12, Hex1bKey.F12), 245("Enter", AspireTerminalKey.Enter, Hex1bKey.Enter), 246("Tab", AspireTerminalKey.Tab, Hex1bKey.Tab), 247("Escape", AspireTerminalKey.Escape, Hex1bKey.Escape), 248("Backspace", AspireTerminalKey.Backspace, Hex1bKey.Backspace), 249("Delete", AspireTerminalKey.Delete, Hex1bKey.Delete), 250("Insert", AspireTerminalKey.Insert, Hex1bKey.Insert), 251("Space", AspireTerminalKey.Space, Hex1bKey.Spacebar), 252("Up", AspireTerminalKey.Up, Hex1bKey.UpArrow), 253("Down", AspireTerminalKey.Down, Hex1bKey.DownArrow), 254("Left", AspireTerminalKey.Left, Hex1bKey.LeftArrow), 255("Right", AspireTerminalKey.Right, Hex1bKey.RightArrow), 256("Home", AspireTerminalKey.Home, Hex1bKey.Home), 257("End", AspireTerminalKey.End, Hex1bKey.End), 258("PageUp", AspireTerminalKey.PageUp, Hex1bKey.PageUp), 259("PageDown", AspireTerminalKey.PageDown, Hex1bKey.PageDown), 260("Comma", AspireTerminalKey.Comma, Hex1bKey.OemComma), 261("Period", AspireTerminalKey.Period, Hex1bKey.OemPeriod), 262("Minus", AspireTerminalKey.Minus, Hex1bKey.OemMinus), 263("EqualsSign", AspireTerminalKey.EqualsSign, Hex1bKey.OemPlus), 264("Slash", AspireTerminalKey.Slash, Hex1bKey.OemQuestion), 265("Semicolon", AspireTerminalKey.Semicolon, Hex1bKey.Oem1), 266("LeftBracket", AspireTerminalKey.LeftBracket, Hex1bKey.Oem4), 267("Backslash", AspireTerminalKey.Backslash, Hex1bKey.Oem5), 268("RightBracket", AspireTerminalKey.RightBracket, Hex1bKey.Oem6), 269("Apostrophe", AspireTerminalKey.Apostrophe, Hex1bKey.Oem7), 270("Backtick", AspireTerminalKey.Backtick, Hex1bKey.OemTilde)
Terminals\AspireTerminalTests.cs (11)
47List<(AspireTerminalKey Key, CancellationToken Token)> calls = []; 58var keys = typeof(AspireTerminalKey).GetProperties(BindingFlags.Public | BindingFlags.Static) 59.Where(property => property.PropertyType == typeof(AspireTerminalKey)) 60.Select(property => Assert.IsType<AspireTerminalKey>(property.GetValue(null))) 64AspireTerminalKey.Ctrl(key), 65AspireTerminalKey.Shift(key), 66AspireTerminalKey.Alt(key), 67AspireTerminalKey.Ctrl(AspireTerminalKey.Shift(AspireTerminalKey.Alt(key))) 71foreach (var key in keys)
Terminals\Hex1bAspireTerminalTests.cs (10)
57blockingInput = terminal.SendKeyAsync(AspireTerminalKey.Alt(AspireTerminalKey.E)); 63"key" => terminal.SendKeyAsync(AspireTerminalKey.Enter, cts.Token), 64"modified-key" => terminal.SendKeyAsync(AspireTerminalKey.Ctrl(AspireTerminalKey.R), cts.Token), 65"alt-letter" => terminal.SendKeyAsync(AspireTerminalKey.Alt(AspireTerminalKey.E), cts.Token), 120() => terminal.SendKeyAsync(AspireTerminalKey.Enter, cts.Token)).DefaultTimeout(); 411await Assert.ThrowsAsync<InvalidOperationException>(() => terminal.SendKeyAsync(AspireTerminalKey.Enter)); 469await terminal.SendKeyAsync(AspireTerminalKey.Enter).DefaultTimeout();
Terminals\ResourceAspireTerminalTests.cs (1)
43await terminal.SendKeyAsync(AspireTerminalKey.Enter).DefaultTimeout();
Terminals\TerminalKeyInputTests.cs (52)
72await terminal.SendKeyAsync(AspireTerminalKey.Home).DefaultTimeout(); 78private static IEnumerable<(AspireTerminalKey Key, string Expected)> GetKeyInputs(bool applicationCursor) 80var keys = typeof(AspireTerminalKey).GetProperties(BindingFlags.Public | BindingFlags.Static) 81.Where(property => property.PropertyType == typeof(AspireTerminalKey)) 82.ToDictionary(property => property.Name, property => Assert.IsType<AspireTerminalKey>(property.GetValue(null))); 85yield return (AspireTerminalKey.Up, cursorPrefix + "A"); 92yield return (AspireTerminalKey.Ctrl(keys[name]), "\x1b[1;5" + suffix); 93yield return (AspireTerminalKey.Alt(AspireTerminalKey.Shift(keys[name])), "\x1b[1;4" + suffix); 111var key = keys[letter.ToString()]; 116yield return (AspireTerminalKey.Shift(key), upper); 117yield return (AspireTerminalKey.Ctrl(key), control); 118yield return (AspireTerminalKey.Ctrl(AspireTerminalKey.Shift(key)), control); 119yield return (AspireTerminalKey.Alt(key), "\x1b" + lower); 120yield return (AspireTerminalKey.Alt(AspireTerminalKey.Shift(key)), "\x1b" + upper); 121yield return (AspireTerminalKey.Alt(AspireTerminalKey.Ctrl(key)), "\x1b" + control); 122yield return (AspireTerminalKey.Alt(AspireTerminalKey.Ctrl(AspireTerminalKey.Shift(key))), "\x1b" + control); 128var key = keys[$"D{digit}"]; 130yield return (AspireTerminalKey.Shift(key), shiftedDigits[digit].ToString()); 142yield return (AspireTerminalKey.Shift(keys[name]), shifted); 145yield return (AspireTerminalKey.Shift(AspireTerminalKey.Tab), "\x1b[Z"); 146yield return (AspireTerminalKey.Ctrl(AspireTerminalKey.Tab), "\t"); 147yield return (AspireTerminalKey.Shift(AspireTerminalKey.Enter), "\r"); 148yield return (AspireTerminalKey.Alt(AspireTerminalKey.Enter), "\x1b\r"); 149yield return (AspireTerminalKey.Ctrl(AspireTerminalKey.Backspace), "\b"); 150yield return (AspireTerminalKey.Ctrl(AspireTerminalKey.Space), "\0"); 151yield return (AspireTerminalKey.Ctrl(AspireTerminalKey.LeftBracket), "\x1b"); 152yield return (AspireTerminalKey.Ctrl(AspireTerminalKey.Shift(AspireTerminalKey.Left)), "\x1b[1;6D"); 153yield return (AspireTerminalKey.Ctrl(AspireTerminalKey.Alt(AspireTerminalKey.Delete)), "\x1b[3;7~"); 154yield return (AspireTerminalKey.Ctrl(AspireTerminalKey.Shift(AspireTerminalKey.F1)), "\x1b[1;6P"); 155yield return (AspireTerminalKey.Ctrl(AspireTerminalKey.Alt(AspireTerminalKey.Shift(AspireTerminalKey.F12))), "\x1b[24;8~");
Terminals\TerminalServiceTests.cs (1)
31[InlineData(typeof(AspireTerminalKey))]
Utils\TestTerminalBackend.cs (2)
16public Func<AspireTerminalKey, CancellationToken, Task>? OnSendKey { get; set; } 21public Task SendKeyAsync(AspireTerminalKey key, CancellationToken cancellationToken = default)
WithTerminalTests.cs (1)
34[InlineData(typeof(AspireTerminalKey))]