From 0a7a94bbab988ac7826d002f699797d22f72cf59 Mon Sep 17 00:00:00 2001 From: Ivan Josipovic <9521987+IvanJosipovic@users.noreply.github.com> Date: Mon, 13 Jan 2025 09:26:57 -0800 Subject: [PATCH] feat(Pod): Improved Console Xterm + Color support (#860) --- KubeUI.sln | 6 + src/KubeUI.Desktop/Program.cs | 5 + .../Assets/Fonts/CascadiaMono-Regular.otf | Bin 0 -> 343544 bytes .../Assets/Fonts/CascadiaMono-SemiBold.otf | Bin 0 -> 351388 bytes .../Fonts/CascadiaMono-SemiBoldItalic.otf | Bin 0 -> 238896 bytes .../Assets/Fonts/CascadiaMono-SemiLight.otf | Bin 0 -> 343612 bytes .../Fonts/CascadiaMono-SemiLightItalic.otf | Bin 0 -> 235848 bytes src/KubeUI/CascadiaMonoFontCollection.cs | 10 + src/KubeUI/KubeUI.csproj | 1 + .../ViewModels/ResourceListViewModel.cs | 15 +- .../Workloads/Pod/PodConsoleViewModel.cs | 585 ++++++- .../Workloads/Pod/PodLogsViewModel.cs | 4 +- .../Views/Workloads/Pod/PodConsoleView.cs | 413 ++++- src/KubeUI/Views/Workloads/Pod/PodLogsView.cs | 2 +- src/XtermSharp/AssemblyInfo.cs | 1 + src/XtermSharp/Buffer.cs | 436 ++++++ src/XtermSharp/BufferLine.cs | 197 +++ src/XtermSharp/BufferSet.cs | 104 ++ src/XtermSharp/CharData.cs | 75 + src/XtermSharp/CharSets.cs | 260 ++++ src/XtermSharp/CharWidth.cs | 179 +++ src/XtermSharp/CharacterAttribute.cs | 72 + src/XtermSharp/Colors.cs | 61 + src/XtermSharp/ControlCodes.cs | 56 + src/XtermSharp/EscapeSequenceParser.cs | 697 +++++++++ src/XtermSharp/EscapeSequences.cs | 41 + src/XtermSharp/GlobalSuppressions.cs | 8 + src/XtermSharp/ITerminalDelegate.cs | 84 + .../InputHandlers/CsiCommandExtensions.cs | 25 + src/XtermSharp/InputHandlers/DECRQSS.cs | 78 + src/XtermSharp/InputHandlers/InputHandler.cs | 1374 +++++++++++++++++ ...inalBufferManipulationCommandExtensions.cs | 233 +++ .../TerminalCommandExtensions.cs | 337 ++++ .../TerminalModeSetExtensions.cs | 404 +++++ .../TerminalStatusCommandExtensions.cs | 187 +++ src/XtermSharp/Line.cs | 120 ++ src/XtermSharp/LineFragment.cs | 54 + src/XtermSharp/MouseMode.cs | 37 + src/XtermSharp/MouseModeExensions.cs | 43 + src/XtermSharp/MouseProtocolEncoding.cs | 33 + src/XtermSharp/Point.cs | 28 + src/XtermSharp/Pty.cs | 161 ++ src/XtermSharp/ReadingBuffer.cs | 97 ++ src/XtermSharp/ReflowNarrower.cs | 267 ++++ src/XtermSharp/ReflowStrategy.cs | 44 + src/XtermSharp/ReflowWider.cs | 200 +++ src/XtermSharp/Renderer/Renderer.cs | 11 + src/XtermSharp/SearchService.cs | 223 +++ src/XtermSharp/SelectionService.cs | 499 ++++++ src/XtermSharp/Terminal.cs | 1215 +++++++++++++++ src/XtermSharp/TerminalOptions.cs | 25 + src/XtermSharp/Utils/CircularList.cs | 226 +++ src/XtermSharp/Utils/RuneExt.cs | 94 ++ src/XtermSharp/WindowManipulationCommand.cs | 89 ++ src/XtermSharp/XtermSharp.csproj | 27 + 55 files changed, 9303 insertions(+), 140 deletions(-) create mode 100644 src/KubeUI/Assets/Fonts/CascadiaMono-Regular.otf create mode 100644 src/KubeUI/Assets/Fonts/CascadiaMono-SemiBold.otf create mode 100644 src/KubeUI/Assets/Fonts/CascadiaMono-SemiBoldItalic.otf create mode 100644 src/KubeUI/Assets/Fonts/CascadiaMono-SemiLight.otf create mode 100644 src/KubeUI/Assets/Fonts/CascadiaMono-SemiLightItalic.otf create mode 100644 src/KubeUI/CascadiaMonoFontCollection.cs create mode 100644 src/XtermSharp/AssemblyInfo.cs create mode 100644 src/XtermSharp/Buffer.cs create mode 100644 src/XtermSharp/BufferLine.cs create mode 100644 src/XtermSharp/BufferSet.cs create mode 100644 src/XtermSharp/CharData.cs create mode 100644 src/XtermSharp/CharSets.cs create mode 100644 src/XtermSharp/CharWidth.cs create mode 100644 src/XtermSharp/CharacterAttribute.cs create mode 100644 src/XtermSharp/Colors.cs create mode 100644 src/XtermSharp/ControlCodes.cs create mode 100644 src/XtermSharp/EscapeSequenceParser.cs create mode 100644 src/XtermSharp/EscapeSequences.cs create mode 100644 src/XtermSharp/GlobalSuppressions.cs create mode 100644 src/XtermSharp/ITerminalDelegate.cs create mode 100644 src/XtermSharp/InputHandlers/CsiCommandExtensions.cs create mode 100644 src/XtermSharp/InputHandlers/DECRQSS.cs create mode 100644 src/XtermSharp/InputHandlers/InputHandler.cs create mode 100644 src/XtermSharp/InputHandlers/TerminalBufferManipulationCommandExtensions.cs create mode 100644 src/XtermSharp/InputHandlers/TerminalCommandExtensions.cs create mode 100644 src/XtermSharp/InputHandlers/TerminalModeSetExtensions.cs create mode 100644 src/XtermSharp/InputHandlers/TerminalStatusCommandExtensions.cs create mode 100644 src/XtermSharp/Line.cs create mode 100644 src/XtermSharp/LineFragment.cs create mode 100644 src/XtermSharp/MouseMode.cs create mode 100644 src/XtermSharp/MouseModeExensions.cs create mode 100644 src/XtermSharp/MouseProtocolEncoding.cs create mode 100644 src/XtermSharp/Point.cs create mode 100644 src/XtermSharp/Pty.cs create mode 100644 src/XtermSharp/ReadingBuffer.cs create mode 100644 src/XtermSharp/ReflowNarrower.cs create mode 100644 src/XtermSharp/ReflowStrategy.cs create mode 100644 src/XtermSharp/ReflowWider.cs create mode 100644 src/XtermSharp/Renderer/Renderer.cs create mode 100644 src/XtermSharp/SearchService.cs create mode 100644 src/XtermSharp/SelectionService.cs create mode 100644 src/XtermSharp/Terminal.cs create mode 100644 src/XtermSharp/TerminalOptions.cs create mode 100644 src/XtermSharp/Utils/CircularList.cs create mode 100644 src/XtermSharp/Utils/RuneExt.cs create mode 100644 src/XtermSharp/WindowManipulationCommand.cs create mode 100644 src/XtermSharp/XtermSharp.csproj diff --git a/KubeUI.sln b/KubeUI.sln index 73d2917e..957a1ad0 100644 --- a/KubeUI.sln +++ b/KubeUI.sln @@ -23,6 +23,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubeUI.Tests", "tests\KubeU EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KubeUI.Core", "src\KubeUI.Core\KubeUI.Core.csproj", "{57504622-EB10-4E5C-9436-B2DAA35F4335}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XtermSharp", "src\XtermSharp\XtermSharp.csproj", "{51CC524C-8557-D5ED-7ABB-7CC8FEC3E242}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -45,6 +47,10 @@ Global {57504622-EB10-4E5C-9436-B2DAA35F4335}.Debug|Any CPU.Build.0 = Debug|Any CPU {57504622-EB10-4E5C-9436-B2DAA35F4335}.Release|Any CPU.ActiveCfg = Release|Any CPU {57504622-EB10-4E5C-9436-B2DAA35F4335}.Release|Any CPU.Build.0 = Release|Any CPU + {51CC524C-8557-D5ED-7ABB-7CC8FEC3E242}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {51CC524C-8557-D5ED-7ABB-7CC8FEC3E242}.Debug|Any CPU.Build.0 = Debug|Any CPU + {51CC524C-8557-D5ED-7ABB-7CC8FEC3E242}.Release|Any CPU.ActiveCfg = Release|Any CPU + {51CC524C-8557-D5ED-7ABB-7CC8FEC3E242}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/KubeUI.Desktop/Program.cs b/src/KubeUI.Desktop/Program.cs index 21bc0b0d..3ba2be25 100644 --- a/src/KubeUI.Desktop/Program.cs +++ b/src/KubeUI.Desktop/Program.cs @@ -1,5 +1,6 @@ using System; using Avalonia; +using Avalonia.Fonts.Inter; using Velopack; namespace KubeUI.Desktop; @@ -21,5 +22,9 @@ public static void Main(string[] args) public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure() .UsePlatformDetect() + .ConfigureFonts(fontManager => + { + fontManager.AddFontCollection(new CascadiaMonoFontCollection()); + }) .WithInterFont(); } diff --git a/src/KubeUI/Assets/Fonts/CascadiaMono-Regular.otf b/src/KubeUI/Assets/Fonts/CascadiaMono-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..e99c3040914e19b67378975fcc42a8a5d5d28a98 GIT binary patch literal 343544 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

{~(IdF|Ut$@AAtGd|=c8vAV&T3~J)`e(^J{ZkB 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 literal 0 HcmV?d00001 diff --git a/src/KubeUI/Assets/Fonts/CascadiaMono-SemiBoldItalic.otf b/src/KubeUI/Assets/Fonts/CascadiaMono-SemiBoldItalic.otf new file mode 100644 index 0000000000000000000000000000000000000000..031067ae6f12fd795c72f9fe2fdac4df75032568 GIT binary patch literal 238896 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

a@2t(EL;aLJlVS+!DzwwYGGUYTyP@ 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 M#N(+i;THCP0NwHwM*si- literal 0 HcmV?d00001 diff --git a/src/KubeUI/Assets/Fonts/CascadiaMono-SemiLight.otf b/src/KubeUI/Assets/Fonts/CascadiaMono-SemiLight.otf new file mode 100644 index 0000000000000000000000000000000000000000..2ac6b9192b9a2e9f48ae2bc2306f4478621720eb GIT binary patch literal 343612 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�Dl1)B9{y|NGe`1sJsC=DCgav0UroU|h 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

1@#3__GgA(UZ;wnm9 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 z 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 literal 0 HcmV?d00001 diff --git a/src/KubeUI/Assets/Fonts/CascadiaMono-SemiLightItalic.otf b/src/KubeUI/Assets/Fonts/CascadiaMono-SemiLightItalic.otf new file mode 100644 index 0000000000000000000000000000000000000000..d08210dbf6cf4101de4bcc48edac5c7847291c88 GIT binary patch literal 235848 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%0AH8r*J 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

V!fOTn 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�sD(kA$q)ZMkf3AJd|CNlNaTBc2DsWPV4Yp4{^ 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

Z6oqqN!_BMa$VzDfLK`a3ba$bi%N?6i2G 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 + diff --git a/src/KubeUI/ViewModels/ResourceListViewModel.cs b/src/KubeUI/ViewModels/ResourceListViewModel.cs index 21c7fd4b..115fda5c 100644 --- a/src/KubeUI/ViewModels/ResourceListViewModel.cs +++ b/src/KubeUI/ViewModels/ResourceListViewModel.cs @@ -1721,7 +1721,7 @@ private bool CanViewLogs(V1Container? container) } [RelayCommand(CanExecute = nameof(CanViewConsole))] - private async Task ViewConsole(V1Container container) + private void ViewConsole(V1Container container) { var vm = Application.Current.GetRequiredService(); vm.Cluster = Cluster; @@ -1729,18 +1729,7 @@ private async Task ViewConsole(V1Container container) vm.ContainerName = container.Name; vm.Id = $"{nameof(ViewConsole)}-{Cluster.Name}-{((KeyValuePair)SelectedItem).Key}-{container.Name}"; - if (Factory.AddToBottom(vm)) - { - try - { - await vm.Connect(); - } - catch (Exception ex) - { - _logger.LogError(ex, "Error connecting to console"); - return; - } - } + Factory.AddToBottom(vm); } private bool CanViewConsole(V1Container? container) diff --git a/src/KubeUI/ViewModels/Workloads/Pod/PodConsoleViewModel.cs b/src/KubeUI/ViewModels/Workloads/Pod/PodConsoleViewModel.cs index 5a8d5011..d8656efe 100644 --- a/src/KubeUI/ViewModels/Workloads/Pod/PodConsoleViewModel.cs +++ b/src/KubeUI/ViewModels/Workloads/Pod/PodConsoleViewModel.cs @@ -4,7 +4,11 @@ using KubeUI.Client; using System.Net.WebSockets; using System.Text; -using System.Text.RegularExpressions; +using XtermSharp; +using AvaloniaEdit.Highlighting; +using Color = Avalonia.Media.Color; +using System.Text.Json; +using Avalonia.Media.TextFormatting; namespace KubeUI.ViewModels; @@ -30,10 +34,137 @@ public PodConsoleViewModel(ILogger logger) [ObservableProperty] public partial TextDocument Console { get; set; } = new(); + [ObservableProperty] + public partial RichTextModel ConsoleColor { get; set; } = new(); + + [ObservableProperty] + public partial Terminal Terminal { get; set; } = new(); + + [ObservableProperty] + public partial double Width { get; set; } + + [ObservableProperty] + public partial double Height { get; set; } + + [ObservableProperty] + public partial int FontSize { get; set; } = 14; + + [ObservableProperty] + public partial int BufferLength { get; set; } + + [ObservableProperty] + public partial string FontFamily { get; set; } = "Cascadia Mono"; + private WebSocket? _webSocket; private StreamDemuxer? _streamDemuxer; private Stream? _stream; - private StreamReader? _streamReader; + private Stream? _refreshStream; + + ///

+ /// Gets a value indicating whether or not the user can scroll the terminal contents + /// + public bool CanScroll + { + get + { + var shouldBeEnabled = !Terminal.Buffers.IsAlternateBuffer; + shouldBeEnabled = shouldBeEnabled && Terminal.Buffer.HasScrollback; + shouldBeEnabled = shouldBeEnabled && Terminal.Buffer.Lines.Length > Terminal.Rows; + return shouldBeEnabled; + } + } + + /// + /// Gets a value indicating the scroll thumbsize + /// + public float ScrollThumbsize + { + get + { + if (Terminal.Buffers.IsAlternateBuffer) + return 0; + + // the thumb size is the proportion of the visible content of the + // entire content but don't make it too small + return Math.Max((float)Terminal.Rows / (float)Terminal.Buffer.Lines.Length, 0.01f); + } + } + + /// + /// Gets a value indicating the relative position of the terminal scroller + /// + public double ScrollPosition + { + get + { + if (Terminal.Buffers.IsAlternateBuffer) + return 0; + + // strictly speaking these ought not to be outside these bounds + if (Terminal.Buffer.YDisp <= 0) + return 0; + + var maxScrollback = Terminal.Buffer.Lines.Length - Terminal.Rows; + if (Terminal.Buffer.YDisp >= maxScrollback) + return 1; + + return (double)Terminal.Buffer.YDisp / (double)maxScrollback; + } + } + + public override void OnVisibleBoundsChanged(double x, double y, double width, double height) + { + base.OnVisibleBoundsChanged(x, y, width, height); + + Width = width; + Height = height; + + const double toolHeaderHeight = 23; + + if (Width > 0 && Height > 0) + { + var size = CalculateTextSize("a", FontFamily, FontSize); + + var cols = (int)((width - 16) / size.Width); + var rows = (int)((height - toolHeaderHeight) / (size.Height * 1.17)); + + Terminal.Resize(cols, rows); + Terminal.Delegate.SizeChanged(Terminal); + SendResize(); + BufferLength = rows + Terminal.Options.Scrollback ?? 0; + } + } + + public static Size CalculateTextSize(string text, string fontName, int myFontSize) + { + var myFont = Avalonia.Media.FontFamily.Parse(fontName) ?? throw new ArgumentException($"The resource {fontName} is not a FontFamily."); + + var typeface = new Typeface(myFont); + var shaped = TextShaper.Current.ShapeText(text, new TextShaperOptions(typeface.GlyphTypeface, myFontSize)); + var run = new ShapedTextRun(shaped, new GenericTextRunProperties(typeface, myFontSize)); + return run.Size; + } + + public void SendResize() + { + var size = new TerminalSize + { + Width = (ushort)Terminal.Cols, + Height = (ushort)Terminal.Rows, + }; + + if (_refreshStream?.CanWrite == true) + { + try + { + _refreshStream?.Write(JsonSerializer.SerializeToUtf8Bytes(size)); + } + catch (Exception ex) + { + _logger.LogError(ex, "Error Sending Resize to console"); + } + } + } public async Task Connect() { @@ -41,7 +172,7 @@ public async Task Connect() { "sh", "-c", - "clear; (bash || ash || sh || echo 'No Shell Found!')" + "clear; (bash || ash || sh || echo 'No Shell Found!')", }; _webSocket = await Cluster.Client.WebSocketNamespacedPodExecAsync(Object.Name(), Object.Namespace(), command, ContainerName); @@ -50,8 +181,7 @@ public async Task Connect() _streamDemuxer.Start(); _stream = _streamDemuxer.GetStream(ChannelIndex.StdOut, ChannelIndex.StdIn); - - _streamReader = new StreamReader(_stream); + _refreshStream = _streamDemuxer.GetStream(null, ChannelIndex.Resize); _ = Task.Run(async () => { @@ -59,27 +189,16 @@ public async Task Connect() { try { - var memory = new Memory(new char[1024]); - await _streamReader.ReadAsync(memory).ConfigureAwait(false); - var str = memory.ToString() - .Replace("\0", "", StringComparison.Ordinal) // null character - .Replace("\a", "", StringComparison.Ordinal) // bell or alert - ; - str = RemoveAnsiEscapeSequences(str); - if (!string.IsNullOrEmpty(str)) + const int bufferSize = 4096; // 4KB buffer size + byte[] buffer = new byte[bufferSize]; + if (await _stream.ReadAsync(buffer, 0, bufferSize) > 0) { - await Dispatcher.UIThread.InvokeAsync(() => - { - // backspace - if (str.Equals("\b", StringComparison.Ordinal) || str.Equals("\b \b", StringComparison.Ordinal)) - { - Console.Remove(Console.TextLength - 1, 1); - } - else - { - Console.Insert(Console.TextLength, str); - } - }, DispatcherPriority.Background); + Terminal.Feed(buffer, bufferSize); + await Dispatcher.UIThread.InvokeAsync(() => + { + UpdateTerminalText(); + UpdateTerminalColors(); + }, DispatcherPriority.Background); } } catch (IOException ex) when (ex.Message.Equals("The request was aborted.")) { break; } @@ -88,18 +207,6 @@ await Dispatcher.UIThread.InvokeAsync(() => }); } - // ANSI escape sequences pattern - [GeneratedRegex(@"\x1B\[[0-?]*[ -/]*[@-~]", RegexOptions.None, matchTimeoutMilliseconds: 1000)] - private static partial Regex AnsiEscape(); - - public static string RemoveAnsiEscapeSequences(string text) - { - if (string.IsNullOrEmpty(text)) - return text; - - return AnsiEscape().Replace(text, string.Empty); - } - public void Send(string text) { if (_stream?.CanWrite == true) @@ -118,6 +225,36 @@ public void Send(string text) } } + public void Send(byte bytes) + { + if (_stream?.CanWrite == true) + { + try + { + _stream.Write([bytes]); + } + catch (Exception ex) + { + _logger.LogError(ex, "Error sending text to console: "); + } + } + } + + public void Send(byte[] bytes) + { + if (_stream?.CanWrite == true) + { + try + { + _stream.Write(bytes); + } + catch (Exception ex) + { + _logger.LogError(ex, "Error sending text to console: "); + } + } + } + [RelayCommand] public async Task Paste() { @@ -146,6 +283,378 @@ public void Dispose() _webSocket?.Dispose(); _streamDemuxer?.Dispose(); _stream?.Dispose(); - _streamReader?.Dispose(); + _refreshStream?.Dispose(); + } + + private void UpdateTerminalText() + { + var result = ""; + var lineText = ""; + for (var line = Terminal.Buffer.YBase; line < Terminal.Buffer.YBase + Terminal.Rows; line++) + { + lineText = ""; + for (var cell = 0; cell < Terminal.Cols; cell++) + { + var cd = Terminal.Buffer.Lines[line][cell]; + + if (cd.Code == 0) + lineText += " "; + else + lineText += (char)cd.Rune; + } + + result += lineText; + + // All except last line + if (line < Terminal.Buffer.YBase + Terminal.Rows - 1) + { + result += '\n'; + } + } + + Console.Text = result; + } + + private void UpdateTerminalColors() + { + for (var line = Terminal.Buffer.YBase; line < Terminal.Buffer.YBase + Terminal.Rows; line++) + { + for (var cell = 0; cell < Terminal.Cols; cell++) + { + var cd = Terminal.Buffer.Lines[line][cell]; + var hc = new HighlightingColor(); + var attribute = cd.Attribute; + + // ((int)flags << 18) | (fg << 9) | bg; + int bg = attribute & 0x1ff; + int fg = (attribute >> 9) & 0x1ff; + var flags = (FLAGS)(attribute >> 18); + + if (flags.HasFlag(FLAGS.INVERSE)) + { + var tmp = bg; + bg = fg; + fg = tmp; + + if (fg == Renderer.DefaultColor) + fg = Renderer.InvertedDefaultColor; + if (bg == Renderer.DefaultColor) + bg = Renderer.InvertedDefaultColor; + } + if (flags.HasFlag(FLAGS.BOLD)) + { + hc.FontWeight = FontWeight.Bold; + } + if (flags.HasFlag(FLAGS.ITALIC)) + { + hc.FontStyle = FontStyle.Italic; + } + hc.Underline = flags.HasFlag(FLAGS.UNDERLINE); + + hc.Strikethrough = flags.HasFlag(FLAGS.CrossedOut); + + if (fg <= 255) + { + hc.Foreground = new SimpleHighlightingBrush(ConvertXtermColor(fg)); + } + else if (fg == 256) // DefaultColor + { + hc.Foreground = new SimpleHighlightingBrush(ConvertXtermColor(15)); + } + else if (fg == 257) // InvertedDefaultColor + { + hc.Foreground = new SimpleHighlightingBrush(ConvertXtermColor(0)); + } + + if (bg <= 255) + { + hc.Background = new SimpleHighlightingBrush(ConvertXtermColor(bg)); + } + else if (bg == 256) // DefaultColor + { + hc.Background = new SimpleHighlightingBrush(ConvertXtermColor(0)); + } + else if (bg == 257) // InvertedDefaultColor + { + hc.Background = new SimpleHighlightingBrush(ConvertXtermColor(15)); + } + + var append = line > 0 && line < Terminal.Buffer.YBase + Terminal.Rows ? 1 : 0; + + var offset = (line * (Terminal.Cols + append)) + cell; + + ConsoleColor.SetHighlighting(offset, 1, hc); + } + } } + + private static Color ConvertXtermColor(int xtermColor) + { + return xtermColor switch + { + 0 => Color.FromRgb(0, 0, 0), + 1 => Color.FromRgb(128, 0, 0), + 2 => Color.FromRgb(0, 128, 0), + 3 => Color.FromRgb(128, 128, 0), + 4 => Color.FromRgb(0, 0, 128), + 5 => Color.FromRgb(128, 0, 128), + 6 => Color.FromRgb(0, 128, 128), + 7 => Color.FromRgb(192, 192, 192), + 8 => Color.FromRgb(128, 128, 128), + 9 => Color.FromRgb(255, 0, 0), + 10 => Color.FromRgb(0, 255, 0), + 11 => Color.FromRgb(255, 255, 0), + 12 => Color.FromRgb(0, 0, 255), + 13 => Color.FromRgb(255, 0, 255), + 14 => Color.FromRgb(0, 255, 255), + 15 => Color.FromRgb(255, 255, 255), + 16 => Color.FromRgb(0, 0, 0), + 17 => Color.FromRgb(0, 0, 95), + 18 => Color.FromRgb(0, 0, 135), + 19 => Color.FromRgb(0, 0, 175), + 20 => Color.FromRgb(0, 0, 215), + 21 => Color.FromRgb(0, 0, 255), + 22 => Color.FromRgb(0, 95, 0), + 23 => Color.FromRgb(0, 95, 95), + 24 => Color.FromRgb(0, 95, 135), + 25 => Color.FromRgb(0, 95, 175), + 26 => Color.FromRgb(0, 95, 215), + 27 => Color.FromRgb(0, 95, 255), + 28 => Color.FromRgb(0, 135, 0), + 29 => Color.FromRgb(0, 135, 95), + 30 => Color.FromRgb(0, 135, 135), + 31 => Color.FromRgb(0, 135, 175), + 32 => Color.FromRgb(0, 135, 215), + 33 => Color.FromRgb(0, 135, 255), + 34 => Color.FromRgb(0, 175, 0), + 35 => Color.FromRgb(0, 175, 95), + 36 => Color.FromRgb(0, 175, 135), + 37 => Color.FromRgb(0, 175, 175), + 38 => Color.FromRgb(0, 175, 215), + 39 => Color.FromRgb(0, 175, 255), + 40 => Color.FromRgb(0, 215, 0), + 41 => Color.FromRgb(0, 215, 95), + 42 => Color.FromRgb(0, 215, 135), + 43 => Color.FromRgb(0, 215, 175), + 44 => Color.FromRgb(0, 215, 215), + 45 => Color.FromRgb(0, 215, 255), + 46 => Color.FromRgb(0, 255, 0), + 47 => Color.FromRgb(0, 255, 95), + 48 => Color.FromRgb(0, 255, 135), + 49 => Color.FromRgb(0, 255, 175), + 50 => Color.FromRgb(0, 255, 215), + 51 => Color.FromRgb(0, 255, 255), + 52 => Color.FromRgb(95, 0, 0), + 53 => Color.FromRgb(95, 0, 95), + 54 => Color.FromRgb(95, 0, 135), + 55 => Color.FromRgb(95, 0, 175), + 56 => Color.FromRgb(95, 0, 215), + 57 => Color.FromRgb(95, 0, 255), + 58 => Color.FromRgb(95, 95, 0), + 59 => Color.FromRgb(95, 95, 95), + 60 => Color.FromRgb(95, 95, 135), + 61 => Color.FromRgb(95, 95, 175), + 62 => Color.FromRgb(95, 95, 215), + 63 => Color.FromRgb(95, 95, 255), + 64 => Color.FromRgb(95, 135, 0), + 65 => Color.FromRgb(95, 135, 95), + 66 => Color.FromRgb(95, 135, 135), + 67 => Color.FromRgb(95, 135, 175), + 68 => Color.FromRgb(95, 135, 215), + 69 => Color.FromRgb(95, 135, 255), + 70 => Color.FromRgb(95, 175, 0), + 71 => Color.FromRgb(95, 175, 95), + 72 => Color.FromRgb(95, 175, 135), + 73 => Color.FromRgb(95, 175, 175), + 74 => Color.FromRgb(95, 175, 215), + 75 => Color.FromRgb(95, 175, 255), + 76 => Color.FromRgb(95, 215, 0), + 77 => Color.FromRgb(95, 215, 95), + 78 => Color.FromRgb(95, 215, 135), + 79 => Color.FromRgb(95, 215, 175), + 80 => Color.FromRgb(95, 215, 215), + 81 => Color.FromRgb(95, 215, 255), + 82 => Color.FromRgb(95, 255, 0), + 83 => Color.FromRgb(95, 255, 95), + 84 => Color.FromRgb(95, 255, 135), + 85 => Color.FromRgb(95, 255, 175), + 86 => Color.FromRgb(95, 255, 215), + 87 => Color.FromRgb(95, 255, 255), + 88 => Color.FromRgb(135, 0, 0), + 89 => Color.FromRgb(135, 0, 95), + 90 => Color.FromRgb(135, 0, 135), + 91 => Color.FromRgb(135, 0, 175), + 92 => Color.FromRgb(135, 0, 215), + 93 => Color.FromRgb(135, 0, 255), + 94 => Color.FromRgb(135, 95, 0), + 95 => Color.FromRgb(135, 95, 95), + 96 => Color.FromRgb(135, 95, 135), + 97 => Color.FromRgb(135, 95, 175), + 98 => Color.FromRgb(135, 95, 215), + 99 => Color.FromRgb(135, 95, 255), + 100 => Color.FromRgb(135, 135, 0), + 101 => Color.FromRgb(135, 135, 95), + 102 => Color.FromRgb(135, 135, 135), + 103 => Color.FromRgb(135, 135, 175), + 104 => Color.FromRgb(135, 135, 215), + 105 => Color.FromRgb(135, 135, 255), + 106 => Color.FromRgb(135, 175, 0), + 107 => Color.FromRgb(135, 175, 95), + 108 => Color.FromRgb(135, 175, 135), + 109 => Color.FromRgb(135, 175, 175), + 110 => Color.FromRgb(135, 175, 215), + 111 => Color.FromRgb(135, 175, 255), + 112 => Color.FromRgb(135, 215, 0), + 113 => Color.FromRgb(135, 215, 95), + 114 => Color.FromRgb(135, 215, 135), + 115 => Color.FromRgb(135, 215, 175), + 116 => Color.FromRgb(135, 215, 215), + 117 => Color.FromRgb(135, 215, 255), + 118 => Color.FromRgb(135, 255, 0), + 119 => Color.FromRgb(135, 255, 95), + 120 => Color.FromRgb(135, 255, 135), + 121 => Color.FromRgb(135, 255, 175), + 122 => Color.FromRgb(135, 255, 215), + 123 => Color.FromRgb(135, 255, 255), + 124 => Color.FromRgb(175, 0, 0), + 125 => Color.FromRgb(175, 0, 95), + 126 => Color.FromRgb(175, 0, 135), + 127 => Color.FromRgb(175, 0, 175), + 128 => Color.FromRgb(175, 0, 215), + 129 => Color.FromRgb(175, 0, 255), + 130 => Color.FromRgb(175, 95, 0), + 131 => Color.FromRgb(175, 95, 95), + 132 => Color.FromRgb(175, 95, 135), + 133 => Color.FromRgb(175, 95, 175), + 134 => Color.FromRgb(175, 95, 215), + 135 => Color.FromRgb(175, 95, 255), + 136 => Color.FromRgb(175, 135, 0), + 137 => Color.FromRgb(175, 135, 95), + 138 => Color.FromRgb(175, 135, 135), + 139 => Color.FromRgb(175, 135, 175), + 140 => Color.FromRgb(175, 135, 215), + 141 => Color.FromRgb(175, 135, 255), + 142 => Color.FromRgb(175, 175, 0), + 143 => Color.FromRgb(175, 175, 95), + 144 => Color.FromRgb(175, 175, 135), + 145 => Color.FromRgb(175, 175, 175), + 146 => Color.FromRgb(175, 175, 215), + 147 => Color.FromRgb(175, 175, 255), + 148 => Color.FromRgb(175, 215, 0), + 149 => Color.FromRgb(175, 215, 95), + 150 => Color.FromRgb(175, 215, 135), + 151 => Color.FromRgb(175, 215, 175), + 152 => Color.FromRgb(175, 215, 215), + 153 => Color.FromRgb(175, 215, 255), + 154 => Color.FromRgb(175, 255, 0), + 155 => Color.FromRgb(175, 255, 95), + 156 => Color.FromRgb(175, 255, 135), + 157 => Color.FromRgb(175, 255, 175), + 158 => Color.FromRgb(175, 255, 215), + 159 => Color.FromRgb(175, 255, 255), + 160 => Color.FromRgb(215, 0, 0), + 161 => Color.FromRgb(215, 0, 95), + 162 => Color.FromRgb(215, 0, 135), + 163 => Color.FromRgb(215, 0, 175), + 164 => Color.FromRgb(215, 0, 215), + 165 => Color.FromRgb(215, 0, 255), + 166 => Color.FromRgb(215, 95, 0), + 167 => Color.FromRgb(215, 95, 95), + 168 => Color.FromRgb(215, 95, 135), + 169 => Color.FromRgb(215, 95, 175), + 170 => Color.FromRgb(215, 95, 215), + 171 => Color.FromRgb(215, 95, 255), + 172 => Color.FromRgb(215, 135, 0), + 173 => Color.FromRgb(215, 135, 95), + 174 => Color.FromRgb(215, 135, 135), + 175 => Color.FromRgb(215, 135, 175), + 176 => Color.FromRgb(215, 135, 215), + 177 => Color.FromRgb(215, 135, 255), + 178 => Color.FromRgb(215, 175, 0), + 179 => Color.FromRgb(215, 175, 95), + 180 => Color.FromRgb(215, 175, 135), + 181 => Color.FromRgb(215, 175, 175), + 182 => Color.FromRgb(215, 175, 215), + 183 => Color.FromRgb(215, 175, 255), + 184 => Color.FromRgb(215, 215, 0), + 185 => Color.FromRgb(215, 215, 95), + 186 => Color.FromRgb(215, 215, 135), + 187 => Color.FromRgb(215, 215, 175), + 188 => Color.FromRgb(215, 215, 215), + 189 => Color.FromRgb(215, 215, 255), + 190 => Color.FromRgb(215, 255, 0), + 191 => Color.FromRgb(215, 255, 95), + 192 => Color.FromRgb(215, 255, 135), + 193 => Color.FromRgb(215, 255, 175), + 194 => Color.FromRgb(215, 255, 215), + 195 => Color.FromRgb(215, 255, 255), + 196 => Color.FromRgb(255, 0, 0), + 197 => Color.FromRgb(255, 0, 95), + 198 => Color.FromRgb(255, 0, 135), + 199 => Color.FromRgb(255, 0, 175), + 200 => Color.FromRgb(255, 0, 215), + 201 => Color.FromRgb(255, 0, 255), + 202 => Color.FromRgb(255, 95, 0), + 203 => Color.FromRgb(255, 95, 95), + 204 => Color.FromRgb(255, 95, 135), + 205 => Color.FromRgb(255, 95, 175), + 206 => Color.FromRgb(255, 95, 215), + 207 => Color.FromRgb(255, 95, 255), + 208 => Color.FromRgb(255, 135, 0), + 209 => Color.FromRgb(255, 135, 95), + 210 => Color.FromRgb(255, 135, 135), + 211 => Color.FromRgb(255, 135, 175), + 212 => Color.FromRgb(255, 135, 215), + 213 => Color.FromRgb(255, 135, 255), + 214 => Color.FromRgb(255, 175, 0), + 215 => Color.FromRgb(255, 175, 95), + 216 => Color.FromRgb(255, 175, 135), + 217 => Color.FromRgb(255, 175, 175), + 218 => Color.FromRgb(255, 175, 215), + 219 => Color.FromRgb(255, 175, 255), + 220 => Color.FromRgb(255, 215, 0), + 221 => Color.FromRgb(255, 215, 95), + 222 => Color.FromRgb(255, 215, 135), + 223 => Color.FromRgb(255, 215, 175), + 224 => Color.FromRgb(255, 215, 215), + 225 => Color.FromRgb(255, 215, 255), + 226 => Color.FromRgb(255, 255, 0), + 227 => Color.FromRgb(255, 255, 95), + 228 => Color.FromRgb(255, 255, 135), + 229 => Color.FromRgb(255, 255, 175), + 230 => Color.FromRgb(255, 255, 215), + 231 => Color.FromRgb(255, 255, 255), + 232 => Color.FromRgb(8, 8, 8), + 233 => Color.FromRgb(18, 18, 18), + 234 => Color.FromRgb(28, 28, 28), + 235 => Color.FromRgb(38, 38, 38), + 236 => Color.FromRgb(48, 48, 48), + 237 => Color.FromRgb(58, 58, 58), + 238 => Color.FromRgb(68, 68, 68), + 239 => Color.FromRgb(78, 78, 78), + 240 => Color.FromRgb(88, 88, 88), + 241 => Color.FromRgb(98, 98, 98), + 242 => Color.FromRgb(108, 108, 108), + 243 => Color.FromRgb(118, 118, 118), + 244 => Color.FromRgb(128, 128, 128), + 245 => Color.FromRgb(138, 138, 138), + 246 => Color.FromRgb(148, 148, 148), + 247 => Color.FromRgb(158, 158, 158), + 248 => Color.FromRgb(168, 168, 168), + 249 => Color.FromRgb(178, 178, 178), + 250 => Color.FromRgb(188, 188, 188), + 251 => Color.FromRgb(198, 198, 198), + 252 => Color.FromRgb(208, 208, 208), + 253 => Color.FromRgb(218, 218, 218), + 254 => Color.FromRgb(228, 228, 228), + 255 => Color.FromRgb(238, 238, 238), + _ => throw new ArgumentOutOfRangeException(nameof(xtermColor), "Color code must be between 0 and 255."), + }; + } +} + +public struct TerminalSize +{ + public ushort Width { get; set; } + public ushort Height { get; set; } } diff --git a/src/KubeUI/ViewModels/Workloads/Pod/PodLogsViewModel.cs b/src/KubeUI/ViewModels/Workloads/Pod/PodLogsViewModel.cs index 032f14a7..0fff9108 100644 --- a/src/KubeUI/ViewModels/Workloads/Pod/PodLogsViewModel.cs +++ b/src/KubeUI/ViewModels/Workloads/Pod/PodLogsViewModel.cs @@ -2,8 +2,6 @@ using k8s.Models; using k8s; using KubeUI.Client; -using AvaloniaEdit; -using System.Reflection; namespace KubeUI.ViewModels; @@ -94,7 +92,7 @@ public async Task Connect() } catch (Exception ex) { - //to display notification + //todo display notification _logger.LogError(ex, "Unable to View Logs"); } } diff --git a/src/KubeUI/Views/Workloads/Pod/PodConsoleView.cs b/src/KubeUI/Views/Workloads/Pod/PodConsoleView.cs index 9006415a..f26d6106 100644 --- a/src/KubeUI/Views/Workloads/Pod/PodConsoleView.cs +++ b/src/KubeUI/Views/Workloads/Pod/PodConsoleView.cs @@ -5,6 +5,8 @@ using static AvaloniaEdit.TextMate.TextMate; using TextMateSharp.Grammars; using Avalonia.Markup.Xaml.MarkupExtensions; +using XtermSharp; +using AvaloniaEdit.Highlighting; namespace KubeUI.Views; @@ -59,95 +61,336 @@ protected override object Build(PodConsoleViewModel? vm) new Binding(nameof(PodConsoleViewModel.ContainerName)) ], StringFormat = "{0}/{1}/{2}" - }) + }), + //new Label() + // .Margin(0,0,4,0) + // .Content(new MultiBinding(){ + // Bindings = [ + // new Binding("Width"), + // new Binding("Height"), + // ], + // StringFormat = "{0}x{1}" + // }), + //new Label() + // .Margin(0,0,4,0) + // .Content(new MultiBinding(){ + // Bindings = [ + // new Binding("Terminal.Cols"), + // new Binding("Terminal.Rows"), + // ], + // StringFormat = "{0}x{1}" + // }) ]), - new TextEditor() - .Ref(out var editor) - .Row(1) - .Set(x => { - _textMateInstallation = editor.InstallTextMate(_registryOptions, false); - - x.Options.AllowScrollBelowDocument = false; - x.Options.ShowBoxForControlCharacters = false; - x.Options.EnableHyperlinks = false; - x.Options.EnableEmailHyperlinks = false; - x.TextArea.Caret.CaretBrush = Brushes.Transparent; - x.TextArea.Caret.Hide(); - }) - .OnTextChanged((e) => { - editor.ScrollToEnd(); - }) - .Document(@vm.Console, BindingMode.OneWay) - .FontFamily(new FontFamily("Consolas,Menlo,Monospace")) - .FontSize(14.0) - .FontWeight(FontWeight.Normal) - .IsReadOnly(true) - .ShowLineNumbers(false) - .Background(new DynamicResourceExtension("SystemAltHighColor")) - .HorizontalScrollBarVisibility(ScrollBarVisibility.Auto) - .VerticalScrollBarVisibility(ScrollBarVisibility.Visible) - .OnKeyUp((e) => { - if (DataContext is PodConsoleViewModel dc1) - { - if (e.KeyModifiers is KeyModifiers.Control) - { - if (e.Key == Key.C) - { - editor.Copy(); - return; - } - if (e.Key == Key.V) - { - _ = dc1.Paste(); - return; - } - } - - if (e.KeySymbol != null) - { - dc1.Send(e.KeySymbol); - } - else if (e.Key == Key.Up) - { - dc1.Send("\x1b[A"); - } - else if (e.Key == Key.Down) - { - dc1.Send("\x1b[B"); - } - else if (e.Key == Key.Left) - { - dc1.Send("\x1b[D"); - } - else if (e.Key == Key.Right) - { - dc1.Send("\x1b[C"); - } - else - { - _logger.LogInformation("Unmapped key: {0}", e.Key); - } - - e.Handled = true; - } - }) - .ContextMenu(new ContextMenu() - .Items([ - new MenuItem() - .OnClick((_) => editor.Copy()) - .Header(Assets.Resources.Action_Copy) - .InputGesture(new KeyGesture(Key.C, KeyModifiers.Control)) - .Icon(new PathIcon() { Data = (Geometry)Application.Current.FindResource("copy_regular") }), - new MenuItem() - .Command(vm.PasteCommand) - .Header(Assets.Resources.Action_Paste) - .InputGesture(new KeyGesture(Key.V, KeyModifiers.Control)) - .Icon(new PathIcon() { Data = (Geometry)Application.Current.FindResource("clipboard_paste_regular") }), - ]) - ), + new Grid() + .Children([ + + ]), + new TextEditor() + .Ref(out var editor) + .Row(1) + .Set(x => { + _textMateInstallation = editor.InstallTextMate(_registryOptions, false); + + x.Options.AllowScrollBelowDocument = false; + x.Options.ShowBoxForControlCharacters = false; + x.Options.EnableHyperlinks = false; + x.Options.EnableEmailHyperlinks = false; + + x.TextArea.OnKeyDown((e) => { + e.Handled = true; + }); + + x.TextArea.OnKeyUp((e) => { + if (DataContext is PodConsoleViewModel dc1) + { + if (e.KeyModifiers is KeyModifiers.Control) + { + switch (e.Key) + { + case Key.A: + dc1.Send(0x01); // Ctrl+A + break; + case Key.B: + dc1.Send(0x02); // Ctrl+B + break; + case Key.C: + dc1.Send(0x03); // Ctrl+C + break; + case Key.D: + dc1.Send(0x04); // Ctrl+D + break; + case Key.E: + dc1.Send(0x05); // Ctrl+E + break; + case Key.F: + dc1.Send(0x06); // Ctrl+F + break; + case Key.G: + dc1.Send(0x07); // Ctrl+G + break; + case Key.H: + dc1.Send(0x08); // Ctrl+H + break; + case Key.I: + dc1.Send(0x09); // Ctrl+I (Tab) + break; + case Key.J: + dc1.Send(0x0A); // Ctrl+J (Line Feed) + break; + case Key.K: + dc1.Send(0x0B); // Ctrl+K + break; + case Key.L: + dc1.Send(0x0C); // Ctrl+L + break; + case Key.M: + dc1.Send(0x0D); // Ctrl+M (Carriage Return) + break; + case Key.N: + dc1.Send(0x0E); // Ctrl+N + break; + case Key.O: + dc1.Send(0x0F); // Ctrl+O + break; + case Key.P: + dc1.Send(0x10); // Ctrl+P + break; + case Key.Q: + dc1.Send(0x11); // Ctrl+Q + break; + case Key.R: + dc1.Send(0x12); // Ctrl+R + break; + case Key.S: + dc1.Send(0x13); // Ctrl+S + break; + case Key.T: + dc1.Send(0x14); // Ctrl+T + break; + case Key.U: + dc1.Send(0x15); // Ctrl+U + break; + case Key.V: + _ = dc1.Paste(); + //dc1.Send(0x16); // Ctrl+V + break; + case Key.W: + dc1.Send(0x17); // Ctrl+W + break; + case Key.X: + dc1.Send(0x18); // Ctrl+X + break; + case Key.Y: + dc1.Send(0x19); // Ctrl+Y + break; + case Key.Z: + dc1.Send(0x1A); // Ctrl+Z + break; + case Key.D1: // Ctrl+1 + dc1.Send(0x31); // ASCII '1' + break; + case Key.D2: // Ctrl+2 + dc1.Send(0x32); // ASCII '2' + break; + case Key.D3: // Ctrl+3 + dc1.Send(0x33); // ASCII '3' + break; + case Key.D4: // Ctrl+4 + dc1.Send(0x34); // ASCII '4' + break; + case Key.D5: // Ctrl+5 + dc1.Send(0x35); // ASCII '5' + break; + case Key.D6: // Ctrl+6 + dc1.Send(0x36); // ASCII '6' + break; + case Key.D7: // Ctrl+7 + dc1.Send(0x37); // ASCII '7' + break; + case Key.D8: // Ctrl+8 + dc1.Send(0x38); // ASCII '8' + break; + case Key.D9: // Ctrl+9 + dc1.Send(0x39); // ASCII '9' + break; + case Key.D0: // Ctrl+0 + dc1.Send(0x30); // ASCII '0' + break; + case Key.OemOpenBrackets: // Ctrl+[ + dc1.Send(0x1B); + break; + case Key.OemBackslash: // Ctrl+\ + dc1.Send(0x1C); + break; + case Key.OemCloseBrackets: // Ctrl+] + dc1.Send(0x1D); + break; + case Key.Space: // Ctrl+Space + dc1.Send(0x00); + break; + case Key.OemMinus: // Ctrl+_ + dc1.Send(0x1F); + break; + default: + dc1.Send(e.KeySymbol); + break; + } + } + if (e.KeyModifiers is KeyModifiers.Alt) + { + dc1.Send(0x1B); + dc1.Send(e.KeySymbol); + } + else + { + switch (e.Key) { + case Key.Escape: + dc1.Send(0x1b); + break; + case Key.Space: + dc1.Send(0x20); + break; + case Key.Delete: + dc1.Send(EscapeSequences.CmdDelKey); + break; + case Key.Back: + dc1.Send(0x7f); + break; + case Key.Up: + dc1.Send(vm.Terminal.ApplicationCursor ? EscapeSequences.MoveUpApp : EscapeSequences.MoveUpNormal); + break; + case Key.Down: + dc1.Send(vm.Terminal.ApplicationCursor ? EscapeSequences.MoveDownApp : EscapeSequences.MoveDownNormal); + break; + case Key.Left: + dc1.Send(vm.Terminal.ApplicationCursor ? EscapeSequences.MoveLeftApp : EscapeSequences.MoveLeftNormal); + break; + case Key.Right: + dc1.Send(vm.Terminal.ApplicationCursor ? EscapeSequences.MoveRightApp : EscapeSequences.MoveRightNormal); + break; + case Key.PageUp: + if (vm.Terminal.ApplicationCursor) + { + dc1.Send(EscapeSequences.CmdPageUp); + } else { + // TODO: view should scroll one page up. + } + break; + case Key.PageDown: + if (vm.Terminal.ApplicationCursor) + { + dc1.Send(EscapeSequences.CmdPageDown); + } else { + // TODO: view should scroll one page down + } + break; + case Key.Home: + dc1.Send(vm.Terminal.ApplicationCursor ? EscapeSequences.MoveHomeApp : EscapeSequences.MoveHomeNormal); + break; + case Key.End: + dc1.Send(vm.Terminal.ApplicationCursor ? EscapeSequences.MoveEndApp : EscapeSequences.MoveEndNormal); + break; + case Key.Insert: + break; + case Key.F1: + dc1.Send(EscapeSequences.CmdF [0]); + break; + case Key.F2: + dc1.Send(EscapeSequences.CmdF [1]); + break; + case Key.F3: + dc1.Send(EscapeSequences.CmdF [2]); + break; + case Key.F4: + dc1.Send(EscapeSequences.CmdF [3]); + break; + case Key.F5: + dc1.Send(EscapeSequences.CmdF [4]); + break; + case Key.F6: + dc1.Send(EscapeSequences.CmdF [5]); + break; + case Key.F7: + dc1.Send(EscapeSequences.CmdF [6]); + break; + case Key.F8: + dc1.Send(EscapeSequences.CmdF [7]); + break; + case Key.F9: + dc1.Send(EscapeSequences.CmdF [8]); + break; + case Key.F10: + dc1.Send(EscapeSequences.CmdF [9]); + break; + case Key.OemBackTab: + dc1.Send(EscapeSequences.CmdBackTab); + break; + case Key.Tab: + dc1.Send(EscapeSequences.CmdTab); + break; + default: + dc1.Send(e.KeySymbol); + break; + } + } + + e.Handled = true; + } + }); + + // Add Coloring + x.TextArea.TextView.LineTransformers.Add(new RichTextColorizer(vm.ConsoleColor)); + + // Remove Caret keyboard navigation + foreach (var command in x.TextArea.DefaultInputHandler.CaretNavigation.CommandBindings.Where(x => x.Command.Gesture != null).ToList()) + { + x.TextArea.DefaultInputHandler.CaretNavigation.CommandBindings.Remove(command); + } + + x.TextArea.DefaultInputHandler.CaretNavigation.KeyBindings.Clear(); + }) + .OnTextChanged((e) => { + editor.TextArea.Caret.Line = vm.Terminal.Buffer.Y - vm.Terminal.Buffer.YDisp + vm.Terminal.Buffer.YBase + 1; + editor.TextArea.Caret.Column = vm.Terminal.Buffer.X + 1; + }) + .Document(@vm.Console, BindingMode.OneWay) + .FontFamily(@vm.FontFamily) + .FontSize(@vm.FontSize) + .IsReadOnly(true) + .ShowLineNumbers(false) + .Background(new DynamicResourceExtension("SystemAltHighColor")) + .HorizontalScrollBarVisibility(ScrollBarVisibility.Disabled) + .VerticalScrollBarVisibility(ScrollBarVisibility.Disabled) + .ContextMenu(new ContextMenu() + .Items([ + new MenuItem() + .OnClick((_) => editor.Copy()) + .Header(Assets.Resources.Action_Copy) + .Icon(new PathIcon() { Data = (Geometry)Application.Current.FindResource("copy_regular") }), + new MenuItem() + .Command(vm.PasteCommand) + .Header(Assets.Resources.Action_Paste) + .InputGesture(new KeyGesture(Key.V, KeyModifiers.Control)) + .Icon(new PathIcon() { Data = (Geometry)Application.Current.FindResource("clipboard_paste_regular") }), + ]) + ), ]); } + protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e) + { + base.OnAttachedToVisualTree(e); + + try + { + ViewModel.Connect().GetAwaiter(); + } + catch (Exception ex) + { + _logger.LogError(ex, "Error connecting to Console1"); + } + } + protected override void OnUnloaded(RoutedEventArgs e) { base.OnUnloaded(e); diff --git a/src/KubeUI/Views/Workloads/Pod/PodLogsView.cs b/src/KubeUI/Views/Workloads/Pod/PodLogsView.cs index 00a2b113..adb73068 100644 --- a/src/KubeUI/Views/Workloads/Pod/PodLogsView.cs +++ b/src/KubeUI/Views/Workloads/Pod/PodLogsView.cs @@ -94,7 +94,7 @@ protected override object Build(PodLogsViewModel? vm) }; }) .Document(@vm.Logs, BindingMode.OneWay) - .FontFamily(new FontFamily("Consolas,Menlo,Monospace")) + .FontFamily(new FontFamily("Cascadia Mono")) .FontSize(14.0) .FontWeight(FontWeight.Normal) .IsReadOnly(true) diff --git a/src/XtermSharp/AssemblyInfo.cs b/src/XtermSharp/AssemblyInfo.cs new file mode 100644 index 00000000..1a8a6e86 --- /dev/null +++ b/src/XtermSharp/AssemblyInfo.cs @@ -0,0 +1 @@ +[assembly: System.Runtime.CompilerServices.InternalsVisibleToAttribute ("Tests")] diff --git a/src/XtermSharp/Buffer.cs b/src/XtermSharp/Buffer.cs new file mode 100644 index 00000000..7cde2eab --- /dev/null +++ b/src/XtermSharp/Buffer.cs @@ -0,0 +1,436 @@ +using System; +using System.Collections; +using System.Diagnostics; +using NStack; + +namespace XtermSharp { + /// + /// This class represents a terminal buffer (an internal state of the terminal), where text contents, cursor and scroll position are stored. + /// + [DebuggerDisplay ("({X},{Y}) YD={YDisp}:YB={YBase} Scroll={ScrollBottom,ScrollTop}")] + public class Buffer { + CircularList lines; + int scrollTop; + int scrollBottom; + + /// + /// Initializes a new instance of the class. + /// + /// The terminal the Buffer will belong to. + /// Whether the buffer should respect the scrollback of the terminal. + public Buffer (Terminal terminal, bool hasScrollback = true) + { + rows = terminal.Rows; + cols = terminal.Cols; + MarginLeft = 0; + MarginRight = cols - 1; + Terminal = terminal; + this.hasScrollback = hasScrollback; + Clear (); + } + + /// + /// Gets the number of columns of the buffer + /// + public int Cols => cols; + + /// + /// Gets the number of rows of the buffer + /// + public int Rows => rows; + + /// + /// Gets or sets the top scrolling region in the buffer when Origin Mode is turned on + /// + public int ScrollTop { + get { + return scrollTop; + } + set { + if(value >= 0) { + scrollTop = value; + } + } + } + + /// + /// Gets or sets the top scrolling region in the buffer when Origin Mode is turned on + /// + public int ScrollBottom { + get { + return scrollBottom; + } + set { + if (value < 0) + throw new ArgumentException ("Scroll bottom cannot be less than zero", nameof(ScrollBottom)); + + scrollBottom = value; + } + } + + /// + /// Gets or sets the left margin, 0 based + /// + public int MarginLeft { get; private set; } + + /// + /// Gets or sets the right margin, 0 based + /// + public int MarginRight { get; private set; } + + public int YDisp, YBase; + public int X; + int y; + public int Y { + get => y; + set { + if (value < 0 || value > Terminal.Rows - 1) + throw new ArgumentException ("Y cannot be outside the bounds of the terminal rows", nameof(Y)); + else + y = value; + } + } + BitArray tabStops; + public int SavedX, SavedY, SavedAttr = CharData.DefaultAttr; + public Terminal Terminal { get; private set; } + bool hasScrollback; + int cols, rows; + + /// + /// Gets a value indicating whether this has scrollback. + /// + /// true if has scrollback; otherwise, false. + public bool HasScrollback => hasScrollback && lines.MaxLength > Terminal.Rows; + + public CircularList Lines => lines; + + // Gets the correct buffer length based on the rows provided, the terminal's + // scrollback and whether this buffer is flagged to have scrollback or not. + int getCorrectBufferLength (int rows) + { + if (!hasScrollback) + return rows; + var correct = rows + Terminal.Options.Scrollback ?? 0; + return correct > Int32.MaxValue ? Int32.MaxValue : correct; + } + + /// + /// Returns the CharData at the specified position in the buffer + /// + public CharData GetChar (int col, int row) + { + var bufferRow = lines [row]; + if (bufferRow == null) { + return CharData.Null; + } + + if (col >= bufferRow.Length || col < 0) + return CharData.Null; + + return bufferRow [col]; + } + + public BufferLine GetBlankLine (int attribute, bool isWrapped = false) + { + var cd = new CharData (attribute); + + return new BufferLine (Terminal.Cols, cd, isWrapped); + } + + /// + /// Clears the buffer to it's initial state, discarding all previous data. + /// + public void Clear () + { + YDisp = 0; + YBase = 0; + X = 0; + Y = 0; + lines = new CircularList (getCorrectBufferLength (Terminal.Rows)); + ScrollTop = 0; + ScrollBottom = Terminal.Rows - 1; + SetupTabStops (); + } + + public bool IsCursorInViewport { + get { + var absoluteY = YBase + Y; + var relativeY = absoluteY - YDisp; + return (relativeY >= 0 && relativeY < Terminal.Rows); + } + } + + /// + /// Sets the left and right margins + /// + public void SetMargins (int left, int right) + { + left = Math.Min (left, right); + MarginLeft = left; + MarginRight = right; + } + + /// + /// Saves the cursor position + /// + public void SaveCursor (int curAttr) + { + SavedX = X; + SavedY = Y; + SavedAttr = curAttr; + } + + /// + /// Restores the cursor + /// + public int RestoreCursor () + { + X = SavedX; + Y = SavedY; + return SavedAttr; + } + + /// + /// Fills the buffer's viewport with blank lines. + /// + public void FillViewportRows (int? attribute = null) + { + // TODO: limitation in original, this does not cope with partial fills, it is either zero or nothing + if (lines.Length != 0) + return; + var attr = attribute.HasValue ? attribute.Value : CharData.DefaultAttr; + for (int i = Terminal.Rows; i > 0; i--) + lines.Push (GetBlankLine (attr)); + } + + bool IsReflowEnabled => hasScrollback;// && Terminal.Options.WindowsMode; + + /// + /// Resize the buffer, adjusting its data accordingly + /// + /// The resize. + /// New columns. + /// New rows. + public void Resize (int newCols, int newRows) + { + var newMaxLength = getCorrectBufferLength (newRows); + if (newMaxLength > lines.MaxLength) { + lines.MaxLength = newMaxLength; + } + + if (this.lines.Length > 0) { + // Deal with columns increasing (reducing needs to happen after reflow) + if (cols < newCols) { + for (int i = 0; i < lines.MaxLength; i++) { + lines [i]?.Resize (newCols, CharData.Null); + } + } + + // Resize rows in both directions as needed + int addToY = 0; + if (rows < newRows) { + for (int y = rows; y < newRows; y++) { + if (lines.Length < newRows + YBase) { + //if (Terminal.Options.windowsMode) { + // // Just add the new missing rows on Windows as conpty reprints the screen with it's + // // view of the world. Once a line enters scrollback for conpty it remains there + // lines.Push (new BufferLine (newCols, CharData.Null)); + //} else { + { + if (YBase > 0 && lines.Length <= YBase + Y + addToY + 1) { + // There is room above the buffer and there are no empty elements below the line, + // scroll up + YBase--; + addToY++; + if (YDisp > 0) { + // Viewport is at the top of the buffer, must increase downwards + YDisp--; + } + } else { + // Add a blank line if there is no buffer left at the top to scroll to, or if there + // are blank lines after the cursor + lines.Push (new BufferLine (newCols, CharData.Null)); + } + } + } + } + } else { // (this._rows >= newRows) + for (int y = rows; y > newRows; y--) { + if (lines.Length > newRows + YBase) { + if (lines.Length > YBase + this.y + 1) { + // The line is a blank line below the cursor, remove it + lines.Pop (); + } else { + // The line is the cursor, scroll down + YBase++; + YDisp++; + } + } + } + } + + // Reduce max length if needed after adjustments, this is done after as it + // would otherwise cut data from the bottom of the buffer. + if (newMaxLength < lines.MaxLength) { + // Trim from the top of the buffer and adjust ybase and ydisp. + int amountToTrim = lines.Length - newMaxLength; + if (amountToTrim > 0) { + lines.TrimStart (amountToTrim); + YBase = Math.Max (YBase - amountToTrim, 0); + YDisp = Math.Max (YDisp - amountToTrim, 0); + SavedY = Math.Max (SavedY - amountToTrim, 0); + } + + lines.MaxLength = newMaxLength; + } + + // Make sure that the cursor stays on screen + X = Math.Min (X, newCols - 1); + Y = Math.Min (Y, newRows - 1); + if (addToY != 0) { + Y += addToY; + } + + SavedX = Math.Min (SavedX, newCols - 1); + + ScrollTop = 0; + } + + ScrollBottom = newRows - 1; + + if (IsReflowEnabled) { + this.Reflow (newCols, newRows); + + // Trim the end of the line off if cols shrunk + if (cols > newCols) { + for (int i = 0; i < lines.MaxLength; i++) { + lines [i]?.Resize (newCols, CharData.Null); + } + } + } + + rows = newRows; + cols = newCols; + if (MarginRight > newCols - 1) + MarginRight = newCols - 1; + if (MarginLeft > MarginRight) + MarginLeft = MarginRight; + } + + /// + /// Translates a buffer line to a string, with optional start and end columns. Wide characters will count as two columns in the resulting string. This + /// function is useful for getting the actual text underneath the raw selection position. + /// + /// The buffer line to string. + /// The line being translated. + /// If set to true trim whitespace to the right. + /// The column to start at. + /// The column to end at. + public ustring TranslateBufferLineToString (int lineIndex, bool trimRight, int startCol = 0, int endCol = -1) + { + try { + var line = lines [lineIndex]; + + return line.TranslateToString (trimRight, startCol, endCol); + } catch ( Exception ex) + { + return ustring.Empty; + } + } + + /// + /// Setups the tab stops. + /// + /// Index to start setting tabs stops from. + public void SetupTabStops (int index = -1) + { + if (index != -1 && tabStops != null) { + tabStops.Length = cols; + + var from = Math.Min (index, cols - 1); + if (!tabStops [from]) + index = PreviousTabStop (from); + } else { + tabStops = new BitArray (cols); + index = 0; + } + + int tabStopWidth = Terminal.Options.TabStopWidth ?? 8; + for (int i = index; i < cols; i += tabStopWidth) + tabStops [i] = true; + } + + public void TabSet (int pos) + { + if (pos < tabStops.Length) + tabStops [pos] = true; + } + + public void ClearStop (int pos) + { + if (pos < tabStops.Length) + tabStops [pos] = false; + } + + public void ClearTabStops () + { + tabStops = new BitArray (tabStops.Count); + } + + /// + /// Move the cursor to the previous tab stop from the given position (default is current). + /// + /// The tab stop. + /// The position to move the cursor to the previous tab stop. + public int PreviousTabStop (int index = -1) + { + if (index == -1) + index = X; + while (index > 0 && !tabStops [--index]) + ; + + return index >= Cols ? Cols - 1 : index; + } + + /// + /// Move the cursor one tab stop forward from the given position (default is current). + /// + /// The tab stop. + /// The position to move the cursor one tab stop forward. + public int NextTabStop (int index = -1) + { + // Users marginMode because apparently for tabs, there is no need to have originMode set + var limit = Terminal.MarginMode ? MarginRight : (Cols - 1); + if (index == -1) + index = X; + + do { + index++; + if (index > limit) + break; + + if (tabStops [index]) + break; + } while (index < limit); + + return index >= limit ? limit : index; + } + + void Reflow (int newCols, int newRows) + { + if (cols == newCols) { + return; + } + + // Iterate through rows, ignore the last one as it cannot be wrapped + ReflowStrategy strategy; + if (newCols > cols) { + strategy = new ReflowWider (this); + } else { + strategy = new ReflowNarrower (this); + } + + strategy.Reflow (newCols, newRows, cols, rows); + } + } +} diff --git a/src/XtermSharp/BufferLine.cs b/src/XtermSharp/BufferLine.cs new file mode 100644 index 00000000..02d22dc0 --- /dev/null +++ b/src/XtermSharp/BufferLine.cs @@ -0,0 +1,197 @@ +// +// Note: does not handle combined, as this code uses Runes, rather than Utf16 encoded chars +// +using System; +using System.Collections.Generic; +using System.Diagnostics; +using NStack; + +namespace XtermSharp { + [DebuggerDisplay ("Line: {DebuggerDisplay}")] + public class BufferLine { + CharData [] data = Array.Empty (); + public int Length => data.Length; + public bool IsWrapped; + + public BufferLine (int cols, CharData? fillCharData, bool isWrapped = false) + { + var fill = fillCharData ?? CharData.Null; + + data = new CharData [cols]; + for (int i = 0; i < cols; i++) + data [i] = fill; + this.IsWrapped = isWrapped; + } + + public BufferLine (BufferLine other) + { + data = new CharData [other.data.Length]; + other.data.CopyTo (data, 0); + IsWrapped = other.IsWrapped; + } + + public CharData this [int idx] { + get => data [idx]; + set { + data [idx] = value; + } + } + + public int GetWidth (int index) => data [index].Width; + + /** + * Test whether contains any chars. + * Basically an empty has no content, but other cells might differ in FG/BG + * from real empty cells. + * */ + // TODO: not sue this is completely right + public bool HasContent (int index) => !data [index].IsNullChar() || data [index].Attribute != CharData.DefaultAttr; + + public bool HasAnyContent() + { + for (int i = 0; i < data.Length; i++) { + if (HasContent (i)) return true; + } + + return false; + } + + string DebuggerDisplay { + get { + return TranslateToString (true, 0, -1).ToString (); + } + } + + public void InsertCells (int pos, int n, int rightMargin, CharData fillCharData) + { + var len = Math.Min (rightMargin + 1, Length); + pos = pos % len; + if (n < len - pos) { + for (var i = len - pos - n - 1; i >= 0; --i) + data [pos + n + i] = data [pos + i]; + for (var i = 0; i < n; i++) + data [pos + i] = fillCharData; + } else { + for (var i = pos; i < len; ++i) + data [i] = fillCharData; + } + } + + public void DeleteCells (int pos, int n, int rightMargin, CharData fillCharData) + { + var len = Math.Min(rightMargin + 1, Length); + pos %= len; + if (n < len - pos) { + for (var i = 0; i < len - pos - n; ++i) + data [pos + i] = this [pos + n + i]; + for (var i = len - n; i < len; ++i) + data [i] = fillCharData; + } else { + for (var i = pos; i < len; ++i) + data [i] = fillCharData; + } + } + + public void ReplaceCells (int start, int end, CharData fillCharData) + { + var len = Length; + + while (start < end && start < len) + data [start++] = fillCharData; + } + + public void Resize (int cols, CharData fillCharData) + { + var len = Length; + if (cols == len) + return; + + if (cols > len) { + var newData = new CharData [cols]; + if (len > 0) + data.CopyTo (newData, 0); + data = newData; + for (int i = len; i < cols; i++) + data [i] = fillCharData; + } else { + if (cols > 0) { + var newData = new CharData [cols]; + Array.Copy (data, newData, cols); + data = newData; + } else { + data = Array.Empty (); + } + } + } + + /// + /// Fills the line with fillCharData values + /// + public void Fill (CharData fillCharData) + { + var len = Length; + for (int i = 0; i < len; i++) + data [i] = fillCharData; + } + + /// + /// Fills the line with len fillCharData values from the given atCol + /// + public void Fill (CharData fillCharData, int atCol, int len) + { + for (int i = 0; i < len; i++) + data [atCol + i] = fillCharData; + } + + public void CopyFrom (BufferLine line) + { + if (data.Length != line.Length) + data = new CharData [line.Length]; + + line.data.CopyTo (data, 0); + + IsWrapped = line.IsWrapped; + } + + /// + /// Copies a subrange the given source line into the current line + /// + public void CopyFrom (BufferLine source, int sourceCol, int destCol, int len) + { + Array.Copy (source.data, sourceCol, data, destCol, len); + } + + public int GetTrimmedLength () + { + for (int i = data.Length - 1; i >= 0; --i) + if (!data [i].IsNullChar()) { + int width = 0; + for (int j = 0; j <= i; j++) + width += data [i].Width; + return width; + } + return 0; + } + + public void CopyCellsFrom (BufferLine src, int srcCol, int dstCol, int len) + { + Array.Copy (src.data, srcCol, data, dstCol, len); + } + + public ustring TranslateToString (bool trimRight = false, int startCol = 0, int endCol = -1) + { + if (endCol == -1) + endCol = data.Length; + if (trimRight) { + // make sure endCol is not before startCol if we set it to the trimmed length + endCol = Math.Max (Math.Min (endCol, GetTrimmedLength ()), startCol); + } + + Rune [] runes = new Rune [endCol - startCol]; + for (int i = startCol; i < endCol; i++) + runes [i - startCol] = data [i].Rune; + + return ustring.Make (runes); + } + } +} diff --git a/src/XtermSharp/BufferSet.cs b/src/XtermSharp/BufferSet.cs new file mode 100644 index 00000000..e0dedce9 --- /dev/null +++ b/src/XtermSharp/BufferSet.cs @@ -0,0 +1,104 @@ +// +// At: 857ae4b702b17381f6b862909a3570a6c3ab30b4 +// +using System; +namespace XtermSharp { + + /// + /// The BufferSet represents the set of two buffers used by xterm terminals (normal and alt) and + /// provides also utilities for working with them. + /// + public class BufferSet { + public Buffer Normal { get; private set; } + public Buffer Alt { get; private set; } + public Buffer Active { get; private set; } + + public BufferSet (Terminal terminal) + { + Normal = new Buffer (terminal, hasScrollback: true); + Normal.FillViewportRows (); + + // The alt buffer should never have scrollback. + // See http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-The-Alternate-Screen-Buffer + Alt = new Buffer (terminal, hasScrollback: false); + + Active = Normal; + SetupTabStops (); + } + + /// + /// Gets a value indicating whether the active buffer is the alternate buffer + /// + public bool IsAlternateBuffer => Active == Alt; + + /// + /// Raised when a buffer is activated, the parameters is the buffer that was activated and the second parameter is the Inactive buffer. + /// + public event Action Activated; + + /// + /// Sets the normal Buffer of the BufferSet as its currently active Buffer + /// + public void ActivateNormalBuffer (bool clearAlt) + { + if (Active == Normal) + return; + + Normal.X = Alt.X; + Normal.Y = Alt.Y; + + // The alt buffer should always be cleared when we switch to the normal + // buffer. This frees up memory since the alt buffer should always be new + // when activated. + + if (clearAlt) { + Alt.Clear (); + } + + Active = Normal; + Activated?.Invoke (Normal, Alt); + } + + /// + /// Sets the alt Buffer of the BufferSet as its currently active Buffer + /// + /// Attribute to fill the screen with + public void ActivateAltBuffer (int? fillAttr) + { + if (Active == Alt) + return; + Alt.X = Normal.X; + Alt.Y = Normal.Y; + // Since the alt buffer is always cleared when the normal buffer is + // activated, we want to fill it when switching to it. + + Alt.FillViewportRows (fillAttr); + Active = Alt; + if (Activated != null) + Activated (Alt, Normal); + } + + /// + /// Resizes both normal and alt buffers, adjusting their data accordingly. + /// + /// The resize. + /// The new number of columns. + /// The new number of rows. + public void Resize (int newColumns, int newRows) + { + Normal.Resize (newColumns, newRows); + Alt.Resize (newColumns, newRows); + } + + /// + /// Setups the tab stops. + /// + /// The index to start setting up tab stops from, or -1 to do it from the start. + public void SetupTabStops (int index = -1) + { + Normal.SetupTabStops (index); + Alt.SetupTabStops (index); + } + + } +} diff --git a/src/XtermSharp/CharData.cs b/src/XtermSharp/CharData.cs new file mode 100644 index 00000000..8db879ce --- /dev/null +++ b/src/XtermSharp/CharData.cs @@ -0,0 +1,75 @@ +using System; +using System.Diagnostics; + +namespace XtermSharp { + // MIGUEL TODO: + // The original code used Rune + Code, but it really makes no sense to keep those separate, excpt for null that has a + // zero-width thing for code 0. + [DebuggerDisplay("[CharData (Attr={Attribute},Rune={Rune},W={Width},Code={Code})]")] + public struct CharData { + public int Attribute; + public Rune Rune; + public int Width; + public int Code; + + // ((int)flags << 18) | (fg << 9) | bg; + + public const int DefaultAttr = Renderer.DefaultColor << 9 | (256 << 0); + public const int InvertedAttr = Renderer.InvertedDefaultColor << 9 | (256 << 0) | Renderer.InvertedDefaultColor; + + public static CharData Null = new CharData (DefaultAttr, '\u0200', 1, 0); + public static CharData WhiteSpace = new CharData (DefaultAttr, ' ', 1, 32); + public static CharData LeftBrace = new CharData (DefaultAttr, '{', 1, 123); + public static CharData RightBrace = new CharData (DefaultAttr, '}', 1, 125); + public static CharData LeftBracket = new CharData (DefaultAttr, '[', 1, 91); + public static CharData RightBracket = new CharData (DefaultAttr, ']', 1, 93); + public static CharData LeftParenthesis = new CharData (DefaultAttr, '(', 1, 40); + public static CharData RightParenthesis = new CharData (DefaultAttr, ')', 1, 41); + public static CharData Period = new CharData (DefaultAttr, '.', 1, 46); + + public CharData (int attribute, char rune, int width) : this(attribute, rune, width, rune) + { + } + + public CharData (int attribute, char rune, int width, int code) + { + Attribute = attribute; + Rune = rune; + Width = width; + Code = code; + } + + // Returns an empty CharData with the specified attribute + public CharData (int attribute) + { + Attribute = attribute; + Rune = '\u0200'; + Width = 1; + Code = 0; + } + + /// + /// Returns true if this CharData matches the given Rune, irrespective of character attributes + /// + public bool MatchesRune(Rune rune) + { + return rune == Rune; + } + + /// + /// Returns true if this CharData matches the given Rune, irrespective of character attributes + /// + public bool MatchesRune (CharData chr) + { + return Rune == chr.Rune; + } + + /// + /// returns true if this CharData matches Null or has a code of 0 + /// + public bool IsNullChar() + { + return Rune == Null.Rune || Code == 0; + } + } +} diff --git a/src/XtermSharp/CharSets.cs b/src/XtermSharp/CharSets.cs new file mode 100644 index 00000000..5b11fbe2 --- /dev/null +++ b/src/XtermSharp/CharSets.cs @@ -0,0 +1,260 @@ +using System; +using System.Collections.Generic; + +namespace XtermSharp { + public class CharSets { + public static Dictionary> All; + + // This is the "B" charset, null + public static Dictionary Default = null; + + static CharSets () + { + All = new Dictionary> (); + // + // DEC Special Character and Line Drawing Set. + // Reference: http://vt100.net/docs/vt102-ug/table5-13.html + // A lot of curses apps use this if they see TERM=xterm. + // testing: echo -e '\e(0a\e(B' + // The xterm output sometimes seems to conflict with the + // reference above. xterm seems in line with the reference + // when running vttest however. + // The table below now uses xterm's output from vttest. + // + All [(byte)'0'] = new Dictionary () { + { (byte) '`', "\u25c6"}, // '◆' + { (byte) 'a', "\u2592"}, // '▒' + { (byte) 'b', "\u2409"}, // [ht] + { (byte) 'c', "\u240c"}, // [ff] + { (byte) 'd', "\u240d"}, // [cr] + { (byte) 'e', "\u240a"}, // [lf] + { (byte) 'f', "\u00b0"}, // '°' + { (byte) 'g', "\u00b1"}, // '±' + { (byte) 'h', "\u2424"}, // [nl] + { (byte) 'i', "\u240b"}, // [vt] + { (byte) 'j', "\u2518"}, // '┘' + { (byte) 'k', "\u2510"}, // '┐' + { (byte) 'l', "\u250c"}, // '┌' + { (byte) 'm', "\u2514"}, // '└' + { (byte) 'n', "\u253c"}, // '┼' + { (byte) 'o', "\u23ba"}, // '⎺' + { (byte) 'p', "\u23bb"}, // '⎻' + { (byte) 'q', "\u2500"}, // '─' + { (byte) 'r', "\u23bc"}, // '⎼' + { (byte) 's', "\u23bd"}, // '⎽' + { (byte) 't', "\u251c"}, // '├' + { (byte) 'u', "\u2524"}, // '┤' + { (byte) 'v', "\u2534"}, // '┴' + { (byte) 'w', "\u252c"}, // '┬' + { (byte) 'x', "\u2502"}, // '│' + { (byte) 'y', "\u2264"}, // '≤' + { (byte) 'z', "\u2265"}, // '≥' + { (byte) '{', "\u03c0"}, // 'π' + { (byte) '|', "\u2260"}, // '≠' + { (byte) '}', "\u00a3"}, // '£' + { (byte) '~', "\u00b7"} // '·' + }; + + // (DEC Alternate character ROM special graphics) + All [(byte)'2'] = All [(byte)'0']; + + /** + * British character set + * ESC (A + * Reference: http://vt100.net/docs/vt220-rm/table2-5.html + */ + All [(byte)'A'] = new Dictionary { + {(byte) '#', "£"} + }; + + /** + * United States character set + * ESC (B + */ + All [(byte)'B'] = null; + + /** + * Dutch character set + * ESC (4 + * Reference: http://vt100.net/docs/vt220-rm/table2-6.html + */ + All [(byte)'4'] = new Dictionary { + { (byte) '#', "£"}, + { (byte) '@', "¾"}, + { (byte) '[', "ij"}, + { (byte) '\\', "½"}, + { (byte) ']', "|"}, + { (byte) '{', "¨"}, + { (byte) '|', "f"}, + { (byte) '}', "¼"}, + { (byte) '~', "´"} + }; + + /** + * Finnish character set + * ESC (C or ESC (5 + * Reference: http://vt100.net/docs/vt220-rm/table2-7.html + */ + All [(byte)'C'] = + All [(byte)'5'] = new Dictionary { + { (byte) '[', "Ä"}, + { (byte) '\\', "Ö"}, + { (byte) ']', "Å"}, + { (byte) '^', "Ü"}, + { (byte) '`', "é"}, + { (byte) '{', "ä"}, + { (byte) '|', "ö"}, + { (byte) '}', "å"}, + { (byte) '~', "ü"} + }; + + /** + * French character set + * ESC (R + * Reference: http://vt100.net/docs/vt220-rm/table2-8.html + */ + All [(byte)'R'] = new Dictionary { + { (byte) '#', "£"}, + { (byte) '@', "à"}, + { (byte) '[', "°"}, + { (byte) '\\', "ç"}, + { (byte) ']', "§"}, + { (byte) '{', "é"}, + { (byte) '|', "ù"}, + { (byte) '}', "è"}, + { (byte) '~', "¨"} + }; + + /** + * French Canadian character set + * ESC (Q + * Reference: http://vt100.net/docs/vt220-rm/table2-9.html + */ + All [(byte)'Q'] = new Dictionary { + { (byte) '@', "à"}, + { (byte) '[', "â"}, + { (byte) '\\', "ç"}, + { (byte) ']', "ê"}, + { (byte) '^', "î"}, + { (byte) '`', "ô"}, + { (byte) '{', "é"}, + { (byte) '|', "ù"}, + { (byte) '}', "è"}, + { (byte) '~', "û"} + }; + + /** + * German character set + * ESC (K + * Reference: http://vt100.net/docs/vt220-rm/table2-10.html + */ + All [(byte)'K'] = new Dictionary { + { (byte) '@', "§"}, + { (byte) '[', "Ä"}, + { (byte) '\\', "Ö"}, + { (byte) ']', "Ü"}, + { (byte) '{', "ä"}, + { (byte) '|', "ö"}, + { (byte) '}', "ü"}, + { (byte) '~', "ß"} + }; + + /** + * Italian character set + * ESC (Y + * Reference: http://vt100.net/docs/vt220-rm/table2-11.html + */ + All [(byte)'Y'] = new Dictionary { + { (byte) '#', "£"}, + { (byte) '@', "§"}, + { (byte) '[', "°"}, + { (byte) '\\', "ç"}, + { (byte) ']', "é"}, + { (byte) '`', "ù"}, + { (byte) '{', "à"}, + { (byte) '|', "ò"}, + { (byte) '}', "è"}, + { (byte) '~', "ì"} + }; + + /** + * Norwegian/Danish character set + * ESC (E or ESC (6 + * Reference: http://vt100.net/docs/vt220-rm/table2-12.html + */ + All [(byte)'E'] = + All [(byte)'6'] = new Dictionary { + { (byte) '@', "Ä"}, + { (byte) '[', "Æ"}, + { (byte) '\\', "Ø"}, + { (byte) ']', "Å"}, + { (byte) '^', "Ü"}, + { (byte) '`', "ä"}, + { (byte) '{', "æ"}, + { (byte) '|', "ø"}, + { (byte) '}', "å"}, + { (byte) '~', "ü"} + }; + + /** + * Spanish character set + * ESC (Z + * Reference: http://vt100.net/docs/vt220-rm/table2-13.html + */ + + All [(byte)'Z'] = new Dictionary { + { (byte) '#', "£"}, + { (byte) '@', "§"}, + { (byte) '[', "¡"}, + { (byte) '\\', "Ñ"}, + { (byte) ']', "¿"}, + { (byte) '{', "°"}, + { (byte) '|', "ñ"}, + { (byte) '}', "ç"} + }; + + /** + * Swedish character set + * ESC (H or ESC (7 + * Reference: http://vt100.net/docs/vt220-rm/table2-14.html + */ + All [(byte)'H'] = + All [(byte)'7'] = new Dictionary { + { (byte) '@', "É"}, + { (byte) '[', "Ä"}, + { (byte) '\\', "Ö"}, + { (byte) ']', "Å"}, + { (byte) '^', "Ü"}, + { (byte) '`', "é"}, + { (byte) '{', "ä"}, + { (byte) '|', "ö"}, + { (byte) '}', "å"}, + { (byte) '~', "ü"} + }; + + /** + * Swiss character set + * ESC (= + * Reference: http://vt100.net/docs/vt220-rm/table2-15.html + */ + All [(byte)'='] = new Dictionary { + { (byte) '#', "ù"}, + { (byte) '@', "à"}, + { (byte) '[', "é"}, + { (byte) '\\', "ç"}, + { (byte) ']', "ê"}, + { (byte) '^', "î"}, + { (byte) '_', "è"}, + { (byte) '`', "ô"}, + { (byte) '{', "ä"}, + { (byte) '|', "ö"}, + { (byte) '}', "ü"}, + { (byte) '~', "û" } + }; + } + } + + public class CharSet { + + } +} diff --git a/src/XtermSharp/CharWidth.cs b/src/XtermSharp/CharWidth.cs new file mode 100644 index 00000000..3ba0ba1e --- /dev/null +++ b/src/XtermSharp/CharWidth.cs @@ -0,0 +1,179 @@ +using System; +namespace XtermSharp { + public static class RuneHelper { + // extracted from https://www.cl.cam.ac.uk/%7Emgk25/ucs/wcwidth.c + + static uint [,] combining = new uint [,] { + { 0x0300, 0x036F }, { 0x0483, 0x0486 }, { 0x0488, 0x0489 }, + { 0x0591, 0x05BD }, { 0x05BF, 0x05BF }, { 0x05C1, 0x05C2 }, + { 0x05C4, 0x05C5 }, { 0x05C7, 0x05C7 }, { 0x0600, 0x0603 }, + { 0x0610, 0x0615 }, { 0x064B, 0x065E }, { 0x0670, 0x0670 }, + { 0x06D6, 0x06E4 }, { 0x06E7, 0x06E8 }, { 0x06EA, 0x06ED }, + { 0x070F, 0x070F }, { 0x0711, 0x0711 }, { 0x0730, 0x074A }, + { 0x07A6, 0x07B0 }, { 0x07EB, 0x07F3 }, { 0x0901, 0x0902 }, + { 0x093C, 0x093C }, { 0x0941, 0x0948 }, { 0x094D, 0x094D }, + { 0x0951, 0x0954 }, { 0x0962, 0x0963 }, { 0x0981, 0x0981 }, + { 0x09BC, 0x09BC }, { 0x09C1, 0x09C4 }, { 0x09CD, 0x09CD }, + { 0x09E2, 0x09E3 }, { 0x0A01, 0x0A02 }, { 0x0A3C, 0x0A3C }, + { 0x0A41, 0x0A42 }, { 0x0A47, 0x0A48 }, { 0x0A4B, 0x0A4D }, + { 0x0A70, 0x0A71 }, { 0x0A81, 0x0A82 }, { 0x0ABC, 0x0ABC }, + { 0x0AC1, 0x0AC5 }, { 0x0AC7, 0x0AC8 }, { 0x0ACD, 0x0ACD }, + { 0x0AE2, 0x0AE3 }, { 0x0B01, 0x0B01 }, { 0x0B3C, 0x0B3C }, + { 0x0B3F, 0x0B3F }, { 0x0B41, 0x0B43 }, { 0x0B4D, 0x0B4D }, + { 0x0B56, 0x0B56 }, { 0x0B82, 0x0B82 }, { 0x0BC0, 0x0BC0 }, + { 0x0BCD, 0x0BCD }, { 0x0C3E, 0x0C40 }, { 0x0C46, 0x0C48 }, + { 0x0C4A, 0x0C4D }, { 0x0C55, 0x0C56 }, { 0x0CBC, 0x0CBC }, + { 0x0CBF, 0x0CBF }, { 0x0CC6, 0x0CC6 }, { 0x0CCC, 0x0CCD }, + { 0x0CE2, 0x0CE3 }, { 0x0D41, 0x0D43 }, { 0x0D4D, 0x0D4D }, + { 0x0DCA, 0x0DCA }, { 0x0DD2, 0x0DD4 }, { 0x0DD6, 0x0DD6 }, + { 0x0E31, 0x0E31 }, { 0x0E34, 0x0E3A }, { 0x0E47, 0x0E4E }, + { 0x0EB1, 0x0EB1 }, { 0x0EB4, 0x0EB9 }, { 0x0EBB, 0x0EBC }, + { 0x0EC8, 0x0ECD }, { 0x0F18, 0x0F19 }, { 0x0F35, 0x0F35 }, + { 0x0F37, 0x0F37 }, { 0x0F39, 0x0F39 }, { 0x0F71, 0x0F7E }, + { 0x0F80, 0x0F84 }, { 0x0F86, 0x0F87 }, { 0x0F90, 0x0F97 }, + { 0x0F99, 0x0FBC }, { 0x0FC6, 0x0FC6 }, { 0x102D, 0x1030 }, + { 0x1032, 0x1032 }, { 0x1036, 0x1037 }, { 0x1039, 0x1039 }, + { 0x1058, 0x1059 }, { 0x1160, 0x11FF }, { 0x135F, 0x135F }, + { 0x1712, 0x1714 }, { 0x1732, 0x1734 }, { 0x1752, 0x1753 }, + { 0x1772, 0x1773 }, { 0x17B4, 0x17B5 }, { 0x17B7, 0x17BD }, + { 0x17C6, 0x17C6 }, { 0x17C9, 0x17D3 }, { 0x17DD, 0x17DD }, + { 0x180B, 0x180D }, { 0x18A9, 0x18A9 }, { 0x1920, 0x1922 }, + { 0x1927, 0x1928 }, { 0x1932, 0x1932 }, { 0x1939, 0x193B }, + { 0x1A17, 0x1A18 }, { 0x1B00, 0x1B03 }, { 0x1B34, 0x1B34 }, + { 0x1B36, 0x1B3A }, { 0x1B3C, 0x1B3C }, { 0x1B42, 0x1B42 }, + { 0x1B6B, 0x1B73 }, { 0x1DC0, 0x1DCA }, { 0x1DFE, 0x1DFF }, + { 0x200B, 0x200F }, { 0x202A, 0x202E }, { 0x2060, 0x2063 }, + { 0x206A, 0x206F }, { 0x20D0, 0x20EF }, { 0x302A, 0x302F }, + { 0x3099, 0x309A }, { 0xA806, 0xA806 }, { 0xA80B, 0xA80B }, + { 0xA825, 0xA826 }, { 0xFB1E, 0xFB1E }, { 0xFE00, 0xFE0F }, + { 0xFE20, 0xFE23 }, { 0xFEFF, 0xFEFF }, { 0xFFF9, 0xFFFB }, + { 0x10A01, 0x10A03 }, { 0x10A05, 0x10A06 }, { 0x10A0C, 0x10A0F }, + { 0x10A38, 0x10A3A }, { 0x10A3F, 0x10A3F }, { 0x1D167, 0x1D169 }, + { 0x1D173, 0x1D182 }, { 0x1D185, 0x1D18B }, { 0x1D1AA, 0x1D1AD }, + { 0x1D242, 0x1D244 }, { 0xE0001, 0xE0001 }, { 0xE0020, 0xE007F }, + { 0xE0100, 0xE01EF } + }; + + /* + * The following functions are the same as mk_wcwidth() and + * mk_wcswidth(), except that spacing characters in the East Asian + * Ambiguous (A) category as defined in Unicode Technical Report #11 + * have a column width of 2. This variant might be useful for users of + * CJK legacy encodings who want to migrate to UCS without changing + * the traditional terminal character-width behaviour. It is not + * otherwise recommended for general use. + */ + + // sorted list of non-overlapping intervals of East Asian Ambiguous + // characters, generated by "uniset +WIDTH-A -cat=Me -cat=Mn -cat=Cf c" + static uint[,] ambiguous = new uint[,] { + { 0x00A1, 0x00A1 }, { 0x00A4, 0x00A4 }, { 0x00A7, 0x00A8 }, + { 0x00AA, 0x00AA }, { 0x00AE, 0x00AE }, { 0x00B0, 0x00B4 }, + { 0x00B6, 0x00BA }, { 0x00BC, 0x00BF }, { 0x00C6, 0x00C6 }, + { 0x00D0, 0x00D0 }, { 0x00D7, 0x00D8 }, { 0x00DE, 0x00E1 }, + { 0x00E6, 0x00E6 }, { 0x00E8, 0x00EA }, { 0x00EC, 0x00ED }, + { 0x00F0, 0x00F0 }, { 0x00F2, 0x00F3 }, { 0x00F7, 0x00FA }, + { 0x00FC, 0x00FC }, { 0x00FE, 0x00FE }, { 0x0101, 0x0101 }, + { 0x0111, 0x0111 }, { 0x0113, 0x0113 }, { 0x011B, 0x011B }, + { 0x0126, 0x0127 }, { 0x012B, 0x012B }, { 0x0131, 0x0133 }, + { 0x0138, 0x0138 }, { 0x013F, 0x0142 }, { 0x0144, 0x0144 }, + { 0x0148, 0x014B }, { 0x014D, 0x014D }, { 0x0152, 0x0153 }, + { 0x0166, 0x0167 }, { 0x016B, 0x016B }, { 0x01CE, 0x01CE }, + { 0x01D0, 0x01D0 }, { 0x01D2, 0x01D2 }, { 0x01D4, 0x01D4 }, + { 0x01D6, 0x01D6 }, { 0x01D8, 0x01D8 }, { 0x01DA, 0x01DA }, + { 0x01DC, 0x01DC }, { 0x0251, 0x0251 }, { 0x0261, 0x0261 }, + { 0x02C4, 0x02C4 }, { 0x02C7, 0x02C7 }, { 0x02C9, 0x02CB }, + { 0x02CD, 0x02CD }, { 0x02D0, 0x02D0 }, { 0x02D8, 0x02DB }, + { 0x02DD, 0x02DD }, { 0x02DF, 0x02DF }, { 0x0391, 0x03A1 }, + { 0x03A3, 0x03A9 }, { 0x03B1, 0x03C1 }, { 0x03C3, 0x03C9 }, + { 0x0401, 0x0401 }, { 0x0410, 0x044F }, { 0x0451, 0x0451 }, + { 0x2010, 0x2010 }, { 0x2013, 0x2016 }, { 0x2018, 0x2019 }, + { 0x201C, 0x201D }, { 0x2020, 0x2022 }, { 0x2024, 0x2027 }, + { 0x2030, 0x2030 }, { 0x2032, 0x2033 }, { 0x2035, 0x2035 }, + { 0x203B, 0x203B }, { 0x203E, 0x203E }, { 0x2074, 0x2074 }, + { 0x207F, 0x207F }, { 0x2081, 0x2084 }, { 0x20AC, 0x20AC }, + { 0x2103, 0x2103 }, { 0x2105, 0x2105 }, { 0x2109, 0x2109 }, + { 0x2113, 0x2113 }, { 0x2116, 0x2116 }, { 0x2121, 0x2122 }, + { 0x2126, 0x2126 }, { 0x212B, 0x212B }, { 0x2153, 0x2154 }, + { 0x215B, 0x215E }, { 0x2160, 0x216B }, { 0x2170, 0x2179 }, + { 0x2190, 0x2199 }, { 0x21B8, 0x21B9 }, { 0x21D2, 0x21D2 }, + { 0x21D4, 0x21D4 }, { 0x21E7, 0x21E7 }, { 0x2200, 0x2200 }, + { 0x2202, 0x2203 }, { 0x2207, 0x2208 }, { 0x220B, 0x220B }, + { 0x220F, 0x220F }, { 0x2211, 0x2211 }, { 0x2215, 0x2215 }, + { 0x221A, 0x221A }, { 0x221D, 0x2220 }, { 0x2223, 0x2223 }, + { 0x2225, 0x2225 }, { 0x2227, 0x222C }, { 0x222E, 0x222E }, + { 0x2234, 0x2237 }, { 0x223C, 0x223D }, { 0x2248, 0x2248 }, + { 0x224C, 0x224C }, { 0x2252, 0x2252 }, { 0x2260, 0x2261 }, + { 0x2264, 0x2267 }, { 0x226A, 0x226B }, { 0x226E, 0x226F }, + { 0x2282, 0x2283 }, { 0x2286, 0x2287 }, { 0x2295, 0x2295 }, + { 0x2299, 0x2299 }, { 0x22A5, 0x22A5 }, { 0x22BF, 0x22BF }, + { 0x2312, 0x2312 }, { 0x2460, 0x24E9 }, { 0x24EB, 0x254B }, + { 0x2550, 0x2573 }, { 0x2580, 0x258F }, { 0x2592, 0x2595 }, + { 0x25A0, 0x25A1 }, { 0x25A3, 0x25A9 }, { 0x25B2, 0x25B3 }, + { 0x25B6, 0x25B7 }, { 0x25BC, 0x25BD }, { 0x25C0, 0x25C1 }, + { 0x25C6, 0x25C8 }, { 0x25CB, 0x25CB }, { 0x25CE, 0x25D1 }, + { 0x25E2, 0x25E5 }, { 0x25EF, 0x25EF }, { 0x2605, 0x2606 }, + { 0x2609, 0x2609 }, { 0x260E, 0x260F }, { 0x2614, 0x2615 }, + { 0x261C, 0x261C }, { 0x261E, 0x261E }, { 0x2640, 0x2640 }, + { 0x2642, 0x2642 }, { 0x2660, 0x2661 }, { 0x2663, 0x2665 }, + { 0x2667, 0x266A }, { 0x266C, 0x266D }, { 0x266F, 0x266F }, + { 0x273D, 0x273D }, { 0x2776, 0x277F }, { 0xE000, 0xF8FF }, + { 0xFFFD, 0xFFFD }, { 0xF0000, 0xFFFFD }, { 0x100000, 0x10FFFD } + }; + + static int bisearch (uint rune, uint [,] table, int max) + { + int min = 0; + int mid; + + if (rune < table [0,0]|| rune> table[max,1]) + return 0; + while (max >= min) { + mid = (min + max) / 2; + if (rune > table [mid,1]) + min = mid + 1; + else if (rune < table [mid,0]) + max = mid - 1; + else + return 1; + } + + return 0; + } + + // + // Returns the number of columns/characters that a rune uses + // + public static int ConsoleWidth (this uint rune) + { + if (rune < 32) + return 0; + if (rune < 127) + return 1; + if (rune >= 0x7f && rune <= 0xa0) + return 0; + /* binary search in table of non-spacing characters */ + if (bisearch (rune, combining, combining.GetLength (0) - 1) != 0) + return 0; + + if (bisearch(rune, ambiguous, ambiguous.GetLength(0) - 1) != 0) + return 2; + + /* if we arrive here, ucs is not a combining or C0/C1 control character */ + return 1 + + ((rune >= 0x1100 && + (rune <= 0x115f || /* Hangul Jamo init. consonants */ + rune == 0x2329 || rune == 0x232a || + (rune >= 0x2e80 && rune <= 0xa4cf && + rune != 0x303f) || /* CJK ... Yi */ + (rune >= 0xac00 && rune <= 0xd7a3) || /* Hangul Syllables */ + (rune >= 0xf900 && rune <= 0xfaff) || /* CJK Compatibility Ideographs */ + (rune >= 0xfe10 && rune <= 0xfe19) || /* Vertical forms */ + (rune >= 0xfe30 && rune <= 0xfe6f) || /* CJK Compatibility Forms */ + (rune >= 0xff00 && rune <= 0xff60) || /* Fullwidth Forms */ + (rune >= 0xffe0 && rune <= 0xffe6) || + (rune >= 0x20000 && rune <= 0x2fffd) || + (rune >= 0x30000 && rune <= 0x3fffd))) ? 1 : 0); + } + } +} diff --git a/src/XtermSharp/CharacterAttribute.cs b/src/XtermSharp/CharacterAttribute.cs new file mode 100644 index 00000000..fb3a0e49 --- /dev/null +++ b/src/XtermSharp/CharacterAttribute.cs @@ -0,0 +1,72 @@ +using System; + +namespace XtermSharp { + // TODO: rename to CharacterAttributes or similar + [Flags] + public enum FLAGS { + BOLD = 1, + UNDERLINE = 2, + BLINK = 4, + INVERSE = 8, + INVISIBLE = 16, + DIM = 32, + ITALIC = 64, + CrossedOut = 128 + } + + public static class CharacterAttribute { + // Temporary, longer term in Attribute we will add a proper encoding + public static string ToSGR (int attribute) + { + var result = "0"; + + var ca = (FLAGS)(attribute >> 18); + if (ca.HasFlag (FLAGS.BOLD)) { + result += ";1"; + } + if (ca.HasFlag (FLAGS.UNDERLINE)) { + result += ";4"; + } + if (ca.HasFlag (FLAGS.BLINK)) { + result += ";5"; + } + if (ca.HasFlag (FLAGS.INVERSE)) { + result += ";7"; + } + if (ca.HasFlag (FLAGS.INVISIBLE)) { + result += ";8"; + } + + int fg = (attribute >> 9) & 0x1ff; + + if (fg != Renderer.DefaultColor) { + if (fg > 16) { + result += $";38;5;{fg}"; + } else { + if (fg >= 8) { + result += $";{9}{fg - 8};"; + } else { + result += $";{3}{fg};"; + } + } + } + + int bg = attribute & 0x1ff; + if (bg != Renderer.DefaultColor) { + if (bg > 16) { + result += $";48;5;{bg}"; + } else { + if (bg >= 8) { + result += $";{10}{bg - 8};"; + } else { + result += $";{4}{bg};"; + } + } + } + + result += "m"; + return result; + } + + } +} diff --git a/src/XtermSharp/Colors.cs b/src/XtermSharp/Colors.cs new file mode 100644 index 00000000..6d3708f0 --- /dev/null +++ b/src/XtermSharp/Colors.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; + +namespace XtermSharp { + + public class Color { + public byte Red, Green, Blue; + public static List DefaultAnsiColors; + public static Color DefaultForeground = new Color (0xff, 0xff, 0xff); + public static Color DefaultBackground = new Color (0, 0, 0); + + static Color () + { + DefaultAnsiColors = new List () { + // dark colors + new Color (0x2e, 0x34, 0x36), + new Color (0xcc, 0x00, 0x00), + new Color (0x4e, 0x9a, 0x06), + new Color (0xc4, 0xa0, 0x00), + new Color (0x34, 0x65, 0xa4), + new Color (0x75, 0x50, 0x7b), + new Color (0x06, 0x98, 0x9a), + new Color (0xd3, 0xd7, 0xcf), + // bright colors + new Color (0x55, 0x57, 0x53), + new Color (0xef, 0x29, 0x29), + new Color (0x8a, 0xe2, 0x34), + new Color (0xfc, 0xe9, 0x4f), + new Color (0x72, 0x9f, 0xcf), + new Color (0xad, 0x7f, 0xa8), + new Color (0x34, 0xe2, 0xe2), + new Color (0xee, 0xee, 0xec), + }; + + // Fill in the remaining 240 ANSI colors. + var v = new int [] { 0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff }; + + // Generate colors (16-231) + for (var i = 0; i < 216; i++) { + var r = v [(i / 36) % 6]; + var g = v [(i / 6) % 6]; + var b = v [i % 6]; + + DefaultAnsiColors.Add (new Color ((byte)r, (byte)g, (byte)b)); + } + + // Generate greys (232-255) + for (int i = 0; i < 24; i++) { + var c = (byte)(8 + i * 10); + DefaultAnsiColors.Add (new Color (c, c, c)); + } + } + + public Color (byte red, byte green, byte blue) + { + Red = red; + Green = green; + Blue = blue; + } + } +} diff --git a/src/XtermSharp/ControlCodes.cs b/src/XtermSharp/ControlCodes.cs new file mode 100644 index 00000000..4431ceb2 --- /dev/null +++ b/src/XtermSharp/ControlCodes.cs @@ -0,0 +1,56 @@ +using System; + +namespace XtermSharp { + public struct ControlCodes { + public static uint NUL = 0x00; + public static uint BEL = 0x07; + public static uint BS = 0x08; + public static uint HT = 0x09; + public static uint LF = 0x0a; + public static uint VT = 0x0b; + public static uint FF = 0x0c; + public static uint CR = 0x0d; + public static uint SO = 0x0e; + public static uint SI = 0x0f; + public static uint CAN = 0x18; + public static uint SUB = 0x1a; + public static uint ESC = 0x1b; + public static uint SP = 0x20; + public static uint DEL = 0x7f; + + public bool Send8bit { get; set; } + + public string PAD { get { return Send8bit ? "\u0080" : "\u001b@"; } } + public string HOP { get { return Send8bit ? "\u0081" : "\u001bA"; } } + public string BPH { get { return Send8bit ? "\u0082" : "\u001bB"; } } + public string NBH { get { return Send8bit ? "\u0083" : "\u001bC"; } } + public string IND { get { return Send8bit ? "\u0084" : "\u001bD"; } } + public string NEL { get { return Send8bit ? "\u0085" : "\u001bE"; } } + public string SSA { get { return Send8bit ? "\u0086" : "\u001bF"; } } + public string ESA { get { return Send8bit ? "\u0087" : "\u001bG"; } } + public string HTS { get { return Send8bit ? "\u0088" : "\u001bH"; } } + public string HTJ { get { return Send8bit ? "\u0089" : "\u001bI"; } } + public string VTS { get { return Send8bit ? "\u008a" : "\u001bJ"; } } + public string PLD { get { return Send8bit ? "\u008b" : "\u001bK"; } } + public string PLU { get { return Send8bit ? "\u008c" : "\u001bL"; } } + public string RI { get { return Send8bit ? "\u008d" : "\u001bM"; } } + public string SS2 { get { return Send8bit ? "\u008e" : "\u001bN"; } } + public string SS3 { get { return Send8bit ? "\u008f" : "\u001bO"; } } + public string DCS { get { return Send8bit ? "\u0090" : "\u001bP"; } } + public string PU1 { get { return Send8bit ? "\u0091" : "\u001bQ"; } } + public string PU2 { get { return Send8bit ? "\u0092" : "\u001bR"; } } + public string STS { get { return Send8bit ? "\u0093" : "\u001bS"; } } + public string CCH { get { return Send8bit ? "\u0094" : "\u001bT"; } } + public string MW { get { return Send8bit ? "\u0095" : "\u001bU"; } } + public string SPA { get { return Send8bit ? "\u0096" : "\u001bV"; } } + public string EPA { get { return Send8bit ? "\u0097" : "\u001bW"; } } + public string SOS { get { return Send8bit ? "\u0098" : "\u001bX"; } } + public string SGCI{ get { return Send8bit ? "\u0099" : "\u001bY"; } } + public string SCI { get { return Send8bit ? "\u009a" : "\u001bZ"; } } + public string CSI { get { return Send8bit ? "\u009b" : "\u001b["; } } + public string ST { get { return Send8bit ? "\u009c" : "\u001b\\"; } } + public string OSC { get { return Send8bit ? "\u009d" : "\u001b]"; } } + public string PM { get { return Send8bit ? "\u009e" : "\u001b^"; } } + public string APC { get { return Send8bit ? "\u009f" : "\u001b_"; } } + } +} diff --git a/src/XtermSharp/EscapeSequenceParser.cs b/src/XtermSharp/EscapeSequenceParser.cs new file mode 100644 index 00000000..7d314a75 --- /dev/null +++ b/src/XtermSharp/EscapeSequenceParser.cs @@ -0,0 +1,697 @@ +// +// This could use an audit for the use of Rune when dealing with "code" values, +// in particular in Execute code paths +// +using System; +using System.Collections.Generic; +using System.Linq; +using NStack; + +namespace XtermSharp { + + public interface IDcsHandler { + void Hook (string collect, int [] parameters, int flag); + unsafe void Put (byte *data, int start, int end); + void Unhook (); + } + + // Dummy DCS Handler as defaulta fallback + class DcsDummy : IDcsHandler { + public void Hook (string collect, int [] parameters, int flag) { } + public unsafe void Put (byte *data, int start, int end) { } + public void Unhook () { } + } + + public enum ParserState { + Invalid = -1, + Ground = 0, + Escape, + EscapeIntermediate, + CsiEntry, + CsiParam, + CsiIntermediate, + CsiIgnore, + SosPmApcString, + OscString, + DcsEntry, + DcsParam, + DcsIgnore, + DcsIntermediate, + DcsPassthrough + } + + public class ParsingState { + /// + /// Position in Parse String + /// + public int Position; + /// + /// Actual character code + /// + public int Code; + /// + /// Current Parser State + /// + public ParserState CurrentState; + /// + /// Print buffer start index (-1 for not set) + /// + public int Print; + /// + /// Buffer start index (-1 for not set) + /// + public int Dcs; + /// + /// Osc string buffer + /// + public string Osc; + /// + /// Collect buffer with intermediate characters + /// + public string Collect; + /// + /// Parameters buffer + /// + public int [] Parameters; + // should abort (default: false) + public bool Abort; + + } + + // + // EscapeSequenceParser. + // This class implements the ANSI/DEC compatible parser described by + // Paul Williams (https://vt100.net/emu/dec_ansi_parser). + // To implement custom ANSI compliant escape sequences it is not needed to + // alter this parser, instead consider registering a custom handler. + // For non ANSI compliant sequences change the transition table with + // the optional `transitions` contructor argument and + // reimplement the `parse` method. + // NOTE: The parameter element notation is currently not supported. + // TODO: implement error recovery hook via error handler return values + // + public class EscapeSequenceParser : IDisposable { + + + enum ParserAction { + Ignore, + Error, + Print, + Execute, + OscStart, + OscPut, + OscEnd, + CsiDispatch, + Param, + Collect, + EscDispatch, + Clear, + DcsHook, + DcsPut, + DcsUnhook + } + + class TransitionTable { + // data is packed like this: + // currentState << 8 | characterCode --> action << 4 | nextState + byte [] table; + + public TransitionTable (int length) + { + table = new byte [length]; + } + + public void Add (int code, ParserState state, ParserAction action, ParserState next = ParserState.Invalid) + { + table [(int)state << 8 | code] = (byte)((int)action << 4 | (int)(next == ParserState.Invalid ? state : next)); + } + + public void Add (int [] codes, ParserState state, ParserAction action, ParserState next = ParserState.Invalid) + { + foreach (var c in codes) + Add (c, state, action, next); + } + + public byte this [int idx] { + get => table [idx]; + } + } + static int [] PRINTABLES = r (0x20, 0x7f); + static int [] EXECUTABLES = r (0x00, 0x19).Concat (r (0x1c, 0x20)).ToArray (); + + static int [] r (int low, int high) + { + var c = high - low; + var arr = new int [c]; + while (c-- > 0) + arr [c] = --high; + return arr; + } + + static ParserState [] r (ParserState low, ParserState high) + { + var c = high - low; + var arr = new ParserState [c]; + while (c-- > 0) + arr [c] = --high; + return arr; + } + + const int NonAsciiPrintable = 0xa0; + + static TransitionTable BuildVt500TransitionTable () + { + var table = new TransitionTable (4095); + var states = r (ParserState.Ground, ParserState.DcsPassthrough + 1); + + // table with default transition + foreach (var state in states) { + for (var code = 0; code <= NonAsciiPrintable; ++code) + table.Add (code, state, ParserAction.Error, ParserState.Ground); + } + // printables + table.Add (PRINTABLES, ParserState.Ground, ParserAction.Print, ParserState.Ground); + + // global anwyhere rules + foreach (var state in states) { + table.Add (new int [] { 0x18, 0x1a, 0x99, 0x9a }, state, ParserAction.Execute, ParserState.Ground); + table.Add (r (0x80, 0x90), state, ParserAction.Execute, ParserState.Ground); + table.Add (r (0x90, 0x98), state, ParserAction.Execute, ParserState.Ground); + table.Add (0x9c, state, ParserAction.Ignore, ParserState.Ground); // ST as terminator + table.Add (0x1b, state, ParserAction.Clear, ParserState.Escape); // ESC + table.Add (0x9d, state, ParserAction.OscStart, ParserState.OscString); // OSC + table.Add (new int [] { 0x98, 0x9e, 0x9f }, state, ParserAction.Ignore, ParserState.SosPmApcString); + table.Add (0x9b, state, ParserAction.Clear, ParserState.CsiEntry); // CSI + table.Add (0x90, state, ParserAction.Clear, ParserState.DcsEntry); // DCS + } + + // rules for executable and 0x7f + table.Add (EXECUTABLES, ParserState.Ground, ParserAction.Execute, ParserState.Ground); + table.Add (EXECUTABLES, ParserState.Escape, ParserAction.Execute, ParserState.Escape); + table.Add (0x7f, ParserState.Escape, ParserAction.Ignore, ParserState.Escape); + table.Add (EXECUTABLES, ParserState.OscString, ParserAction.Ignore, ParserState.OscString); + table.Add (EXECUTABLES, ParserState.CsiEntry, ParserAction.Execute, ParserState.CsiEntry); + table.Add (0x7f, ParserState.CsiEntry, ParserAction.Ignore, ParserState.CsiEntry); + table.Add (EXECUTABLES, ParserState.CsiParam, ParserAction.Execute, ParserState.CsiParam); + table.Add (0x7f, ParserState.CsiParam, ParserAction.Ignore, ParserState.CsiParam); + table.Add (EXECUTABLES, ParserState.CsiIgnore, ParserAction.Execute, ParserState.CsiIgnore); + table.Add (EXECUTABLES, ParserState.CsiIntermediate, ParserAction.Execute, ParserState.CsiIntermediate); + table.Add (0x7f, ParserState.CsiIntermediate, ParserAction.Ignore, ParserState.CsiIntermediate); + table.Add (EXECUTABLES, ParserState.EscapeIntermediate, ParserAction.Execute, ParserState.EscapeIntermediate); + table.Add (0x7f, ParserState.EscapeIntermediate, ParserAction.Ignore, ParserState.EscapeIntermediate); + // osc + table.Add (0x5d, ParserState.Escape, ParserAction.OscStart, ParserState.OscString); + table.Add (PRINTABLES, ParserState.OscString, ParserAction.OscPut, ParserState.OscString); + table.Add (0x7f, ParserState.OscString, ParserAction.OscPut, ParserState.OscString); + table.Add (new int [] { 0x9c, 0x1b, 0x18, 0x1a, 0x07 }, ParserState.OscString, ParserAction.OscEnd, ParserState.Ground); + table.Add (r (0x1c, 0x20), ParserState.OscString, ParserAction.Ignore, ParserState.OscString); + // sos/pm/apc does nothing + table.Add (new int [] { 0x58, 0x5e, 0x5f }, ParserState.Escape, ParserAction.Ignore, ParserState.SosPmApcString); + table.Add (PRINTABLES, ParserState.SosPmApcString, ParserAction.Ignore, ParserState.SosPmApcString); + table.Add (EXECUTABLES, ParserState.SosPmApcString, ParserAction.Ignore, ParserState.SosPmApcString); + table.Add (0x9c, ParserState.SosPmApcString, ParserAction.Ignore, ParserState.Ground); + table.Add (0x7f, ParserState.SosPmApcString, ParserAction.Ignore, ParserState.SosPmApcString); + // csi entries + table.Add (0x5b, ParserState.Escape, ParserAction.Clear, ParserState.CsiEntry); + table.Add (r (0x40, 0x7f), ParserState.CsiEntry, ParserAction.CsiDispatch, ParserState.Ground); + table.Add (r (0x30, 0x3a), ParserState.CsiEntry, ParserAction.Param, ParserState.CsiParam); + table.Add (0x3b, ParserState.CsiEntry, ParserAction.Param, ParserState.CsiParam); + table.Add (new int [] { 0x3c, 0x3d, 0x3e, 0x3f }, ParserState.CsiEntry, ParserAction.Collect, ParserState.CsiParam); + table.Add (r (0x30, 0x3a), ParserState.CsiParam, ParserAction.Param, ParserState.CsiParam); + table.Add (0x3b, ParserState.CsiParam, ParserAction.Param, ParserState.CsiParam); + table.Add (r (0x40, 0x7f), ParserState.CsiParam, ParserAction.CsiDispatch, ParserState.Ground); + table.Add (new int [] { 0x3a, 0x3c, 0x3d, 0x3e, 0x3f }, ParserState.CsiParam, ParserAction.Ignore, ParserState.CsiIgnore); + table.Add (r (0x20, 0x40), ParserState.CsiIgnore, ParserAction.Ignore, ParserState.CsiIgnore); + table.Add (0x7f, ParserState.CsiIgnore, ParserAction.Ignore, ParserState.CsiIgnore); + table.Add (r (0x40, 0x7f), ParserState.CsiIgnore, ParserAction.Ignore, ParserState.Ground); + table.Add (0x3a, ParserState.CsiEntry, ParserAction.Ignore, ParserState.CsiIgnore); + table.Add (r (0x20, 0x30), ParserState.CsiEntry, ParserAction.Collect, ParserState.CsiIntermediate); + table.Add (r (0x20, 0x30), ParserState.CsiIntermediate, ParserAction.Collect, ParserState.CsiIntermediate); + table.Add (r (0x30, 0x40), ParserState.CsiIntermediate, ParserAction.Ignore, ParserState.CsiIgnore); + table.Add (r (0x40, 0x7f), ParserState.CsiIntermediate, ParserAction.CsiDispatch, ParserState.Ground); + table.Add (r (0x20, 0x30), ParserState.CsiParam, ParserAction.Collect, ParserState.CsiIntermediate); + // escIntermediate + table.Add (r (0x20, 0x30), ParserState.Escape, ParserAction.Collect, ParserState.EscapeIntermediate); + table.Add (r (0x20, 0x30), ParserState.EscapeIntermediate, ParserAction.Collect, ParserState.EscapeIntermediate); + table.Add (r (0x30, 0x7f), ParserState.EscapeIntermediate, ParserAction.EscDispatch, ParserState.Ground); + table.Add (r (0x30, 0x50), ParserState.Escape, ParserAction.EscDispatch, ParserState.Ground); + table.Add (r (0x51, 0x58), ParserState.Escape, ParserAction.EscDispatch, ParserState.Ground); + table.Add (new int [] { 0x59, 0x5a, 0x5c }, ParserState.Escape, ParserAction.EscDispatch, ParserState.Ground); + table.Add (r (0x60, 0x7f), ParserState.Escape, ParserAction.EscDispatch, ParserState.Ground); + // dcs entry + table.Add (0x50, ParserState.Escape, ParserAction.Clear, ParserState.DcsEntry); + table.Add (EXECUTABLES, ParserState.DcsEntry, ParserAction.Ignore, ParserState.DcsEntry); + table.Add (0x7f, ParserState.DcsEntry, ParserAction.Ignore, ParserState.DcsEntry); + table.Add (r (0x1c, 0x20), ParserState.DcsEntry, ParserAction.Ignore, ParserState.DcsEntry); + table.Add (r (0x20, 0x30), ParserState.DcsEntry, ParserAction.Collect, ParserState.DcsIntermediate); + table.Add (0x3a, ParserState.DcsEntry, ParserAction.Ignore, ParserState.DcsIgnore); + table.Add (r (0x30, 0x3a), ParserState.DcsEntry, ParserAction.Param, ParserState.DcsParam); + table.Add (0x3b, ParserState.DcsEntry, ParserAction.Param, ParserState.DcsParam); + table.Add (new int [] { 0x3c, 0x3d, 0x3e, 0x3f }, ParserState.DcsEntry, ParserAction.Collect, ParserState.DcsParam); + table.Add (EXECUTABLES, ParserState.DcsIgnore, ParserAction.Ignore, ParserState.DcsIgnore); + table.Add (r (0x20, 0x80), ParserState.DcsIgnore, ParserAction.Ignore, ParserState.DcsIgnore); + table.Add (r (0x1c, 0x20), ParserState.DcsIgnore, ParserAction.Ignore, ParserState.DcsIgnore); + table.Add (EXECUTABLES, ParserState.DcsParam, ParserAction.Ignore, ParserState.DcsParam); + table.Add (0x7f, ParserState.DcsParam, ParserAction.Ignore, ParserState.DcsParam); + table.Add (r (0x1c, 0x20), ParserState.DcsParam, ParserAction.Ignore, ParserState.DcsParam); + table.Add (r (0x30, 0x3a), ParserState.DcsParam, ParserAction.Param, ParserState.DcsParam); + table.Add (0x3b, ParserState.DcsParam, ParserAction.Param, ParserState.DcsParam); + table.Add (new int [] { 0x3a, 0x3c, 0x3d, 0x3e, 0x3f }, ParserState.DcsParam, ParserAction.Ignore, ParserState.DcsIgnore); + table.Add (r (0x20, 0x30), ParserState.DcsParam, ParserAction.Collect, ParserState.DcsIntermediate); + table.Add (EXECUTABLES, ParserState.DcsIntermediate, ParserAction.Ignore, ParserState.DcsIntermediate); + table.Add (0x7f, ParserState.DcsIntermediate, ParserAction.Ignore, ParserState.DcsIntermediate); + table.Add (r (0x1c, 0x20), ParserState.DcsIntermediate, ParserAction.Ignore, ParserState.DcsIntermediate); + table.Add (r (0x20, 0x30), ParserState.DcsIntermediate, ParserAction.Collect, ParserState.DcsIntermediate); + table.Add (r (0x30, 0x40), ParserState.DcsIntermediate, ParserAction.Ignore, ParserState.DcsIgnore); + table.Add (r (0x40, 0x7f), ParserState.DcsIntermediate, ParserAction.DcsHook, ParserState.DcsPassthrough); + table.Add (r (0x40, 0x7f), ParserState.DcsParam, ParserAction.DcsHook, ParserState.DcsPassthrough); + table.Add (r (0x40, 0x7f), ParserState.DcsEntry, ParserAction.DcsHook, ParserState.DcsPassthrough); + table.Add (EXECUTABLES, ParserState.DcsPassthrough, ParserAction.DcsPut, ParserState.DcsPassthrough); + table.Add (PRINTABLES, ParserState.DcsPassthrough, ParserAction.DcsPut, ParserState.DcsPassthrough); + table.Add (0x7f, ParserState.DcsPassthrough, ParserAction.Ignore, ParserState.DcsPassthrough); + table.Add (new int [] { 0x1b, 0x9c }, ParserState.DcsPassthrough, ParserAction.DcsUnhook, ParserState.Ground); + table.Add (NonAsciiPrintable, ParserState.OscString, ParserAction.OscPut, ParserState.OscString); + + return table; + } + + public delegate void CsiHandler (int [] parameters, string collect); + public delegate void OscHandler (string data); + public delegate void EscHandler (string collect, int flag); + public unsafe delegate void PrintHandler (byte * data, int start, int end); + public delegate void ExecuteHandler (); + + // Handler lookup container + public Dictionary> CsiHandlers; + public Dictionary> OscHandlers; + public Dictionary ExecuteHandlers; + public Dictionary EscHandlers; + public Dictionary DcsHandlers; + public IDcsHandler ActiveDcsHandler; + public Func ErrorHandler; + + public ParserState initialState, currentState; + + static void EmptyExecuteHandler (byte code) { } + static ParsingState EmptyErrorHandler (ParsingState state) => state; + + // Fallback handlers + public unsafe PrintHandler PrintHandlerFallback = (data, start, end) => { }; + public Action ExecuteHandlerFallback = EmptyExecuteHandler; + public Action CsiHandlerFallback = (collect, parameters, flag) => { Console.WriteLine ("Can not handle ESC-[" + flag); }; + public EscHandler EscHandlerFallback = (collect, flag) => { }; + public Action OscHandlerFallback = (identifier, data) => { }; + public IDcsHandler DcsHandlerFallback = new DcsDummy (); + public Func ErrorHandlerFallback = (state) => state; + + // buffers over several parser calls + string _osc; + List _pars; + string _collect; + unsafe PrintHandler printHandler = (data, start, end) => { }; + public Action PrintStateReset = () => { }; + + + TransitionTable table; + public EscapeSequenceParser () + { + table = BuildVt500TransitionTable (); + CsiHandlers = new Dictionary> (); + OscHandlers = new Dictionary> (); + ExecuteHandlers = new Dictionary (); + EscHandlers = new Dictionary (); + DcsHandlers = new Dictionary (); + + initialState = ParserState.Ground; + currentState = initialState; + _osc = ""; + _pars = new List { 0 } ; + _collect = ""; + SetEscHandler ("\\", EscHandlerFallback); + } + + public void Dispose () + { + CsiHandlers = null; + OscHandlers = null; + ExecuteHandlers = null; + EscHandlers = null; + DcsHandlers = null; + ActiveDcsHandler = null; + ErrorHandler = null; + PrintHandlerFallback = null; + ExecuteHandlerFallback = null; + CsiHandlerFallback = null; + EscHandlerFallback = null; + OscHandlerFallback = null; + DcsHandlerFallback = null; + ErrorHandlerFallback = null; + printHandler = null; + } + + public void SetPrintHandler (PrintHandler printHandler) => this.printHandler = printHandler; + public void ClearPrintHandler () => printHandler = PrintHandlerFallback; + + public void SetExecuteHandler (byte flag, ExecuteHandler handler) => ExecuteHandlers [flag] = handler; + public void ClearExecuteHandler (byte flag) => ExecuteHandlers.Remove (flag); + public void SetExecuteHandlerFallback (Action fallback) => ExecuteHandlerFallback = fallback; + + public void SetEscHandler (string flag, EscHandler callback) => EscHandlers [flag] = callback; + public void ClearEscHandler (string flag) => EscHandlers.Remove (flag); + public void SetEscHandlerFallback (EscHandler fallback) => EscHandlerFallback = fallback; + + class CsiHandlerRemover : IDisposable { + public List Container; + public CsiHandler ToRemove; + + void IDisposable.Dispose () + { + Container.Remove (ToRemove); + } + } + + IDisposable AddCsiHandler (byte flag, CsiHandler callback) + { + List list; + + if (!CsiHandlers.ContainsKey (flag)) { + list = new List (); + CsiHandlers [flag] = list; + } else + list = CsiHandlers [flag]; + + list.Add (callback); + return new CsiHandlerRemover () { + Container = list, + ToRemove = callback + }; + } + + public void SetCsiHandler (char flag, CsiHandler callback) => CsiHandlers [(byte)flag] = new List () { callback }; + public void ClearCsiHandler (byte flag) => CsiHandlers.Remove (flag); + public void SetCsiHandlerFallback (Action fallback) => CsiHandlerFallback = fallback; + + class OscHandlerRemover : IDisposable { + public List Container; + public OscHandler ToRemove; + + void IDisposable.Dispose () + { + Container.Remove (ToRemove); + } + } + + IDisposable AddOscHandler (int identifier, OscHandler callback) + { + List list; + + if (!OscHandlers.ContainsKey (identifier)) { + list = new List (); + OscHandlers [identifier] = list; + } else + list = OscHandlers [identifier]; + + list.Add (callback); + return new OscHandlerRemover () { + Container = list, + ToRemove = callback + }; + } + + public void SetOscHandler (int identifier, OscHandler callback) => OscHandlers [identifier] = new List () { callback }; + public void ClearOscHandler (int identifier) => OscHandlers.Remove (identifier); + public void SetOscHandlerFallback (Action fallback) => OscHandlerFallback = fallback; + + public void SetDcsHandler (string flag, IDcsHandler handler) => DcsHandlers [flag] = handler; + public void ClearDcsHandler (string flag) => DcsHandlers.Remove (flag); + public void SetDcsHandlerFallback (IDcsHandler fallback) => DcsHandlerFallback = fallback; + + public void SetErrorHandler (Func errorHandler) => ErrorHandler = errorHandler; + public void ClearErrorHandler () => ErrorHandler = EmptyErrorHandler; + + public void Reset () + { + currentState = initialState; + _osc = ""; + _pars.Clear (); + _pars.Add (0); + _collect = ""; + ActiveDcsHandler = null; + PrintStateReset (); + } + + unsafe public void Parse (byte *data, int len) + { + byte code = 0; + var transition = 0; + var error = false; + var currentState = this.currentState; + var print = -1; + var dcs = -1; + var osc = this._osc; + var collect = this._collect; + var pars = this._pars; + var dcsHandler = ActiveDcsHandler; + + // process input string + for (var i = 0; i < len; ++i) { + code = data [i]; + +#if false + // shortcut for most chars (print action) + if (currentState == ParserState.Ground && code > 0x1f && code < 0x80) { + print = (~print != 0) ? print : i; + do { i++; } while (i < len && data [i] > 0x1f && data [i] < 0x80); + i--; + continue; + } +#else + // This version eliminates the check for < 0x80, as we allow any UTF8 sequences. + if (currentState == ParserState.Ground && code > 0x1f) { + print = (~print != 0) ? print : i; + do { i++; } while (i < len && data [i] > 0x1f); + i--; + continue; + } + +#endif + + // shorcut for CSI params + if (currentState == ParserState.CsiParam && (code > 0x2f && code < 0x39)) { + pars [pars.Count - 1] = pars [pars.Count - 1] * 10 + code - 48; + continue; + } + + // Normal transition and action lookup + transition = table [(int)currentState << 8 | (code < 0xa0 ? code : NonAsciiPrintable)]; + var action = (ParserAction)(transition >> 4); + switch (action) { + case ParserAction.Print: + print = (~print != 0) ? print : i; + break; + case ParserAction.Execute: + if (~print != 0) { + printHandler (data, print, i); + print = -1; + } + if (ExecuteHandlers.TryGetValue (code, out var callback)) + callback (); + else + ExecuteHandlerFallback (code); + break; + case ParserAction.Ignore: + // handle leftover print or dcs chars + if (~print != 0) { + printHandler (data, print, i); + print = -1; + } else if (~dcs != 0) { + dcsHandler?.Put (data, dcs, i); + dcs = -1; + } + break; + case ParserAction.Error: + // chars higher than 0x9f are handled by this action + // to keep the transition table small + if (code > 0x9f) { + switch (currentState) { + case ParserState.Ground: + print = (~print != 0) ? print : i; + break; + case ParserState.CsiIgnore: + transition |= (int)ParserState.CsiIgnore; + break; + case ParserState.DcsIgnore: + transition |= (int)ParserState.DcsIgnore; + break; + case ParserState.DcsPassthrough: + dcs = (~dcs != 0) ? dcs : i; + transition |= (int)ParserState.DcsPassthrough; + break; + default: + error = true; + break; + } + } else { + error = true; + } + // if we end up here a real error happened + if (error) { + var inject = ErrorHandler (new ParsingState () { + Position = i, + Code = code, + CurrentState = currentState, + Print = print, + Dcs = dcs, + Osc = osc, + Collect = collect, + }); + if (inject.Abort) + return; + error = false; + } + break; + case ParserAction.CsiDispatch: + // Trigger CSI handler + if (CsiHandlers.TryGetValue (code, out var csiHandlers)) { + + var jj = csiHandlers.Count - 1; + for (; jj >= 0; jj--) { + csiHandlers [jj] (pars.ToArray (), collect); + } + } else + CsiHandlerFallback (collect, pars.ToArray (), code); + break; + case ParserAction.Param: + if (code == 0x3b) + pars.Add (0); + else + pars [pars.Count - 1] = pars [pars.Count - 1] * 10 + code - 48; + break; + case ParserAction.Collect: + // AUDIT: make collect a ustring + collect += (char)(code); + break; + case ParserAction.EscDispatch: + if (EscHandlers.TryGetValue (collect + (char)code, out var ehandler)) + ehandler (collect, code); + else + EscHandlerFallback (collect, code); + break; + case ParserAction.Clear: + if (~print != 0) { + printHandler (data, print, i); + print = -1; + } + osc = ""; + pars.Clear (); + pars.Add (0); + collect = ""; + dcs = -1; + PrintStateReset (); + break; + case ParserAction.DcsHook: + if (DcsHandlers.TryGetValue (collect + (char)code, out dcsHandler)) + dcsHandler.Hook (collect, pars.ToArray (), code); + else + DcsHandlerFallback.Hook (collect, pars.ToArray (), code); + break; + case ParserAction.DcsPut: + dcs = (~dcs != 0) ? dcs : i; + break; + case ParserAction.DcsUnhook: + if (dcsHandler != null) { + if (~dcs != 0) + dcsHandler.Put (data, dcs, i); + dcsHandler.Unhook (); + dcsHandler = null; + } + if (code == 0x1b) + transition |= (int)ParserState.Escape; + osc = ""; + pars.Clear (); + pars.Add (0); + collect = ""; + dcs = -1; + PrintStateReset (); + break; + case ParserAction.OscStart: + if (~print != 0) { + printHandler (data, print, i); + print = -1; + } + osc = ""; + break; + case ParserAction.OscPut: + for (var j = i; ; j++) { + if (j > len || (data [j] < 0x20) || (data [j] > 0x7f && data [j] < 0x9f)) { + var block = new byte [j - (i+1)]; + for (int k = i+1; k < j; k++) + block [k-i-1] = data [k]; + // TODO: Audit, the code below as I would not like the code below to abort on invalid UTF8 + // So we need a way of producing memory blocks. + osc += System.Text.Encoding.UTF8.GetString (block); + + i = j - 1; + break; + } + } + break; + case ParserAction.OscEnd: + if (osc != "" && code != 0x18 && code != 0x1a) { + // NOTE: OSC subparsing is not part of the original parser + // we do basic identifier parsing here to offer a jump table for OSC as well + int idx = osc.IndexOf (';'); + if (idx == -1) { + OscHandlerFallback (-1, osc); // this is an error mal-formed OSC + } else { + // Note: NaN is not handled here + // either catch it with the fallback handler + // or with an explicit NaN OSC handler + int identifier = 0; + Int32.TryParse (osc.Substring (0, idx), out identifier); + var content = osc.Substring (idx + 1); + // Trigger OSC handler + int c = -1; + if (OscHandlers.TryGetValue (identifier, out var ohandlers)) { + c = ohandlers.Count - 1; + for (; c >= 0;) { + ohandlers [c] (content); + break; + } + } + if (c < 0) + OscHandlerFallback (identifier, content); + } + } + if (code == 0x1b) + transition |= (int)ParserState.Escape; + osc = ""; + pars.Clear (); + pars.Add (0); + collect = ""; + dcs = -1; + PrintStateReset (); + break; + } + currentState = (ParserState)(transition & 15); + } + // push leftover pushable buffers to terminal + if (currentState == ParserState.Ground && (~print != 0)) { + printHandler (data, print, len); + } else if (currentState == ParserState.DcsPassthrough && (~dcs != 0) && dcsHandler != null) { + dcsHandler.Put (data, dcs, len); + } + + // save non pushable buffers + _osc = osc; + _collect = collect; + _pars = pars; + + // save active dcs handler reference + ActiveDcsHandler = dcsHandler; + + // save state + this.currentState = currentState; + } + } +} diff --git a/src/XtermSharp/EscapeSequences.cs b/src/XtermSharp/EscapeSequences.cs new file mode 100644 index 00000000..b8ca8410 --- /dev/null +++ b/src/XtermSharp/EscapeSequences.cs @@ -0,0 +1,41 @@ +using System; +namespace XtermSharp { + public static class EscapeSequences { + public static byte[] CmdNewline = { 10 }; + public static byte[] CmdRet = { 13 }; + public static byte[] CmdEsc = { 0x1b }; + public static byte[] CmdDel = { 0x7f }; + public static byte[] CmdDelKey = { 0x1b, (byte) '[', (byte) '3', (byte) '~' }; + public static byte[] MoveUpApp = { 0x1b, (byte)'O', (byte)'A' }; + public static byte[] MoveUpNormal = { 0x1b, (byte)'[', (byte)'A' }; + public static byte[] MoveDownApp = { 0x1b, (byte)'O', (byte)'B' }; + public static byte[] MoveDownNormal = { 0x1b, (byte)'[', (byte)'B' }; + public static byte[] MoveLeftApp = { 0x1b, (byte)'O', (byte)'D' }; + public static byte[] MoveLeftNormal = { 0x1b, (byte)'[', (byte)'D' }; + public static byte[] MoveRightApp = { 0x1b, (byte)'O', (byte)'C' }; + public static byte[] MoveRightNormal = { 0x1b, (byte)'[', (byte)'C' }; + public static byte[] MoveHomeApp = { 0x1b, (byte)'O', (byte)'H' }; + public static byte[] MoveHomeNormal = { 0x1b, (byte)'[', (byte)'H' }; + public static byte[] MoveEndApp = { 0x1b, (byte)'O', (byte)'F' }; + public static byte[] MoveEndNormal = { 0x1b, (byte)'[', (byte)'F' }; + public static byte[] CmdTab = { 9 }; + public static byte[] CmdBackTab = { 0x1b, (byte)'[', (byte)'Z' }; + public static byte[] CmdPageUp = { 0x1b, (byte)'[', (byte)'5', (byte)'~' }; + public static byte[] CmdPageDown = { 0x1b, (byte)'[', (byte)'6', (byte)'~' }; + + public static byte[][] CmdF = { + new byte [] { 0x1b, (byte) 'O', (byte) 'P' }, /* F1 */ + new byte [] { 0x1b, (byte) 'O', (byte) 'Q' }, /* F2 */ + new byte [] { 0x1b, (byte) 'O', (byte) 'R' }, /* F3 */ + new byte [] { 0x1b, (byte) 'O', (byte) 'S' }, /* F4 */ + new byte [] { 0x1b, (byte) '[', (byte) '1', (byte) '5', (byte) '~' }, /* F5 */ + new byte [] { 0x1b, (byte) '[', (byte) '1', (byte) '7', (byte) '~' }, /* F6 */ + new byte [] { 0x1b, (byte) '[', (byte) '1', (byte) '8', (byte) '~' }, /* F7 */ + new byte [] { 0x1b, (byte) '[', (byte) '1', (byte) '9', (byte) '~' }, /* F8 */ + new byte [] { 0x1b, (byte) '[', (byte) '2', (byte) '0', (byte) '~' }, /* F9 */ + new byte [] { 0x1b, (byte) '[', (byte) '2', (byte) '1', (byte) '~' }, /* F10 */ + new byte [] { 0x1b, (byte) '[', (byte) '2', (byte) '3', (byte) '~' }, /* F11 */ + new byte [] { 0x1b, (byte) '[', (byte) '2', (byte) '4', (byte) '~' }, /* F12 */ + }; + } +} diff --git a/src/XtermSharp/GlobalSuppressions.cs b/src/XtermSharp/GlobalSuppressions.cs new file mode 100644 index 00000000..577049d0 --- /dev/null +++ b/src/XtermSharp/GlobalSuppressions.cs @@ -0,0 +1,8 @@ + +// This file is used by Code Analysis to maintain SuppressMessage +// attributes that are applied to this project. +// Project-level suppressions either have no target or are given +// a specific target and scoped to a namespace, type, member, etc. + +[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage ("Potential Code Quality Issues", "RECS0082:Parameter has the same name as a member and hides it", Justification = "", Scope = "member", Target = "~M:Application.EscapeSequenceParser.SetPrintHandler(Application.EscapeSequenceParser.PrintHandler)")] + diff --git a/src/XtermSharp/ITerminalDelegate.cs b/src/XtermSharp/ITerminalDelegate.cs new file mode 100644 index 00000000..b3aa79c2 --- /dev/null +++ b/src/XtermSharp/ITerminalDelegate.cs @@ -0,0 +1,84 @@ +namespace XtermSharp { + + /// + /// + /// + public interface ITerminalDelegate { + /// + /// + /// + void ShowCursor (Terminal source); + + /// + /// This event is raised when the title of the terminal has been changed + /// + void SetTerminalTitle (Terminal source, string title); + + /// + /// This event is raised when the icon title of the terminal has been changed + /// + void SetTerminalIconTitle (Terminal source, string title); + + /// + /// This event is triggered from the engine, when the request to resize the window is received from an escape sequence. + /// + void SizeChanged (Terminal source); + + /// + /// Used to respond to the client running on the other end. This information should be sent to the remote end or subshell. + /// + void Send (byte [] data); + + /// + /// These are various commands that are sent by the client. They are rare, + /// and if you do not know what to return, just return null, the terminal + /// will return a suitable value. + /// + /// The response string needs to be suitable for the Xterm CSI Ps; Ps ; Ps t command + /// see the WindowManipulationCommand enumeration for those that need to return values + /// + string WindowCommand (Terminal source, WindowManipulationCommand command, params int[] args); + + /// + /// This method should return `true` if operations that can read the buffer back should be allowed, + /// otherwise, return false. This is useful to run some applications that attempt to checksum the + /// contents of the screen (unit tests) + /// + bool IsProcessTrusted (); + } + + /// + /// A simple ITerminalDelegate that does nothing + /// + public class SimpleTerminalDelegate : ITerminalDelegate { + public virtual void Send (byte [] data) + { + } + + public virtual void SetTerminalTitle (Terminal source, string title) + { + } + + public virtual void SetTerminalIconTitle (Terminal source, string title) + { + } + + public virtual void ShowCursor (Terminal source) + { + } + + public virtual void SizeChanged (Terminal source) + { + } + + public virtual string WindowCommand (Terminal source, WindowManipulationCommand command, int [] args) + { + return null; + } + + public virtual bool IsProcessTrusted () + { + return true; + } + } +} diff --git a/src/XtermSharp/InputHandlers/CsiCommandExtensions.cs b/src/XtermSharp/InputHandlers/CsiCommandExtensions.cs new file mode 100644 index 00000000..9bc7a7d6 --- /dev/null +++ b/src/XtermSharp/InputHandlers/CsiCommandExtensions.cs @@ -0,0 +1,25 @@ +using System; +using XtermSharp.CommandExtensions; + +namespace XtermSharp.CsiCommandExtensions { + /// + /// Simple extensions to map CSI commands to terminal commands. Useful in porting esc tests + /// + internal static class CsiCommands { + public static void csiDECSET (this Terminal terminal, int mode) + { + terminal.csiDECSET (mode, "?"); + } + + public static void csiCUP (this Terminal terminal, (int col, int row) point) + { + // switch the params around + terminal.csiCUP (point.row, point.col); + } + + public static void csiDECRESET (this Terminal terminal, int mode) + { + terminal.csiDECRESET (mode, "?"); + } + } +} \ No newline at end of file diff --git a/src/XtermSharp/InputHandlers/DECRQSS.cs b/src/XtermSharp/InputHandlers/DECRQSS.cs new file mode 100644 index 00000000..baabead3 --- /dev/null +++ b/src/XtermSharp/InputHandlers/DECRQSS.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; + +// +// Not implemented (either in xterm.js): +// DECUDK (https://vt100.net/docs/vt510-rm/DECUDK.html) +// DCS + q Pt ST (xterm) * Request Terminfo String +// DCS + p Pt ST (xterm) * set terminfo data + +namespace XtermSharp { + /// + /// DCS Subparser implementations + /// + /// DCS $ q Pt ST + /// DECRQSS (https://vt100.net/docs/vt510-rm/DECRQSS.html) + /// Request Status String (DECRQSS), VT420 and up. + /// Response: DECRPSS (https://vt100.net/docs/vt510-rm/DECRPSS.html) + /// + class DECRQSS : IDcsHandler { + readonly Terminal terminal; + List data; + + public DECRQSS (Terminal terminal) + { + this.terminal = terminal; + } + + public void Hook (string collect, int [] parameters, int flag) + { + data = new List (); + } + + unsafe public void Put (byte* data, int start, int end) + { + for (int i = start; i < end; i++) + this.data.Add (data [i]); + } + + public void Unhook () + { + var newData = System.Text.Encoding.Default.GetString (data.ToArray ()); + int ok = 1; // 0 means the request is valid according to docs, but tests expect 0? + string result = null; + + switch (newData) { + case "\"q": // DECCSA - Set Character Attribute + result = "\"q"; + return; + case "\"p": // DECSCL - conformance level + result = "65;1\"p"; + break; + case "r": // DECSTBM - the top and bottom margins + result = $"{terminal.Buffer.ScrollTop + 1};{terminal.Buffer.ScrollBottom + 1}r"; + break; + case "m": // SGR- the set graphic rendition + // TODO: report real settings instead of 0m + result = CharacterAttribute.ToSGR (terminal.CurAttr); + break; + case "s": // DECSLRM - the current left and right margins + result = $"{terminal.Buffer.MarginLeft + 1};{terminal.Buffer.MarginRight + 1}s"; + break; + case " q": // DECSCUSR - the set cursor style + // TODO this should send a number for the current cursor style 2 for block, 4 for underline and 6 for bar + var style = "2"; // block + result = $"{style} q"; + break; + default: + ok = 0; // this means the request is not valid, report that to the host. + result = string.Empty; + // invalid: DCS 0 $ r Pt ST (xterm) + terminal.Error ($"Unknown DCS + {newData}"); + break; + } + + terminal.SendResponse ($"{terminal.ControlCodes.DCS}{ok}$r{result}{terminal.ControlCodes.ST}"); + } + } +} diff --git a/src/XtermSharp/InputHandlers/InputHandler.cs b/src/XtermSharp/InputHandlers/InputHandler.cs new file mode 100644 index 00000000..d3102a08 --- /dev/null +++ b/src/XtermSharp/InputHandlers/InputHandler.cs @@ -0,0 +1,1374 @@ +using System; +using System.Collections.Generic; +using System.Text; +using NStack; +using XtermSharp.CommandExtensions; + +// +// Not implemented (either in xterm.js): +// DECUDK (https://vt100.net/docs/vt510-rm/DECUDK.html) +// DCS + q Pt ST (xterm) * Request Terminfo String +// DCS + p Pt ST (xterm) * set terminfo data + +namespace XtermSharp { + // + // The terminal's standard implementation of IInputHandler, this handles all + // input from the Parser. + // + // Refer to http://invisible-island.net/xterm/ctlseqs/ctlseqs.html to understand + // each function's header comment. + // + class InputHandler { + readonly ReadingBuffer readingBuffer; + readonly Terminal terminal; + readonly EscapeSequenceParser parser; + + public InputHandler (Terminal terminal) + { + this.terminal = terminal; + readingBuffer = new ReadingBuffer (); + + parser = new EscapeSequenceParser (); + parser.SetCsiHandlerFallback ((string collect, int [] pars, int flag) => { + terminal.Error ("Unknown CSI code", collect, pars, flag); + }); + parser.SetEscHandlerFallback ((string collect, int flag) => { + terminal.Error ("Unknown ESC code", collect, flag); + }); + parser.SetExecuteHandlerFallback ((code) => { + terminal.Error ("Unknown EXECUTE code", code); + }); + parser.SetOscHandlerFallback ((int identifier, string data) => { + terminal.Error ("Unknown OSC code", identifier, data); + }); + + // Print handler + unsafe { parser.SetPrintHandler (Print); } + parser.PrintStateReset = PrintStateReset; + + // CSI handler + parser.SetCsiHandler ('@', (pars, collect) => InsertChars (pars)); + parser.SetCsiHandler ('A', (pars, collect) => terminal.csiCUU (pars)); + parser.SetCsiHandler ('B', (pars, collect) => terminal.csiCUD (pars)); + parser.SetCsiHandler ('C', (pars, collect) => terminal.csiCUF (pars)); + parser.SetCsiHandler ('D', (pars, collect) => terminal.csiCUB (pars)); + parser.SetCsiHandler ('E', (pars, collect) => CursorNextLine (pars)); + parser.SetCsiHandler ('F', (pars, collect) => CursorPrecedingLine (pars)); + parser.SetCsiHandler ('G', (pars, collect) => terminal.csiCHA (pars)); + parser.SetCsiHandler ('H', (pars, collect) => terminal.csiCUP (pars)); + parser.SetCsiHandler ('I', (pars, collect) => CursorForwardTab (pars)); + parser.SetCsiHandler ('J', (pars, collect) => EraseInDisplay (pars)); + parser.SetCsiHandler ('K', (pars, collect) => EraseInLine (pars)); + parser.SetCsiHandler ('L', (pars, collect) => InsertLines (pars)); + parser.SetCsiHandler ('M', (pars, collect) => terminal.csiDL (pars)); + parser.SetCsiHandler ('P', (pars, collect) => terminal.csiDCH (pars)); + parser.SetCsiHandler ('S', (pars, collect) => ScrollUp (pars)); + parser.SetCsiHandler ('T', (pars, collect) => ScrollDown (pars)); + parser.SetCsiHandler ('X', (pars, collect) => EraseChars (pars)); + parser.SetCsiHandler ('Z', (pars, collect) => terminal.csiCBT (pars)); + parser.SetCsiHandler ('`', (pars, collect) => CharPosAbsolute (pars)); + parser.SetCsiHandler ('a', (pars, collect) => HPositionRelative (pars)); + parser.SetCsiHandler ('b', (pars, collect) => RepeatPrecedingCharacter (pars)); + parser.SetCsiHandler ('c', (pars, collect) => terminal.csiDA1 (pars, collect)); + parser.SetCsiHandler ('d', (pars, collect) => LinePosAbsolute (pars)); + parser.SetCsiHandler ('e', (pars, collect) => VPositionRelative (pars)); + parser.SetCsiHandler ('f', (pars, collect) => HVPosition (pars)); + parser.SetCsiHandler ('g', (pars, collect) => TabClear (pars)); + parser.SetCsiHandler ('h', (pars, collect) => SetMode (pars, collect)); + parser.SetCsiHandler ('l', (pars, collect) => ResetMode (pars, collect)); + parser.SetCsiHandler ('m', (pars, collect) => CharAttributes (pars)); + parser.SetCsiHandler ('n', (pars, collect) => terminal.csiDSR (pars, collect)); + parser.SetCsiHandler ('p', (pars, collect) => { + switch (collect) { + case "!": + terminal.SoftReset (); + break; + case "\"": + //TODO: SetConformanceLevel (pars, collect); + break; + default: + terminal.Error ("Unknown CSI code", collect, pars, "p"); + break; + } + }); + parser.SetCsiHandler ('q', (pars, collect) => SetCursorStyle (pars, collect)); + parser.SetCsiHandler ('r', (pars, collect) => { + if (collect == "") { + terminal.csiDECSTBM (pars); + } + }); + parser.SetCsiHandler ('s', (pars, collect) => { + // "CSI s" is overloaded, can mean save cursor, but also set the margins with DECSLRM + if (terminal.MarginMode) { + this.terminal.csiDECSLRM (pars); + } else { + terminal.SaveCursor (); + } + }); + parser.SetCsiHandler ('t', (pars, collect) => terminal.csiDISPATCH (pars)); + parser.SetCsiHandler ('u', (pars, collect) => terminal.RestoreCursor ()); + parser.SetCsiHandler ('v', (pars, collect) => terminal.csiDECCRA (pars, collect)); + parser.SetCsiHandler ('y', (pars, collect) => terminal.csiDECRQCRA (pars)); + parser.SetCsiHandler ('x', (pars, collect) => { + switch (collect) { + case "$": + terminal.csiDECFRA (pars); + break; + default: + terminal.Error ("Unknown CSI code", collect, pars, "x"); + break; + } + }); + parser.SetCsiHandler ('z', (pars, collect) => { + switch (collect) { + case "$": + terminal.csiDECERA (pars); + break; + case "'": + // TODO: Enable Locator Reporting (DECELR) + // Enable Locator Reporting (DECELR). + // Valid values for the first parameter: + // Ps = 0 ⇒ Locator disabled (default). + // Ps = 1 ⇒ Locator enabled. + // Ps = 2 ⇒ Locator enabled for one report, then disabled. + // The second parameter specifies the coordinate unit for locator + // reports. + // Valid values for the second parameter: + // Pu = 0 or omitted ⇒ default to character cells. + // Pu = 1 ⇐ device physical pixels. + // Pu = 2 ⇐ character cells. + break; + default: + terminal.Error ("Unknown CSI code", collect, pars, "z"); + break; + } + }); + parser.SetCsiHandler ('{', (pars, collect) => { + switch (collect) { + case "$": + terminal.csiDECSERA (pars); + break; + default: + terminal.Error ("Unknown CSI code", collect, pars, "{"); + break; + } + }); + parser.SetCsiHandler ('}', (pars, collect) => { + switch (collect) { + case "'": + terminal.csiDECIC (pars); + break; + default: + terminal.Error ("Unknown CSI code", collect, pars, "}"); + break; + } + }); + parser.SetCsiHandler ('~', (pars, collect) => terminal.csiDECDC (pars)); + + + + + // Execute Handler + parser.SetExecuteHandler (7, terminal.Bell); + parser.SetExecuteHandler (10, terminal.LineFeed); + parser.SetExecuteHandler (11, terminal.LineFeedBasic); // VT Vertical Tab - ignores auto-new-line behavior in ConvertEOL + parser.SetExecuteHandler (12, terminal.LineFeedBasic); + parser.SetExecuteHandler (13, terminal.CarriageReturn); + parser.SetExecuteHandler (8, terminal.Backspace); + parser.SetExecuteHandler (9, Tab); + parser.SetExecuteHandler (14, ShiftOut); + parser.SetExecuteHandler (15, ShiftIn); + // Comment in original FIXME: What do to with missing? Old code just added those to print. + + // some C1 control codes - FIXME: should those be enabled by default? + parser.SetExecuteHandler (0x84 /* Index */, () => terminal.Index ()); + parser.SetExecuteHandler (0x85 /* Next Line */, terminal.NextLine); + parser.SetExecuteHandler (0x88 /* Horizontal Tabulation Set */, TabSet); + + // + // OSC handler + // + // 0 - icon name + title + parser.SetOscHandler (0, SetTitleAndIcon); + // 1 - icon name + parser.SetOscHandler (1, SetIconTitle); + // 2 - title + parser.SetOscHandler (2, SetTitle); + // 3 - set property X in the form "prop=value" + // 4 - Change Color Number() + // 5 - Change Special Color Number + // 6 - Enable/disable Special Color Number c + // 7 - current directory? (not in xterm spec, see https://gitlab.com/gnachman/iterm2/issues/3939) + // 10 - Change VT100 text foreground color to Pt. + // 11 - Change VT100 text background color to Pt. + // 12 - Change text cursor color to Pt. + // 13 - Change mouse foreground color to Pt. + // 14 - Change mouse background color to Pt. + // 15 - Change Tektronix foreground color to Pt. + // 16 - Change Tektronix background color to Pt. + // 17 - Change highlight background color to Pt. + // 18 - Change Tektronix cursor color to Pt. + // 19 - Change highlight foreground color to Pt. + // 46 - Change Log File to Pt. + // 50 - Set Font to Pt. + // 51 - reserved for Emacs shell. + // 52 - Manipulate Selection Data. + // 104 ; c - Reset Color Number c. + // 105 ; c - Reset Special Color Number c. + // 106 ; c; f - Enable/disable Special Color Number c. + // 110 - Reset VT100 text foreground color. + // 111 - Reset VT100 text background color. + // 112 - Reset text cursor color. + // 113 - Reset mouse foreground color. + // 114 - Reset mouse background color. + // 115 - Reset Tektronix foreground color. + // 116 - Reset Tektronix background color. + + // + // ESC handlers + // + parser.SetEscHandler ("7", (c, f) => terminal.SaveCursor()); + parser.SetEscHandler ("8", (c, f) => terminal.RestoreCursor()); + parser.SetEscHandler ("D", (c, f) => terminal.Index ()); + parser.SetEscHandler ("E", (c, b) => terminal.NextLine ()); + parser.SetEscHandler ("H", (c, f) => TabSet ()); + parser.SetEscHandler ("M", (c, f) => ReverseIndex ()); + parser.SetEscHandler ("=", (c, f) => KeypadApplicationMode ()); + parser.SetEscHandler (">", (c, f) => KeypadNumericMode ()); + parser.SetEscHandler ("c", (c, f) => Reset ()); + parser.SetEscHandler ("n", (c, f) => SetgLevel (2)); + parser.SetEscHandler ("o", (c, f) => SetgLevel (3)); + parser.SetEscHandler ("|", (c, f) => SetgLevel (3)); + parser.SetEscHandler ("}", (c, f) => SetgLevel (2)); + parser.SetEscHandler ("~", (c, f) => SetgLevel (1)); + parser.SetEscHandler ("%@", (c, f) => SelectDefaultCharset ()); + parser.SetEscHandler ("%G", (c, f) => SelectDefaultCharset ()); + parser.SetEscHandler ("#3", (c, f) => SetDoubleHeightTop ()); // dhtop + parser.SetEscHandler ("#4", (c, f) => SetDoubleHeightBottom ()); // dhbot + parser.SetEscHandler ("#5", (c, f) => SingleWidthSingleHeight ()); // swsh + parser.SetEscHandler ("#6", (c, f) => DoubleWidthSingleHeight ()); // dwsh + foreach (var bflag in CharSets.All.Keys) { + char flag = (char)bflag; + parser.SetEscHandler ("(" + flag, (code, f) => SelectCharset ("(" + flag)); + parser.SetEscHandler (")" + flag, (code, f) => SelectCharset (")" + flag)); + parser.SetEscHandler ("*" + flag, (code, f) => SelectCharset ("*" + flag)); + parser.SetEscHandler ("+" + flag, (code, f) => SelectCharset ("+" + flag)); + parser.SetEscHandler ("-" + flag, (code, f) => SelectCharset ("-" + flag)); + parser.SetEscHandler ("." + flag, (code, f) => SelectCharset ("." + flag)); + parser.SetEscHandler ("/" + flag, (code, f) => SelectCharset ("/" + flag)); // TODO: supported? + } + + // Error handler + parser.SetErrorHandler ((state) => { + terminal.Error ("Parsing error, state: ", state); + return state; + }); + + // DCS Handler + parser.SetDcsHandler ("$q", new DECRQSS (terminal)); + } + + public void Parse (byte [] data, int length = -1) + { + if (length == -1) + length = data.Length; + + var buffer = terminal.Buffer; + var cursorStartX = buffer.X; + var cursorStartY = buffer.Y; + + unsafe { + fixed (byte* p = &data [0]) { + parser.Parse (p, length); + } + } + + buffer = terminal.Buffer; + } + + public void Parse (IntPtr data, int length) + { + var buffer = terminal.Buffer; + var cursorStartX = buffer.X; + var cursorStartY = buffer.Y; + + unsafe { parser.Parse ((byte*)data, length); } + + buffer = terminal.Buffer; + } + + // + // CSI Ps L + // Insert Ps Line(s) (default = 1) (IL). + // + private void InsertLines (int [] pars) + { + var p = Math.Max (pars.Length == 0 ? 1 : pars [0], 1); + var buffer = terminal.Buffer; + var row = buffer.Y + buffer.YBase; + + var scrollBottomRowsOffset = terminal.Rows - 1 - buffer.ScrollBottom; + var scrollBottomAbsolute = terminal.Rows - 1 + buffer.YBase - scrollBottomRowsOffset + 1; + + var eraseAttr = terminal.EraseAttr (); + while (p-- != 0) { + // test: echo -e '\e[44m\e[1L\e[0m' + // blankLine(true) - xterm/linux behavior + buffer.Lines.Splice (scrollBottomAbsolute - 1, 1); + var newLine = buffer.GetBlankLine (eraseAttr); + buffer.Lines.Splice (row, 0, newLine); + } + + // this.maxRange(); + terminal.UpdateRange (buffer.Y); + terminal.UpdateRange (buffer.ScrollBottom); + } + + // + // ESC ( C + // Designate G0 Character Set, VT100, ISO 2022. + // ESC ) C + // Designate G1 Character Set (ISO 2022, VT100). + // ESC * C + // Designate G2 Character Set (ISO 2022, VT220). + // ESC + C + // Designate G3 Character Set (ISO 2022, VT220). + // ESC - C + // Designate G1 Character Set (VT300). + // ESC . C + // Designate G2 Character Set (VT300). + // ESC / C + // Designate G3 Character Set (VT300). C = A -> ISO Latin-1 Supplemental. - Supported? + // + void SelectCharset (string p) + { + if (p.Length != 2) + SelectDefaultCharset (); + byte ch; + + Dictionary charset; + if (!CharSets.All.TryGetValue ((byte)p [1], out charset)) + charset = null; + + switch (p [0]) { + case '(': + ch = 0; + break; + case ')': + case '-': + ch = 1; + break; + case '*': + case '.': + ch = 2; + break; + case '+': + ch = 3; + break; + default: + // includes '/' -> unsupported? (MIGUEL TODO) + return; + } + terminal.SetgCharset (ch, charset); + } + + // + // ESC # NUMBER + // + void DoubleWidthSingleHeight () + { + } + + // + // dhtop + // + void SetDoubleHeightTop () {} + + // dhbot + void SetDoubleHeightBottom () { } // dhbot + + // + // swsh + // + void SingleWidthSingleHeight () { } + + // + // ESC % @ + // ESC % G + // Select default character set. UTF-8 is not supported (string are unicode anyways) + // therefore ESC % G does the same. + // + void SelectDefaultCharset () + { + terminal.SetgLevel (0); + terminal.SetgCharset (0, CharSets.Default); + } + + // + // ESC n + // ESC o + // ESC | + // ESC } + // ESC ~ + // DEC mnemonic: LS (https://vt100.net/docs/vt510-rm/LS.html) + // When you use a locking shift, the character set remains in GL or GR until + // you use another locking shift. (partly supported) + // + void SetgLevel (int n) + { + terminal.SetgLevel (n); + } + + // + // ESC c + // DEC mnemonic: RIS (https://vt100.net/docs/vt510-rm/RIS.html) + // Reset to initial state. + // + void Reset () + { + parser.Reset (); + terminal.Reset (); + } + + // + // ESC > + // DEC mnemonic: DECKPNM (https://vt100.net/docs/vt510-rm/DECKPNM.html) + // Enables the keypad to send numeric characters to the host. + // + void KeypadNumericMode () + { + terminal.ApplicationKeypad = false; + terminal.SyncScrollArea (); + } + + // + // ESC = + // DEC mnemonic: DECKPAM (https://vt100.net/docs/vt510-rm/DECKPAM.html) + // Enables the numeric keypad to send application sequences to the host. + // + void KeypadApplicationMode () + { + terminal.ApplicationKeypad = true; + terminal.SyncScrollArea (); + } + + // + // ESC M + // C1.RI + // DEC mnemonic: HTS + // Moves the cursor up one line in the same column. If the cursor is at the top margin, + // the page scrolls down. + // + void ReverseIndex () + { + terminal.ReverseIndex (); + } + + /// + /// OSC 0; ST (set window and icon title) + /// Proxy to set window title. + /// + /// + void SetTitleAndIcon (string data) + { + terminal.SetTitle (data ?? string.Empty); + terminal.SetIconTitle (data ?? string.Empty); + } + + /// + /// OSC 2; ST (set window title) + /// Proxy to set window title. + /// + /// + void SetTitle (string data) + { + terminal.SetTitle (data ?? string.Empty); + } + + /// + /// OSC 1; ST (set window title) + /// Proxy to set icon title. + /// + void SetIconTitle (string data) + { + terminal.SetIconTitle (data ?? string.Empty); + } + + // + // ESC H + // C1.HTS + // DEC mnemonic: HTS (https://vt100.net/docs/vt510-rm/HTS.html) + // Sets a horizontal tab stop at the column position indicated by + // the value of the active column when the terminal receives an HTS. + // + void TabSet () + { + terminal.Buffer.TabSet (terminal.Buffer.X); + } + + // SI + // ShiftIn (Control-O) Switch to standard character set. This invokes the G0 character set + void ShiftIn () + { + terminal.SetgLevel (0); + } + + // SO + // ShiftOut (Control-N) Switch to alternate character set. This invokes the G1 character set + void ShiftOut () + { + terminal.SetgLevel (1); + } + + // + // Horizontal tab (Control-I) + // + void Tab () + { + var originalX = terminal.Buffer.X; + terminal.Buffer.X = terminal.Buffer.NextTabStop (); + if (terminal.Options.ScreenReaderMode) + terminal.EmitA11yTab (terminal.Buffer.X - originalX); + } + + // + // Helper method to erase cells in a terminal row. + // The cell gets replaced with the eraseChar of the terminal. + // @param y row index + // @param start first cell index to be erased + // @param end end - 1 is last erased cell + // + void EraseInBufferLine (int y, int start, int end, bool clearWrap = false) + { + var line = terminal.Buffer.Lines [terminal.Buffer.YBase + y]; + var cd = new CharData (terminal.EraseAttr ()); + line.ReplaceCells (start, end, cd); + if (clearWrap) + line.IsWrapped = false; + } + + // + // Helper method to reset cells in a terminal row. + // The cell gets replaced with the eraseChar of the terminal and the isWrapped property is set to false. + // @param y row index + // + void ResetBufferLine (int y) + { + EraseInBufferLine (y, 0, terminal.Cols, true); + } + + // + // CSI Ps SP q Set cursor style (DECSCUSR, VT520). + // Ps = 0 -> blinking block. + // Ps = 1 -> blinking block (default). + // Ps = 2 -> steady block. + // Ps = 3 -> blinking underline. + // Ps = 4 -> steady underline. + // Ps = 5 -> blinking bar (xterm). + // Ps = 6 -> steady bar (xterm). + // + void SetCursorStyle (int [] pars, string collect) + { + if (collect != " ") + return; + + var p = Math.Max (pars.Length == 0 ? 1 : pars [0], 1); + switch (p) { + case 1: + terminal.SetCursorStyle (CursorStyle.BlinkBlock); + break; + case 2: + terminal.SetCursorStyle (CursorStyle.SteadyBlock); + break; + case 3: + terminal.SetCursorStyle (CursorStyle.BlinkUnderline); + break; + case 4: + terminal.SetCursorStyle (CursorStyle.SteadyUnderline); + break; + case 5: + terminal.SetCursorStyle (CursorStyle.BlinkingBar); + break; + case 6: + terminal.SetCursorStyle (CursorStyle.SteadyBar); + break; + } + } + + + // + // CSI Pm m Character Attributes (SGR). + // Ps = 0 -> Normal (default). + // Ps = 1 -> Bold. + // Ps = 2 -> Faint, decreased intensity (ISO 6429). + // Ps = 4 -> Underlined. + // Ps = 5 -> Blink (appears as Bold). + // Ps = 7 -> Inverse. + // Ps = 8 -> Invisible, i.e., hidden (VT300). + // Ps = 2 2 -> Normal (neither bold nor faint). + // Ps = 2 4 -> Not underlined. + // Ps = 2 5 -> Steady (not blinking). + // Ps = 2 7 -> Positive (not inverse). + // Ps = 2 8 -> Visible, i.e., not hidden (VT300). + // Ps = 3 0 -> Set foreground color to Black. + // Ps = 3 1 -> Set foreground color to Red. + // Ps = 3 2 -> Set foreground color to Green. + // Ps = 3 3 -> Set foreground color to Yellow. + // Ps = 3 4 -> Set foreground color to Blue. + // Ps = 3 5 -> Set foreground color to Magenta. + // Ps = 3 6 -> Set foreground color to Cyan. + // Ps = 3 7 -> Set foreground color to White. + // Ps = 3 9 -> Set foreground color to default (original). + // Ps = 4 0 -> Set background color to Black. + // Ps = 4 1 -> Set background color to Red. + // Ps = 4 2 -> Set background color to Green. + // Ps = 4 3 -> Set background color to Yellow. + // Ps = 4 4 -> Set background color to Blue. + // Ps = 4 5 -> Set background color to Magenta. + // Ps = 4 6 -> Set background color to Cyan. + // Ps = 4 7 -> Set background color to White. + // Ps = 4 9 -> Set background color to default (original). + // + // If 16-color support is compiled, the following apply. Assume + // that xterm's resources are set so that the ISO color codes are + // the first 8 of a set of 16. Then the aixterm colors are the + // bright versions of the ISO colors: + // Ps = 9 0 -> Set foreground color to Black. + // Ps = 9 1 -> Set foreground color to Red. + // Ps = 9 2 -> Set foreground color to Green. + // Ps = 9 3 -> Set foreground color to Yellow. + // Ps = 9 4 -> Set foreground color to Blue. + // Ps = 9 5 -> Set foreground color to Magenta. + // Ps = 9 6 -> Set foreground color to Cyan. + // Ps = 9 7 -> Set foreground color to White. + // Ps = 1 0 0 -> Set background color to Black. + // Ps = 1 0 1 -> Set background color to Red. + // Ps = 1 0 2 -> Set background color to Green. + // Ps = 1 0 3 -> Set background color to Yellow. + // Ps = 1 0 4 -> Set background color to Blue. + // Ps = 1 0 5 -> Set background color to Magenta. + // Ps = 1 0 6 -> Set background color to Cyan. + // Ps = 1 0 7 -> Set background color to White. + // + // If xterm is compiled with the 16-color support disabled, it + // supports the following, from rxvt: + // Ps = 1 0 0 -> Set foreground and background color to + // default. + // + // If 88- or 256-color support is compiled, the following apply. + // Ps = 3 8 ; 5 ; Ps -> Set foreground color to the second + // Ps. + // Ps = 4 8 ; 5 ; Ps -> Set background color to the second + // Ps. + // + void CharAttributes (int [] pars) + { + // Optimize a single SGR0. + if (pars.Length == 1 && pars [0] == 0) { + terminal.CurAttr = CharData.DefaultAttr; + return; + } + + var parCount = pars.Length; + var flags = (FLAGS)(terminal.CurAttr >> 18); + var fg = (terminal.CurAttr >> 9) & 0x1ff; + var bg = terminal.CurAttr & 0x1ff; + var def = CharData.DefaultAttr; + + for (var i = 0; i < parCount; i++) { + int p = pars [i]; + if (p >= 30 && p <= 37) { + // fg color 8 + fg = p - 30; + } else if (p >= 40 && p <= 47) { + // bg color 8 + bg = p - 40; + } else if (p >= 90 && p <= 97) { + // fg color 16 + p += 8; + fg = p - 90; + } else if (p >= 100 && p <= 107) { + // bg color 16 + p += 8; + bg = p - 100; + } else if (p == 0) { + // default + + flags = (FLAGS)(def >> 18); + fg = (def >> 9) & 0x1ff; + bg = def & 0x1ff; + // flags = 0; + // fg = 0x1ff; + // bg = 0x1ff; + } else if (p == 1) { + // bold text + flags |= FLAGS.BOLD; + } else if (p == 3) { + // italic text + flags |= FLAGS.ITALIC; + } else if (p == 4) { + // underlined text + flags |= FLAGS.UNDERLINE; + } else if (p == 5) { + // blink + flags |= FLAGS.BLINK; + } else if (p == 7) { + // inverse and positive + // test with: echo -e '\e[31m\e[42mhello\e[7mworld\e[27mhi\e[m' + flags |= FLAGS.INVERSE; + } else if (p == 8) { + // invisible + flags |= FLAGS.INVISIBLE; + } else if (p == 2) { + // dimmed text + flags |= FLAGS.DIM; + } else if (p == 22) { + // not bold nor faint + flags &= ~FLAGS.BOLD; + flags &= ~FLAGS.DIM; + } else if (p == 23) { + // not italic + flags &= ~FLAGS.ITALIC; + } else if (p == 24) { + // not underlined + flags &= ~FLAGS.UNDERLINE; + } else if (p == 25) { + // not blink + flags &= ~FLAGS.BLINK; + } else if (p == 27) { + // not inverse + flags &= ~FLAGS.INVERSE; + } else if (p == 28) { + // not invisible + flags &= ~FLAGS.INVISIBLE; + } else if (p == 39) { + // reset fg + fg = (CharData.DefaultAttr >> 9) & 0x1ff; + } else if (p == 49) { + // reset bg + bg = CharData.DefaultAttr & 0x1ff; + } else if (p == 38) { + if (i + 1 < parCount) { + // fg color 256 + if (pars [i + 1] == 2) { + // Well this is a problem, if there are 3 arguments, expect R/G/B, if there are + // more than 3, skip the first that would be the colorspace + if (i + 5 < parCount) { + i += 1; + } + if (i + 4 < parCount) { + fg = terminal.MatchColor ( + pars [i + 2] & 0xff, + pars [i + 3] & 0xff, + pars [i + 4] & 0xff); + if (fg == -1) + fg = 0x1ff; + } + // Given the historical disagreement that was caused by an ambiguous spec, + // we eat all the remaining parameters. + i = parCount; + } else if (pars [i + 1] == 5) { + if (i + 2 < parCount) { + p = pars [i + 2] & 0xff; + fg = p; + i += 1; + } + i += 1; + } + } + } else if (p == 48) { + if (i + 1 < parCount) { + // bg color 256 + if (pars [i + 1] == 2) { + // Well this is a problem, if there are 3 arguments, expect R/G/B, if there are + // more than 3, skip the first that would be the colorspace + if (i + 5 < parCount) { + i += 1; + } + if (i + 4 < parCount) { + bg = terminal.MatchColor ( + pars [i + 2] & 0xff, + pars [i + 3] & 0xff, + pars [i + 4] & 0xff); + if (bg == -1) + bg = 0x1ff; + } + // Given the historical disagreement that was caused by an ambiguous spec, + // we eat all the remaining parameters. + i = parCount; + } else if (pars [i + 1] == 5) { + if (i + 2 < parCount) { + p = pars [i + 2] & 0xff; + bg = p; + i += 1; + } + i += 1; + } + } + } else if (p == 100) { + // reset fg/bg + fg = (def >> 9) & 0x1ff; + bg = def & 0x1ff; + } else { + terminal.Error ("Unknown SGR attribute: %d.", p); + } + } + terminal.CurAttr = ((int)flags << 18) | (fg << 9) | bg; + } + + void ResetMode (int [] pars, string collect) + { + if (pars.Length == 0) + return; + + if (pars.Length > 1) { + for (var i = 0; i < pars.Length; i++) + terminal.csiDECRESET (pars [i], ""); + + + return; + } + terminal.csiDECRESET (pars [0], collect); + } + + void SetMode (int [] pars, string collect) + { + if (pars.Length == 0) + return; + + if (pars.Length > 1) { + for (var i = 0; i < pars.Length; i++) + terminal.csiDECSET (pars [i], ""); + + + return; + } + terminal.csiDECSET (pars [0], collect); + } + + + // + // CSI Ps g Tab Clear (TBC). + // Ps = 0 -> Clear Current Column (default). + // Ps = 3 -> Clear All. + // Potentially: + // Ps = 2 -> Clear Stops on Line. + // http://vt100.net/annarbor/aaa-ug/section6.html + // + void TabClear (int [] pars) + { + var p = pars.Length == 0 ? 0 : pars [0]; + var buffer = terminal.Buffer; + if (p == 0) + buffer.ClearStop (buffer.X); + else if (p == 3) + buffer.ClearTabStops (); + } + + // + // CSI Ps ; Ps f + // Horizontal and Vertical Position [row;column] (default = + // [1,1]) (HVP). + // + void HVPosition (int [] pars) + { + int p = 1; + int q = 1; + if (pars.Length > 0) { + p = Math.Max (pars [0], 1); + if (pars.Length > 1) + q = Math.Max (pars [1], 1); + } + var buffer = terminal.Buffer; + buffer.Y = p - 1; + if (buffer.Y >= terminal.Rows) + buffer.Y = terminal.Rows - 1; + + buffer.X = q - 1; + if (buffer.X >= terminal.Cols) + buffer.X = terminal.Cols - 1; + } + + // + // CSI Pm e Vertical Position Relative (VPR) + // [rows] (default = [row+1,column]) + // reuse CSI Ps B ? + // + void VPositionRelative (int [] pars) + { + var p = Math.Max (pars.Length == 0 ? 1 : pars [0], 1); + var buffer = terminal.Buffer; + + var newY = buffer.Y + p; + + if (newY >= terminal.Rows) { + buffer.Y = terminal.Rows - 1; + } else + buffer.Y = newY; + + // If the end of the line is hit, prevent this action from wrapping around to the next line. + if (buffer.X >= terminal.Cols) + buffer.X--; + } + + // + // CSI Pm d Vertical Position Absolute (VPA) + // [row] (default = [1,column]) + // + void LinePosAbsolute (int [] pars) + { + var p = Math.Max (pars.Length == 0 ? 1 : pars [0], 1); + var buffer = terminal.Buffer; + + if (p - 1 >= terminal.Rows) + buffer.Y = terminal.Rows - 1; + else + buffer.Y = p - 1; + } + + // + // CSI Ps b Repeat the preceding graphic character Ps times (REP). + // + void RepeatPrecedingCharacter (int [] pars) + { + var p = Math.Max (pars.Length == 0 ? 1 : pars [0], 1); + + var buffer = terminal.Buffer; + var line = buffer.Lines [buffer.YBase + buffer.Y]; + CharData cd = buffer.X - 1 < 0 ? new CharData (CharData.DefaultAttr) : line [buffer.X - 1]; + line.ReplaceCells (buffer.X, + buffer.X + p, + cd); + // FIXME: no UpdateRange here? + } + + // + //CSI Pm a Character Position Relative + // [columns] (default = [row,col+1]) (HPR) + //reuse CSI Ps C ? + // + void HPositionRelative (int [] pars) + { + var p = Math.Max (pars.Length == 0 ? 1 : pars [0], 1); + var buffer = terminal.Buffer; + + buffer.X += p; + if (buffer.X >= terminal.Cols) + buffer.X = terminal.Cols - 1; + } + + // + // CSI Pm ` Character Position Absolute + // [column] (default = [row,1]) (HPA). + // + void CharPosAbsolute (int [] pars) + { + var p = Math.Max (pars.Length == 0 ? 1 : pars [0], 1); + var buffer = terminal.Buffer; + + buffer.X = p - 1; + if (buffer.X >= terminal.Cols) + buffer.X = terminal.Cols - 1; + } + + // + // CSI Ps X + // Erase Ps Character(s) (default = 1) (ECH). + // + void EraseChars (int [] pars) + { + var p = Math.Max (pars.Length == 0 ? 1 : pars [0], 1); + + var buffer = terminal.Buffer; + buffer.Lines [buffer.Y + buffer.YBase].ReplaceCells ( + buffer.X, + buffer.X + p, + new CharData (terminal.EraseAttr ())); + } + + // + // CSI Ps T Scroll down Ps lines (default = 1) (SD). + // + void ScrollDown (int [] pars) + { + var p = Math.Max (pars.Length == 0 ? 1 : pars [0], 1); + var buffer = terminal.Buffer; + + while (p-- != 0) { + buffer.Lines.Splice (buffer.YBase + buffer.ScrollBottom, 1); + buffer.Lines.Splice (buffer.YBase + buffer.ScrollBottom, 0, buffer.GetBlankLine (CharData.DefaultAttr)); + } + // this.maxRange(); + terminal.UpdateRange (buffer.ScrollTop); + terminal.UpdateRange (buffer.ScrollBottom); + + } + + // + // CSI Ps S Scroll up Ps lines (default = 1) (SU). + // + void ScrollUp (int [] pars) + { + var p = Math.Max (pars.Length == 0 ? 1 : pars [0], 1); + var buffer = terminal.Buffer; + + while (p-- != 0) { + buffer.Lines.Splice (buffer.YBase + buffer.ScrollTop, 1); + buffer.Lines.Splice (buffer.YBase + buffer.ScrollBottom, 0, buffer.GetBlankLine (CharData.DefaultAttr)); + } + // this.maxRange(); + terminal.UpdateRange (buffer.ScrollTop); + terminal.UpdateRange (buffer.ScrollBottom); + } + + // + // CSI Ps K Erase in Line (EL). + // Ps = 0 -> Erase to Right (default). + // Ps = 1 -> Erase to Left. + // Ps = 2 -> Erase All. + // CSI ? Ps K + // Erase in Line (DECSEL). + // Ps = 0 -> Selective Erase to Right (default). + // Ps = 1 -> Selective Erase to Left. + // Ps = 2 -> Selective Erase All. + // + void EraseInLine (int [] pars) + { + var p = pars.Length == 0 ? 0 : pars [0]; + var buffer = terminal.Buffer; + switch (p) { + case 0: + EraseInBufferLine (buffer.Y, buffer.X, terminal.Cols); + break; + case 1: + EraseInBufferLine (buffer.Y, 0, buffer.X + 1); + break; + case 2: + EraseInBufferLine (buffer.Y, 0, terminal.Cols); + break; + } + terminal.UpdateRange (buffer.Y); + } + + // + // CSI Ps J Erase in Display (ED). + // Ps = 0 -> Erase Below (default). + // Ps = 1 -> Erase Above. + // Ps = 2 -> Erase All. + // Ps = 3 -> Erase Saved Lines (xterm). + // CSI ? Ps J + // Erase in Display (DECSED). + // Ps = 0 -> Selective Erase Below (default). + // Ps = 1 -> Selective Erase Above. + // Ps = 2 -> Selective Erase All. + // + void EraseInDisplay (int [] pars) + { + var p = pars.Length == 0 ? 0 : pars [0]; + var buffer = terminal.Buffer; + int j; + switch (p) { + case 0: + j = buffer.Y; + terminal.UpdateRange (j); + EraseInBufferLine (j++, buffer.X, terminal.Cols, buffer.X == 0); + for (; j < terminal.Rows; j++) { + ResetBufferLine (j); + } + terminal.UpdateRange (j - 1); + break; + case 1: + j = buffer.Y; + terminal.UpdateRange (j); + // Deleted front part of line and everything before. This line will no longer be wrapped. + EraseInBufferLine (j, 0, buffer.X + 1, true); + if (buffer.X + 1 >= terminal.Cols) { + // Deleted entire previous line. This next line can no longer be wrapped. + buffer.Lines [j + 1].IsWrapped = false; + } + while (j-- != 0) { + ResetBufferLine (j); + } + terminal.UpdateRange (0); + break; + case 2: + j = terminal.Rows; + terminal.UpdateRange (j - 1); + while (j-- != 0) { + ResetBufferLine (j); + } + terminal.UpdateRange (0); + break; + case 3: + // Clear scrollback (everything not in viewport) + var scrollBackSize = buffer.Lines.Length - terminal.Rows; + if (scrollBackSize > 0) { + buffer.Lines.TrimStart (scrollBackSize); + buffer.YBase = Math.Max (buffer.YBase - scrollBackSize, 0); + buffer.YDisp = Math.Max (buffer.YDisp - scrollBackSize, 0); + } + break; + + } + } + + // + // CSI Ps I + // Cursor Forward Tabulation Ps tab stops (default = 1) (CHT). + // + void CursorForwardTab (int [] pars) + { + int param = Math.Max (pars.Length > 0 ? pars [0] : 1, 1); + var buffer = terminal.Buffer; + while (param-- != 0) + buffer.X = buffer.NextTabStop (); + } + + // + // CSI Ps F + // Cursor Preceding Line Ps Times (default = 1) (CNL). + // reuse CSI Ps A ? + // + void CursorPrecedingLine (int [] pars) + { + int param = Math.Max (pars.Length > 0 ? pars [0] : 1, 1); + var buffer = terminal.Buffer; + + buffer.Y -= param; + var newY = buffer.Y - param; + if (newY < 0) + buffer.Y = 0; + else + buffer.Y = newY; + buffer.X = 0; + } + + // + // CSI Ps E + // Cursor Next Line Ps Times (default = 1) (CNL). + // same as CSI Ps B? + // + void CursorNextLine (int [] pars) + { + int param = Math.Max (pars.Length > 0 ? pars [0] : 1, 1); + var buffer = terminal.Buffer; + + var newY = buffer.Y + param; + + if (newY >= terminal.Rows) + buffer.Y = terminal.Rows - 1; + else + buffer.Y = newY; + + buffer.X = 0; + } + + // + // CSI Ps @ + // Insert Ps (Blank) Character(s) (default = 1) (ICH). + // + void InsertChars (int [] pars) + { + terminal.RestrictCursor (); + var buffer = terminal.Buffer; + var cd = new CharData (terminal.EraseAttr ()); + + buffer.Lines [buffer.Y + buffer.YBase].InsertCells ( + buffer.X, + pars.Length > 0 ? Math.Max(pars [0], 1) : 1, + rightMargin: terminal.MarginMode ? buffer.MarginRight : buffer.Cols - 1, + cd); + + terminal.UpdateRange (buffer.Y); + } + + void PrintStateReset() + { + readingBuffer.Reset (); + } + + unsafe void Print (byte* data, int start, int end) + { + readingBuffer.Prepare (data, start, end - start); + + var buffer = terminal.Buffer; + var charset = terminal.Charset; + var screenReaderMode = terminal.Options.ScreenReaderMode; + var cols = terminal.Cols; + var wrapAroundMode = terminal.Wraparound; + var insertMode = terminal.InsertMode; + var curAttr = terminal.CurAttr; + var bufferRow = buffer.Lines [buffer.Y + buffer.YBase]; + + terminal.UpdateRange (buffer.Y); + + while (readingBuffer.HasNext()) { + var ch = ' '; + var chWidth = 0; + int code = 32; + byte bufferValue = readingBuffer.GetNext(); + var n = RuneExt.ExpectedSizeFromFirstByte(bufferValue); + if (n == -1 || n == 1) { + var chSet = false; + if (bufferValue < 127 && charset != null) { + var str = charset[bufferValue]; + if (!string.IsNullOrEmpty(str)) { + ch = str[0]; + // Every single mapping in the charset only takes one slot + chWidth = 1; + chSet = true; + } + } + + if (!chSet) { + (var rune, var size) = Rune.DecodeRune(new byte[] { bufferValue }); + chWidth = size; + ch = rune.ToString()[0]; + } + + } + // Invalid UTF-8 sequence, client sent us some junk, happens if we run with the wrong locale set + // for example if LANG=en + else if (readingBuffer.BytesLeft() >= (n - 1)) { + var bytes = new byte[n]; + bytes[0] = bufferValue; + for (int j = 1; j < n; j++) + bytes[j] = readingBuffer.GetNext(); + + string s = Encoding.UTF8.GetString(bytes, 0, bytes.Length); + if (s.Length > 0) { + ch = s[0]; + } + else { + ch = ' '; + } + + // Now the challenge is that we have a character, not a rune, and we want to compute + // the width of it. + if (s.Length == 1) { + chWidth = RuneHelper.ConsoleWidth(s[0]); + } + else { + chWidth = 0; + + foreach (var scalar in s) { + chWidth = Math.Max(chWidth, RuneHelper.ConsoleWidth(scalar)); + } + } + + } + else { + readingBuffer.Putback(bufferValue); + return; + } + + // get charset replacement character + // charset are only defined for ASCII, therefore we only + // search for an replacement char if code < 127 + if (bufferValue < 127 && charset != null) { + + // MIGUEL-FIXME - this is broken for dutch cahrset that returns two letters "ij", need to figure out what to do + if (charset.TryGetValue (bufferValue, out var str)) { + ch = str [0]; + code = ch; + } + } + if (screenReaderMode) + terminal.EmitChar (ch); + + // insert combining char at last cursor position + // FIXME: needs handling after cursor jumps + // buffer.x should never be 0 for a combining char + // since they always follow a cell consuming char + // therefore we can test for buffer.x to avoid overflow left + if (chWidth == 0 && buffer.X > 0) { + // MIGUEL TODO: in the original code the getter might return a null value + // does this mean that JS returns null for out of bounsd? + if (buffer.X >= 1 && buffer.X < bufferRow.Length) { + var chMinusOne = bufferRow [buffer.X - 1]; + if (chMinusOne.Width == 0) { + // found empty cell after fullwidth, need to go 2 cells back + // it is save to step 2 cells back here + // since an empty cell is only set by fullwidth chars + if (buffer.X >= 2) { + var chMinusTwo = bufferRow [buffer.X - 2]; + + chMinusTwo.Code += ch; + chMinusTwo.Rune = (uint)code; + bufferRow [buffer.X - 2] = chMinusTwo; // must be set explicitly now + } + } else { + chMinusOne.Code += ch; + chMinusOne.Rune = (uint)code; + bufferRow [buffer.X - 1] = chMinusOne; // must be set explicitly now + } + } + continue; + } + + // goto next line if ch would overflow + // TODO: needs a global min terminal width of 2 + // FIXME: additionally ensure chWidth fits into a line + // --> maybe forbid cols right) { + // autowrap - DECAWM + // automatically wraps to the beginning of the next line + if (wrapAroundMode) { + buffer.X = terminal.MarginMode ? buffer.MarginLeft : 0; + + if (buffer.Y >= buffer.ScrollBottom) { + terminal.Scroll (isWrapped: true); + } else { + // The line already exists (eg. the initial viewport), mark it as a + // wrapped line + buffer.Lines [++buffer.Y].IsWrapped = true; + } + + // row changed, get it again + bufferRow = buffer.Lines [buffer.Y + buffer.YBase]; + } else { + if (chWidth == 2) { + // FIXME: check for xterm behavior + // What to do here? We got a wide char that does not fit into last cell + continue; + } + + buffer.X = right; + } + } + + var empty = CharData.Null; + empty.Attribute = curAttr; + // insert mode: move characters to right + if (insertMode) { + // right shift cells according to the width + bufferRow.InsertCells (buffer.X, chWidth, terminal.MarginMode ? buffer.MarginRight : cols - 1, empty); + // test last cell - since the last cell has only room for + // a halfwidth char any fullwidth shifted there is lost + // and will be set to eraseChar + var lastCell = bufferRow [cols - 1]; + if (lastCell.Width == 2) + bufferRow [cols - 1] = empty; + + } + + // write current char to buffer and advance cursor + var charData = new CharData (curAttr, ch, chWidth); + bufferRow [buffer.X++] = charData; + + // fullwidth char - also set next cell to placeholder stub and advance cursor + // for graphemes bigger than fullwidth we can simply loop to zero + // we already made sure above, that buffer.x + chWidth will not overflow right + if (chWidth > 0) { + while (--chWidth != 0) { + bufferRow [buffer.X++] = empty; + } + } + } + terminal.UpdateRange (buffer.Y); + readingBuffer.Done (); + } + } +} diff --git a/src/XtermSharp/InputHandlers/TerminalBufferManipulationCommandExtensions.cs b/src/XtermSharp/InputHandlers/TerminalBufferManipulationCommandExtensions.cs new file mode 100644 index 00000000..4777223e --- /dev/null +++ b/src/XtermSharp/InputHandlers/TerminalBufferManipulationCommandExtensions.cs @@ -0,0 +1,233 @@ +using System; +using System.Collections.Generic; + +namespace XtermSharp.CommandExtensions { + /// + /// Commands that query the terminal for information about the current buffer + /// + internal static class TerminalBufferManipulationCommandExtensions { + + /// + /// DECERA - Erase Rectangular Area + /// CSI Pt ; Pl ; Pb ; Pr ; $ z + /// + public static void csiDECERA (this Terminal terminal, int [] pars) + { + var buffer = terminal.Buffer; + var rect = GetRectangleFromRequest (buffer, terminal.OriginMode, 0, pars); + + if (rect.valid) { + for (int row = rect.top; row <= rect.bottom; row++) { + var line = buffer.Lines [row + buffer.YBase]; + for (int col = rect.left; col <= rect.right; col++) { + line [col] = new CharData (terminal.CurAttr, ' ', 1, 32); + } + } + } + } + + /// + /// DECSERA - Selective Erase Rectangular Area + /// CSI Pt ; Pl ; Pb ; Pr ; $ { + /// + public static void csiDECSERA (this Terminal terminal, params int [] pars) + { + var buffer = terminal.Buffer; + var rect = GetRectangleFromRequest (buffer, terminal.OriginMode, 0, pars); + + if (rect.valid) { + for (int row = rect.top; row <= rect.bottom; row++) { + var line = buffer.Lines [row + buffer.YBase]; + for (int col = rect.left; col <= rect.right; col++) { + line [col] = new CharData (terminal.CurAttr, ' ', 1, 32); + } + } + } + } + + /// + /// CSI Pc ; Pt ; Pl ; Pb ; Pr $ x Fill Rectangular Area (DECFRA), VT420 and up. + /// + public static void csiDECFRA (this Terminal terminal, params int [] pars) + { + var buffer = terminal.Buffer; + var rect = GetRectangleFromRequest (buffer, terminal.OriginMode, 1, pars); + + if (rect.valid) { + char fillChar = ' '; + if (pars.Length > 0) { + fillChar = (char)pars [0]; + } + + for (int row = rect.top; row <= rect.bottom; row++) { + var line = buffer.Lines [row + buffer.YBase]; + for (int col = rect.left; col <= rect.right; col++) { + line [col] = new CharData (terminal.CurAttr, fillChar, 1, (int)fillChar); + } + } + } + } + + /// + /// Copy Rectangular Area (DECCRA), VT400 and up. + /// CSI Pts ; Pls ; Pbs ; Prs ; Pps ; Ptd ; Pld ; Ppd $ v + /// Pts ; Pls ; Pbs ; Prs denotes the source rectangle. + /// Pps denotes the source page. + /// Ptd ; Pld denotes the target location. + /// Ppd denotes the target page. + /// + public static void csiDECCRA (this Terminal terminal, int [] pars, string collect) + { + var buffer = terminal.Buffer; + if (collect == "$") { + var parArray = new int [8]; + parArray [0] = (pars.Length > 1 && pars [0] != 0 ? pars [0] : 1); // Pts default 1 + parArray [1] = (pars.Length > 2 && pars [1] != 0 ? pars [1] : 1); // Pls default 1 + parArray [2] = (pars.Length > 3 && pars [2] != 0 ? pars [2] : buffer.Rows - 1); // Pbs default to last line of page + parArray [3] = (pars.Length > 4 && pars [3] != 0 ? pars [3] : buffer.Cols - 1); // Prs defaults to last column + parArray [4] = (pars.Length > 5 && pars [4] != 0 ? pars [4] : 1); // Pps page source = 1 + parArray [5] = (pars.Length > 6 && pars [5] != 0 ? pars [5] : 1); // Ptd default is 1 + parArray [6] = (pars.Length > 7 && pars [6] != 0 ? pars [6] : 1); // Pld default is 1 + parArray [7] = (pars.Length > 8 && pars [7] != 0 ? pars [7] : 1); // Ppd default is 1 + + // We only support copying on the same page, and the page being 1 + if (parArray [4] == parArray [7] && parArray [4] == 1) { + var rect = GetRectangleFromRequest (buffer, terminal.OriginMode, 0, parArray); + if (rect.valid) { + var rowTarget = parArray [5] - 1; + var colTarget = parArray [6] - 1; + + // Block size + var columns = rect.right - rect.left + 1; + + var cright = Math.Min (buffer.Cols - 1, rect.left + Math.Min (columns, buffer.Cols - colTarget)); + + var lines = new List> (); + for (int row = rect.top; row <= rect.bottom; row++) { + var line = buffer.Lines [row + buffer.YBase]; + var lineCopy = new List (); + for (int col = rect.left; col <= cright; col++) { + lineCopy.Add (line [col]); + } + lines.Add (lineCopy); + } + + for (int row = 0; row <= rect.bottom - rect.top; row++) { + if (row + rowTarget >= buffer.Rows) { + break; + } + + var line = buffer.Lines [row + rowTarget + buffer.YBase]; + var lr = lines [row]; + for (int col = 0; col <= cright - rect.left; col++) { + if (col >= buffer.Cols) { + break; + } + + line [colTarget + col] = lr [col]; + } + } + } + } + } + } + + /// + /// Required by the test suite + /// CSI Pi ; Pg ; Pt ; Pl ; Pb ; Pr * y + /// Request Checksum of Rectangular Area (DECRQCRA), VT420 and up. + /// Response is + /// DCS Pi ! ~ x x x x ST + /// Pi is the request id. + /// Pg is the page number. + /// Pt ; Pl ; Pb ; Pr denotes the rectangle. + /// The x's are hexadecimal digits 0-9 and A-F. + /// + public static void csiDECRQCRA (this Terminal terminal, params int [] pars) + { + var buffer = terminal.Buffer; + + int checksum = 0; + var rid = pars.Length > 0 ? pars [0] : 1; + var _ = pars.Length > 1 ? pars [1] : 0; + var result = "0000"; + + // Still need to imeplemnt the checksum here + // Which is just the sum of the rune values + if (terminal.Delegate.IsProcessTrusted ()) { + var rect = GetRectangleFromRequest (buffer, terminal.OriginMode, 2, pars); + + var top = rect.top; + var left = rect.left; + var bottom = rect.bottom; + var right = rect.right; + + for (int row = top; row <= bottom; row++) { + var line = buffer.Lines [row + buffer.YBase]; + for (int col = left; col <= right; col++) { + var cd = line [col]; + + //var ch = cd.getCharacter (); + //for (scalar in ch.unicodeScalars) { + // checksum += scalar.value; + //} + checksum += cd.IsNullChar() ? 32 : cd.Code; + } + } + + result = String.Format ("{0,4:X}", checksum); + } + + terminal.SendResponse ($"{terminal.ControlCodes.DCS}{rid}!~{result}{terminal.ControlCodes.ST}"); + } + + /// + /// Validates optional arguments for top, left, bottom, right sent by various + /// escape sequences and returns validated top, left, bottom, right in our 0-based + /// internal coordinates + /// + static (bool valid, int top, int left, int bottom, int right) GetRectangleFromRequest (Buffer buffer, bool originMode, int start, int [] pars) + { + var top = Math.Max (1, pars.Length > start ? pars [start] : 1); + var left = Math.Max (pars.Length > start + 1 ? pars [start + 1] : 1, 1); + var bottom = pars.Length > start + 2 ? pars [start + 2] : -1; + var right = pars.Length > start + 3 ? pars [start + 3] : -1; + + var rect = GetRectangleFromRequest (buffer, originMode, top, left, bottom, right); + return rect; + } + + /// + /// Validates optional arguments for top, left, bottom, right sent by various + /// escape sequences and returns validated top, left, bottom, right in our 0-based + /// internal coordinates + /// + static (bool valid, int top, int left, int bottom, int right) GetRectangleFromRequest (Buffer buffer, bool originMode, int top, int left, int bottom, int right) + { + if (bottom < 0) { + bottom = buffer.Rows; + } + if (right < 0) { + right = buffer.Cols; + } + if (right > buffer.Cols) { + right = buffer.Cols; + } + if (bottom > buffer.Rows) { + bottom = buffer.Rows; + } + if (originMode) { + top += buffer.ScrollTop; + bottom += buffer.ScrollTop; + left += buffer.MarginLeft; + right += buffer.MarginLeft; + } + + if (top > bottom || left > right) { + return (false, 0, 0, 0, 0); + } + + return (true, top - 1, left - 1, bottom - 1, right - 1); + } + } +} \ No newline at end of file diff --git a/src/XtermSharp/InputHandlers/TerminalCommandExtensions.cs b/src/XtermSharp/InputHandlers/TerminalCommandExtensions.cs new file mode 100644 index 00000000..1926703a --- /dev/null +++ b/src/XtermSharp/InputHandlers/TerminalCommandExtensions.cs @@ -0,0 +1,337 @@ +using System; + +namespace XtermSharp.CommandExtensions { + /// + /// Commands that operate on a terminal from CSI params + /// + internal static class TerminalCommandExtensions { + /// + // CSI Ps A + // Cursor Up Ps Times (default = 1) (CUU). + /// + public static void csiCUU (this Terminal terminal, params int [] pars) + { + int param = Math.Max (pars.Length > 0 ? pars [0] : 1, 1); + terminal.CursorUp (param); + } + + /// + // CSI Ps B + // Cursor Down Ps Times (default = 1) (CUD). + /// + public static void csiCUD (this Terminal terminal, params int [] pars) + { + int param = Math.Max (pars.Length > 0 ? pars [0] : 1, 1); + terminal.CursorDown (param); + } + + /// + // CSI Ps C + // Cursor Forward Ps Times (default = 1) (CUF). + /// + public static void csiCUF (this Terminal terminal, params int [] pars) + { + int param = Math.Max (pars.Length > 0 ? pars [0] : 1, 1); + terminal.CursorForward (param); + } + + /// + /// CSI Ps D + /// Cursor Backward Ps Times (default = 1) (CUB). + /// + public static void csiCUB (this Terminal terminal, int [] pars) + { + int param = Math.Max (pars.Length > 0 ? pars [0] : 1, 1); + terminal.CursorBackward (param); + } + + /// + /// CSI Ps G + /// Cursor Character Absolute [column] (default = [row,1]) (CHA). + /// + public static void csiCHA (this Terminal terminal, int [] pars) + { + int param = Math.Max (pars.Length > 0 ? pars [0] : 1, 1); + terminal.CursorCharAbsolute (param); + } + + /// + /// Sets the cursor position from csi CUP + /// CSI Ps ; Ps H + /// Cursor Position [row;column] (default = [1,1]) (CUP). + /// + public static void csiCUP (this Terminal terminal, params int [] pars) + { + int col, row; + switch (pars.Length) { + case 1: + row = pars [0] - 1; + col = 0; + break; + case 2: + row = pars [0] - 1; + col = pars [1] - 1; + break; + default: + col = 0; + row = 0; + break; + } + + terminal.SetCursor (col, row); + } + + /// + /// Deletes lines + /// + /// + // CSI Ps M + // Delete Ps Line(s) (default = 1) (DL). + /// + public static void csiDL (this Terminal terminal, params int [] pars) + { + var p = Math.Max (pars.Length == 0 ? 1 : pars [0], 1); + terminal.DeleteLines (p); + } + + /// + /// CSI Ps P + /// Delete Ps Character(s) (default = 1) (DCH). + /// + public static void csiDCH (this Terminal terminal, params int [] pars) + { + var p = Math.Max (pars.Length == 0 ? 1 : pars [0], 1); + terminal.DeleteChars (p); + } + + /// + /// CSI Ps Z Cursor Backward Tabulation Ps tab stops (default = 1) (CBT). + /// + public static void csiCBT (this Terminal terminal, params int [] pars) + { + var p = Math.Max (pars.Length == 0 ? 1 : pars [0], 1); + terminal.CursorBackwardTab (p); + } + + /// + /// Sets the margins from csi DECSLRM + /// + public static void csiDECSLRM (this Terminal terminal, params int [] pars) + { + var buffer = terminal.Buffer; + var left = (pars.Length > 0 ? pars [0] : 1) - 1; + var right = (pars.Length > 1 ? pars [1] : buffer.Cols) - 1; + + buffer.SetMargins (left, right); + } + + /// + /// CSI Ps ; Ps r + /// Set Scrolling Region [top;bottom] (default = full size of win- + /// dow) (DECSTBM). + // CSI ? Pm r + /// + public static void csiDECSTBM (this Terminal terminal, params int [] pars) + { + var top = pars.Length > 0 ? Math.Max (pars [0] - 1, 0) : 0; + var bottom = pars.Length > 1 ? pars [1] : 0; + + terminal.SetScrollRegion (top, bottom); + } + + /// + /// CSI # } Pop video attributes from stack (XTPOPSGR), xterm. Popping + /// restores the video-attributes which were saved using XTPUSHSGR + /// to their previous state. + /// + /// CSI Pm ' } + /// Insert Ps Column(s) (default = 1) (DECIC), VT420 and up. + /// + public static void csiDECIC (this Terminal terminal, int[] pars) + { + var n = pars.Length > 0 ? Math.Max (pars [0], 1) : 1; + terminal.InsertColumn (n); + } + + /// + /// CSI Ps ' ~ + /// Delete Ps Column(s) (default = 1) (DECDC), VT420 and up. + /// + /// @vt: #Y CSI DECDC "Delete Columns" "CSI Ps ' ~" "Delete `Ps` columns at cursor position." + /// DECDC deletes `Ps` times columns at the cursor position for all lines with the scroll margins, + /// moving content to the left. Blank columns are added at the right margin. + /// DECDC has no effect outside the scrolling margins. + /// + public static void csiDECDC (this Terminal terminal, params int [] pars) + { + var n = pars.Length > 0 ? Math.Max (pars [0], 1) : 1; + terminal.DeleteColumn (n); + } + + /// + /// CSI Ps ; Ps ; Ps t - Various window manipulations and reports (xterm) + /// See https://invisible-island.net/xterm/ctlseqs/ctlseqs.html for a full + /// list of commans for this escape sequence + /// + public static void csiDISPATCH (this Terminal terminal, int [] pars) + { + if (pars == null || pars.Length == 0) + return; + + if (pars.Length == 3 && pars [0] == 3) { + terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.MoveWindowTo, pars [1], pars [2]); + return; + } + if (pars.Length == 3 && pars [0] == 4) { + terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.MoveWindowTo, pars [1], pars [2]); + return; + } + + if (pars.Length == 3 && pars [0] == 8) { + terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.ResizeTo, pars [1], pars [2]); + return; + } + + if (pars.Length == 2 && pars [0] == 9) { + switch (pars [1]) { + case 0: + terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.RestoreMaximizedWindow); + return; + case 1: + terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.MaximizeWindow); + return; + case 2: + terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.MaximizeWindowVertically); + return; + case 3: + terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.MaximizeWindowHorizontally); + return; + default: + return; + } + } + + if (pars.Length == 2 && pars [0] == 10) { + switch (pars [1]) { + case 0: + terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.UndoFullScreen); + return; + case 1: + terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.SwitchToFullScreen); + return; + case 2: + terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.ToggleFullScreen); + return; + default: + return; + } + } + + if (pars.Length == 2 && pars [0] == 22) { + switch (pars [1]) { + case 0: + terminal.PushTitle (); + terminal.PushIconTitle (); + return; + case 1: + terminal.PushIconTitle (); + return; + case 2: + terminal.PushTitle (); + return; + default: + return; + } + } + + if (pars.Length == 2 && pars [0] == 23) { + switch (pars [1]) { + case 0: + terminal.PopTitle (); + terminal.PopIconTitle (); + return; + case 1: + terminal.PopTitle (); + return; + case 2: + terminal.PopIconTitle (); + return; + default: + return; + } + } + + if (pars.Length == 1) { + string response = null; + switch (pars [0]) { + case 0: + terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.DeiconifyWindow); + return; + case 1: + terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.IconifyWindow); + return; + case 2: + return; + case 3: + return; + case 4: + return; + case 5: + terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.BringToFront); + return; + case 6: + terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.SendToBack); + return; + case 7: + terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.RefreshWindow); + return; + case 15: + response = terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.ReportSizeOfScreenInPixels); + if (response == null) { + response = $"{terminal.ControlCodes.CSI}5;768;1024t"; + } + + terminal.SendResponse (response); + return; + case 16: + response = terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.ReportCellSizeInPixels); + if (response == null) { + response = $"{terminal.ControlCodes.CSI}6;16;10t"; + } + + terminal.SendResponse (response); + return; + case 17: + return; + case 18: + response = terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.ReportScreenSizeCharacters); + if (response == null) { + response = $"{terminal.ControlCodes.CSI}8;{terminal.Rows};{terminal.Cols}t"; + } + + terminal.SendResponse (response); + return; + case 19: + response = terminal.Delegate.WindowCommand (terminal, WindowManipulationCommand.ReportScreenSizeCharacters); + if (response == null) { + response = $"{terminal.ControlCodes.CSI}9;{terminal.Rows};{terminal.Cols}t"; + } + + terminal.SendResponse (response); + return; + case 20: + response = terminal.IconTitle.Replace ("\\", ""); + terminal.SendResponse ($"{terminal.ControlCodes.OSC}l{response}{terminal.ControlCodes.ST}"); + return; + case 21: + response = terminal.Title.Replace ("\\", ""); + terminal.SendResponse ($"{terminal.ControlCodes.OSC}l{response}{terminal.ControlCodes.ST}"); + return; + default: + return; + } + } + } + + } +} \ No newline at end of file diff --git a/src/XtermSharp/InputHandlers/TerminalModeSetExtensions.cs b/src/XtermSharp/InputHandlers/TerminalModeSetExtensions.cs new file mode 100644 index 00000000..56b7325c --- /dev/null +++ b/src/XtermSharp/InputHandlers/TerminalModeSetExtensions.cs @@ -0,0 +1,404 @@ +namespace XtermSharp.CommandExtensions { + internal static class TerminalModeSetExtensions { + /// + /// Sets the mode from csi DECSTR + /// + // CSI Pm h Set Mode (SM). + // Ps = 2 -> Keyboard Action Mode (AM). + // Ps = 4 -> Insert Mode (IRM). + // Ps = 1 2 -> Send/receive (SRM). + // Ps = 2 0 -> Automatic Newline (LNM). + // CSI ? Pm h + // DEC Private Mode Set (DECSET). + // Ps = 1 -> Application Cursor Keys (DECCKM). + // Ps = 2 -> Designate USASCII for character sets G0-G3 + // (DECANM), and set VT100 mode. + // Ps = 3 -> 132 Column Mode (DECCOLM). + // Ps = 4 -> Smooth (Slow) Scroll (DECSCLM). + // Ps = 5 -> Reverse Video (DECSCNM). + // Ps = 6 -> Origin Mode (DECOM). + // Ps = 7 -> Wraparound Mode (DECAWM). + // Ps = 8 -> Auto-repeat Keys (DECARM). + // Ps = 9 -> Send Mouse X & Y on button press. See the sec- + // tion Mouse Tracking. + // Ps = 1 0 -> Show toolbar (rxvt). + // Ps = 1 2 -> Start Blinking Cursor (att610). + // Ps = 1 8 -> Print form feed (DECPFF). + // Ps = 1 9 -> Set print extent to full screen (DECPEX). + // Ps = 2 5 -> Show Cursor (DECTCEM). + // Ps = 3 0 -> Show scrollbar (rxvt). + // Ps = 3 5 -> Enable font-shifting functions (rxvt). + // Ps = 3 8 -> Enter Tektronix Mode (DECTEK). + // Ps = 4 0 -> Allow 80 -> 132 Mode. + // Ps = 4 1 -> more(1) fix (see curses resource). + // Ps = 4 2 -> Enable Nation Replacement Character sets (DECN- + // RCM). + // Ps = 4 4 -> Turn On Margin Bell. + // Ps = 4 5 -> Reverse-wraparound Mode. + // Ps = 4 6 -> Start Logging. This is normally disabled by a + // compile-time option. + // Ps = 4 7 -> Use Alternate Screen Buffer. (This may be dis- + // abled by the titeInhibit resource). + // Ps = 6 6 -> Application keypad (DECNKM). + // Ps = 6 7 -> Backarrow key sends backspace (DECBKM). + // Ps = 1 0 0 0 -> Send Mouse X & Y on button press and + // release. See the section Mouse Tracking. + // Ps = 1 0 0 1 -> Use Hilite Mouse Tracking. + // Ps = 1 0 0 2 -> Use Cell Motion Mouse Tracking. + // Ps = 1 0 0 3 -> Use All Motion Mouse Tracking. + // Ps = 1 0 0 4 -> Send FocusIn/FocusOut events. + // Ps = 1 0 0 5 -> Enable Extended Mouse Mode. + // Ps = 1 0 1 0 -> Scroll to bottom on tty output (rxvt). + // Ps = 1 0 1 1 -> Scroll to bottom on key press (rxvt). + // Ps = 1 0 3 4 -> Interpret "meta" key, sets eighth bit. + // (enables the eightBitInput resource). + // Ps = 1 0 3 5 -> Enable special modifiers for Alt and Num- + // Lock keys. (This enables the numLock resource). + // Ps = 1 0 3 6 -> Send ESC when Meta modifies a key. (This + // enables the metaSendsEscape resource). + // Ps = 1 0 3 7 -> Send DEL from the editing-keypad Delete + // key. + // Ps = 1 0 3 9 -> Send ESC when Alt modifies a key. (This + // enables the altSendsEscape resource). + // Ps = 1 0 4 0 -> Keep selection even if not highlighted. + // (This enables the keepSelection resource). + // Ps = 1 0 4 1 -> Use the CLIPBOARD selection. (This enables + // the selectToClipboard resource). + // Ps = 1 0 4 2 -> Enable Urgency window manager hint when + // Control-G is received. (This enables the bellIsUrgent + // resource). + // Ps = 1 0 4 3 -> Enable raising of the window when Control-G + // is received. (enables the popOnBell resource). + // Ps = 1 0 4 7 -> Use Alternate Screen Buffer. (This may be + // disabled by the titeInhibit resource). + // Ps = 1 0 4 8 -> Save cursor as in DECSC. (This may be dis- + // abled by the titeInhibit resource). + // Ps = 1 0 4 9 -> Save cursor as in DECSC and use Alternate + // Screen Buffer, clearing it first. (This may be disabled by + // the titeInhibit resource). This combines the effects of the 1 + // 0 4 7 and 1 0 4 8 modes. Use this with terminfo-based + // applications rather than the 4 7 mode. + // Ps = 1 0 5 0 -> Set terminfo/termcap function-key mode. + // Ps = 1 0 5 1 -> Set Sun function-key mode. + // Ps = 1 0 5 2 -> Set HP function-key mode. + // Ps = 1 0 5 3 -> Set SCO function-key mode. + // Ps = 1 0 6 0 -> Set legacy keyboard emulation (X11R6). + // Ps = 1 0 6 1 -> Set VT220 keyboard emulation. + // Ps = 2 0 0 4 -> Set bracketed paste mode. + // Modes: + // http: *vt100.net/docs/vt220-rm/chapter4.html + public static void csiDECSET (this Terminal terminal, int par, string collect) + { + if (collect == "") { + switch (par) { + case 4: + //Console.WriteLine ("This needs to handle the replace mode as well"); + // https://vt100.net/docs/vt510-rm/IRM.html + terminal.InsertMode = true; + break; + case 20: + + // Automatic New Line (LNM) + // this._t.convertEol = true; + break; + } + } else if (collect == "?") { + switch (par) { + case 1: + terminal.ApplicationCursor = true; + break; + case 2: + terminal.SetgCharset (0, CharSets.Default); + terminal.SetgCharset (1, CharSets.Default); + terminal.SetgCharset (2, CharSets.Default); + terminal.SetgCharset (3, CharSets.Default); + // set VT100 mode here + break; + case 3: // 132 col mode + if (terminal.Allow80To132) { + terminal.Resize (132, terminal.Rows); + terminal.Reset (); + terminal.Delegate.SizeChanged (terminal); + } + break; + case 5: + // Inverted colors + terminal.CurAttr = CharData.InvertedAttr; + break; + case 6: + terminal.OriginMode = true; + break; + case 7: + terminal.Wraparound = true; + break; + case 9: // X10 Mouse + // no release, no motion, no wheel, no modifiers. + terminal.MouseMode = MouseMode.X10; + break; + case 12: + // this.cursorBlink = true; + break; + case 40: + terminal.Allow80To132 = true; + break; + case 45: + // Xterm Reverse Wrap-around + // reverse wraparound can only be enabled if Auto-wrap is enabled (DECAWM) + if (terminal.Wraparound) { + terminal.ReverseWraparound = true; + } + break; + case 66: + terminal.Log ("Serial port requested application keypad."); + terminal.ApplicationKeypad = true; + terminal.SyncScrollArea (); + break; + case 69: + // Enable left and right margin mode (DECLRMM), + terminal.MarginMode = true; + break; + case 1000: // vt200 mouse + // no motion. + // no modifiers, except control on the wheel. + terminal.MouseMode = MouseMode.VT200; + break; + case 1002: + // SET_BTN_EVENT_MOUSE + terminal.MouseMode = MouseMode.ButtonEventTracking; + break; + case 1003: + // SET_ANY_EVENT_MOUSE + terminal.MouseMode = MouseMode.AnyEvent; + break; + case 1004: // send focusin/focusout events + // focusin: ^[[I + // focusout: ^[[O + terminal.SendFocus = true; + break; + case 1005: // utf8 ext mode mouse + // for wide terminals + // simply encodes large values as utf8 characters + terminal.MouseProtocol = MouseProtocolEncoding.UTF8; + break; + case 1006: // sgr ext mode mouse + terminal.MouseProtocol = MouseProtocolEncoding.SGR; + // for wide terminals + // does not add 32 to fields + // press: ^[[ Keyboard Action Mode (AM). + // Ps = 4 -> Replace Mode (IRM). + // Ps = 1 2 -> Send/receive (SRM). + // Ps = 2 0 -> Normal Linefeed (LNM). + //CSI ? Pm l + // DEC Private Mode Reset (DECRST). + // Ps = 1 -> Normal Cursor Keys (DECCKM). + // Ps = 2 -> Designate VT52 mode (DECANM). + // Ps = 3 -> 80 Column Mode (DECCOLM). + // Ps = 4 -> Jump (Fast) Scroll (DECSCLM). + // Ps = 5 -> Normal Video (DECSCNM). + // Ps = 6 -> Normal Cursor Mode (DECOM). + // Ps = 7 -> No Wraparound Mode (DECAWM). + // Ps = 8 -> No Auto-repeat Keys (DECARM). + // Ps = 9 -> Don't send Mouse X & Y on button press. + // Ps = 1 0 -> Hide toolbar (rxvt). + // Ps = 1 2 -> Stop Blinking Cursor (att610). + // Ps = 1 8 -> Don't print form feed (DECPFF). + // Ps = 1 9 -> Limit print to scrolling region (DECPEX). + // Ps = 2 5 -> Hide Cursor (DECTCEM). + // Ps = 3 0 -> Don't show scrollbar (rxvt). + // Ps = 3 5 -> Disable font-shifting functions (rxvt). + // Ps = 4 0 -> Disallow 80 -> 132 Mode. + // Ps = 4 1 -> No more(1) fix (see curses resource). + // Ps = 4 2 -> Disable Nation Replacement Character sets (DEC- + // NRCM). + // Ps = 4 4 -> Turn Off Margin Bell. + // Ps = 4 5 -> No Reverse-wraparound Mode. + // Ps = 4 6 -> Stop Logging. (This is normally disabled by a + // compile-time option). + // Ps = 4 7 -> Use Normal Screen Buffer. + // Ps = 6 6 -> Numeric keypad (DECNKM). + // Ps = 6 7 -> Backarrow key sends delete (DECBKM). + // Ps = 1 0 0 0 -> Don't send Mouse X & Y on button press and + // release. See the section Mouse Tracking. + // Ps = 1 0 0 1 -> Don't use Hilite Mouse Tracking. + // Ps = 1 0 0 2 -> Don't use Cell Motion Mouse Tracking. + // Ps = 1 0 0 3 -> Don't use All Motion Mouse Tracking. + // Ps = 1 0 0 4 -> Don't send FocusIn/FocusOut events. + // Ps = 1 0 0 5 -> Disable Extended Mouse Mode. + // Ps = 1 0 1 0 -> Don't scroll to bottom on tty output + // (rxvt). + // Ps = 1 0 1 1 -> Don't scroll to bottom on key press (rxvt). + // Ps = 1 0 3 4 -> Don't interpret "meta" key. (This disables + // the eightBitInput resource). + // Ps = 1 0 3 5 -> Disable special modifiers for Alt and Num- + // Lock keys. (This disables the numLock resource). + // Ps = 1 0 3 6 -> Don't send ESC when Meta modifies a key. + // (This disables the metaSendsEscape resource). + // Ps = 1 0 3 7 -> Send VT220 Remove from the editing-keypad + // Delete key. + // Ps = 1 0 3 9 -> Don't send ESC when Alt modifies a key. + // (This disables the altSendsEscape resource). + // Ps = 1 0 4 0 -> Do not keep selection when not highlighted. + // (This disables the keepSelection resource). + // Ps = 1 0 4 1 -> Use the PRIMARY selection. (This disables + // the selectToClipboard resource). + // Ps = 1 0 4 2 -> Disable Urgency window manager hint when + // Control-G is received. (This disables the bellIsUrgent + // resource). + // Ps = 1 0 4 3 -> Disable raising of the window when Control- + // G is received. (This disables the popOnBell resource). + // Ps = 1 0 4 7 -> Use Normal Screen Buffer, clearing screen + // first if in the Alternate Screen. (This may be disabled by + // the titeInhibit resource). + // Ps = 1 0 4 8 -> Restore cursor as in DECRC. (This may be + // disabled by the titeInhibit resource). + // Ps = 1 0 4 9 -> Use Normal Screen Buffer and restore cursor + // as in DECRC. (This may be disabled by the titeInhibit + // resource). This combines the effects of the 1 0 4 7 and 1 0 + // 4 8 modes. Use this with terminfo-based applications rather + // than the 4 7 mode. + // Ps = 1 0 5 0 -> Reset terminfo/termcap function-key mode. + // Ps = 1 0 5 1 -> Reset Sun function-key mode. + // Ps = 1 0 5 2 -> Reset HP function-key mode. + // Ps = 1 0 5 3 -> Reset SCO function-key mode. + // Ps = 1 0 6 0 -> Reset legacy keyboard emulation (X11R6). + // Ps = 1 0 6 1 -> Reset keyboard emulation to Sun/PC style. + // Ps = 2 0 0 4 -> Reset bracketed paste mode. + // + public static void csiDECRESET (this Terminal terminal, int par, string collect) + { + if (collect == "") { + switch (par) { + case 4: + terminal.InsertMode = false; + break; + case 20: + // this._t.convertEol = false; + break; + } + } else if (collect == "?") { + switch (par) { + case 1: + terminal.ApplicationCursor = false; + break; + case 3: + if (terminal.Allow80To132) { + terminal.Resize (80, terminal.Rows); + terminal.Delegate.SizeChanged (terminal); + terminal.Reset (); + } + break; + case 5: + // Reset default color + terminal.CurAttr = CharData.DefaultAttr; + break; + case 6: + terminal.OriginMode = false; + break; + case 7: + terminal.Wraparound = false; + break; + case 12: + // this.cursorBlink = false; + break; + case 40: + terminal.Allow80To132 = false; + break; + case 45: + terminal.ReverseWraparound = false; + break; + case 66: + terminal.Log ("Switching back to normal keypad."); + terminal.ApplicationKeypad = false; + terminal.SyncScrollArea (); + break; + case 69: + // DECSLRM + terminal.MarginMode = false; + break; + case 9: // X10 Mouse + case 1000: // vt200 mouse + case 1002: // button event mouse + case 1003: // any event mouse + terminal.MouseMode = MouseMode.Off; + break; + case 1004: // send focusin/focusout events + terminal.SendFocus = false; + break; + case 1005: // utf8 ext mode mouse + if (terminal.MouseProtocol == MouseProtocolEncoding.UTF8) { + terminal.MouseProtocol = MouseProtocolEncoding.X10; + } + break; + case 1006: // sgr ext mode mouse + if (terminal.MouseProtocol == MouseProtocolEncoding.SGR) { + terminal.MouseProtocol = MouseProtocolEncoding.X10; + } + break; + case 1015: // urxvt ext mode mouse + if (terminal.MouseProtocol == MouseProtocolEncoding.URXVT) { + terminal.MouseProtocol = MouseProtocolEncoding.X10; + } + break; + case 25: // hide cursor + terminal.CursorHidden = true; + break; + case 1048: // alt screen cursor + terminal.RestoreCursor (); + break; + case 1049: // alt screen buffer cursor + // FALL-THROUGH + goto case 47; + case 47: // normal screen buffer + case 1047: // normal screen buffer - clearing it first + // Ensure the selection manager has the correct buffer + terminal.Buffers.ActivateNormalBuffer (par == 1047); + if (par == 1049) + terminal.RestoreCursor (); + terminal.Refresh (0, terminal.Rows - 1); + terminal.SyncScrollArea (); + terminal.ShowCursor (); + break; + case 2004: // bracketed paste mode (https://cirw.in/blog/bracketed-paste) + terminal.BracketedPasteMode = false; + break; + } + } + } + } +} \ No newline at end of file diff --git a/src/XtermSharp/InputHandlers/TerminalStatusCommandExtensions.cs b/src/XtermSharp/InputHandlers/TerminalStatusCommandExtensions.cs new file mode 100644 index 00000000..f5835e95 --- /dev/null +++ b/src/XtermSharp/InputHandlers/TerminalStatusCommandExtensions.cs @@ -0,0 +1,187 @@ +using System; + +namespace XtermSharp.CommandExtensions { + /// + /// Commands that report status back about the terminal + /// + internal static class TerminalStatusCommandExtensions { + + // CSI Ps c Send Device Attributes (Primary DA). + // Ps = 0 or omitted -> request attributes from terminal. The + // response depends on the decTerminalID resource setting. + // -> CSI ? 1 ; 2 c (``VT100 with Advanced Video Option'') + // -> CSI ? 1 ; 0 c (``VT101 with No Options'') + // -> CSI ? 6 c (``VT102'') + // -> CSI ? 6 0 ; 1 ; 2 ; 6 ; 8 ; 9 ; 1 5 ; c (``VT220'') + // The VT100-style response parameters do not mean anything by + // themselves. VT220 parameters do, telling the host what fea- + // tures the terminal supports: + // Ps = 1 -> 132-columns. + // Ps = 2 -> Printer. + // Ps = 6 -> Selective erase. + // Ps = 8 -> User-defined keys. + // Ps = 9 -> National replacement character sets. + // Ps = 1 5 -> Technical characters. + // Ps = 2 2 -> ANSI color, e.g., VT525. + // Ps = 2 9 -> ANSI text locator (i.e., DEC Locator mode). + // CSI > Ps c + // Send Device Attributes (Secondary DA). + // Ps = 0 or omitted -> request the terminal's identification + // code. The response depends on the decTerminalID resource set- + // ting. It should apply only to VT220 and up, but xterm extends + // this to VT100. + // -> CSI > Pp ; Pv ; Pc c + // where Pp denotes the terminal type + // Pp = 0 -> ``VT100''. + // Pp = 1 -> ``VT220''. + // and Pv is the firmware version (for xterm, this was originally + // the XFree86 patch number, starting with 95). In a DEC termi- + // nal, Pc indicates the ROM cartridge registration number and is + // always zero. + // More information: + // xterm/charproc.c - line 2012, for more information. + // vim responds with ^[[?0c or ^[[?1c after the terminal's response (?) + // + public static void csiDA1 (this Terminal terminal, int [] pars, string collect) + { + if (pars.Length > 0 && pars [0] > 0) + return; + + if (collect == ">" || collect == ">0") { + // DA2 Secondary Device Attributes + if (pars.Length == 0 || pars [0] == 0) { + var vt510 = 61; // we identified as a vt510 + var kbd = 1; // PC-style keyboard + terminal.SendResponse ($"{terminal.ControlCodes.CSI}>{vt510};20;{kbd}c"); + return; + } + + return; + } + + var name = terminal.Options.TermName; + if (collect == "") { + if (name.StartsWith ("xterm", StringComparison.Ordinal) || name.StartsWith ("rxvt-unicode", StringComparison.Ordinal) || name.StartsWith ("screen", StringComparison.Ordinal)) { + terminal.SendResponse ($"{terminal.ControlCodes.CSI}?1;2c"); + } else if (name.StartsWith ("linux", StringComparison.Ordinal)) { + terminal.SendResponse ($"{terminal.ControlCodes.CSI}?6c"); + } + } else if (collect == ">") { + // xterm and urxvt + // seem to spit this + // out around ~370 times (?). + if (name.StartsWith ("xterm", StringComparison.Ordinal)) { + terminal.SendResponse ("\x1b[>0;276;0c"); + } else if (name.StartsWith ("rxvt-unicode", StringComparison.Ordinal)) { + terminal.SendResponse ("\x1b[>85;95;0c"); + } else if (name.StartsWith ("linux", StringComparison.Ordinal)) { + // not supported by linux console. + // linux console echoes parameters. + terminal.SendResponse ("" + pars [0] + 'c'); + } else if (name.StartsWith ("screen", StringComparison.Ordinal)) { + terminal.SendResponse ("\x1b[>83;40003;0c"); + } + } + } + + /// + /// CSI Ps n Device Status Report (DSR). + /// Ps = 5 -> Status Report. Result (``OK'') is + /// CSI 0 n + /// Ps = 6 -> Report Cursor Position (CPR) [row;column]. + /// Result is + /// CSI r ; c R + /// CSI ? Ps n + /// Device Status Report (DSR, DEC-specific). + /// Ps = 6 -> Report Cursor Position (CPR) [row;column] as CSI + /// ? r ; c R (assumes page is zero). + /// Ps = 1 5 -> Report Printer status as CSI ? 1 0 n (ready). + /// or CSI ? 1 1 n (not ready). + /// Ps = 2 5 -> Report UDK status as CSI ? 2 0 n (unlocked) + /// or CSI ? 2 1 n (locked). + /// Ps = 2 6 -> Report Keyboard status as + /// CSI ? 2 7 ; 1 ; 0 ; 0 n (North American). + /// The last two parameters apply to VT400 & up, and denote key- + /// board ready and LK01 respectively. + /// Ps = 5 3 -> Report Locator status as + /// CSI ? 5 3 n Locator available, if compiled-in, or + /// CSI ? 5 0 n No Locator, if not. + /// + public static void csiDSR (this Terminal terminal, int [] pars, string collect) + { + var buffer = terminal.Buffer; + + if (collect == "") { + switch (pars [0]) { + case 5: + // status report + terminal.SendResponse ("\x1b[0n"); + break; + case 6: + // cursor position + var y = Math.Max (1, buffer.Y + 1 - (terminal.OriginMode ? buffer.ScrollTop : 0)); + // Need the max, because the cursor could be before the leftMargin + var x = Math.Max (1, buffer.X + 1 - (terminal.OriginMode ? buffer.MarginLeft : 0)); + terminal.SendResponse ($"\x1b[{y};{x}R"); + break; + } + } else if (collect == "?") { + // modern xterm doesnt seem to + // respond to any of these except ?6, 6, and 5 + switch (pars [0]) { + case 6: + // cursor position + var y = buffer.Y + 1 - (terminal.OriginMode ? buffer.ScrollTop : 0); + // Need the max, because the cursor could be before the leftMargin + var x = Math.Max (1, buffer.X + 1 - (terminal.IsUsingMargins () ? buffer.MarginLeft : 0)); + terminal.SendResponse ($"\x1b[?{y};{x};1R"); + break; + case 15: + // Request printer status report, we respond "We are ready" + terminal.SendResponse ($"{terminal.ControlCodes.CSI}?10n"); + break; + case 25: + // We respond "User defined keys are locked" + terminal.SendResponse ($"{terminal.ControlCodes.CSI}?21n"); + break; + case 26: + // Requests keyboard type + // We respond "American keyboard", TODO: worth plugging something else? Mac perhaps? + terminal.SendResponse ($"{terminal.ControlCodes.CSI}?27;1;0;0n"); + break; + case 53: + // no dec locator/mouse + // this.handler(C0.ESC + '[?50n'); + break; + case 55: + // Request locator status + terminal.SendResponse ($"{terminal.ControlCodes.CSI}?53n"); + break; + case 56: + // What kind of locator we have, we reply mouse, but perhaps on iOS we should respond something else + terminal.SendResponse ($"{terminal.ControlCodes.CSI}?57;1n"); + break; + case 62: + // Macro space report + terminal.SendResponse ($"{terminal.ControlCodes.CSI}0*{'{'}"); + break; + case 63: + // Requests checksum of macros, we return 0 + var id = pars.Length > 1 ? pars [1] : 0; + terminal.SendResponse ($"{terminal.ControlCodes.DCS}{id}!~0000{terminal.ControlCodes.ST}"); + break; + case 75: + // Data integrity report, no issues: + terminal.SendResponse ($"{terminal.ControlCodes.CSI}?70n"); + break; + case 85: + // Multiple session status, we reply single session + terminal.SendResponse ($"{terminal.ControlCodes.CSI}?83n"); + break; + } + } + } + + } + +} \ No newline at end of file diff --git a/src/XtermSharp/Line.cs b/src/XtermSharp/Line.cs new file mode 100644 index 00000000..c808c03c --- /dev/null +++ b/src/XtermSharp/Line.cs @@ -0,0 +1,120 @@ +using System.Collections.Generic; +using System.Diagnostics; +using System.Text; + +namespace XtermSharp { + /// + /// Gets a line of text that consists of one or more fragments + /// + [DebuggerDisplay ("{DebuggerDisplay}")] + public class Line { + readonly List fragments; + + public Line () + { + fragments = new List (); + } + + /// + /// Gets the line number of the first fragment. + /// + public int StartLine { + get { + if (fragments.Count > 0) { + return fragments [0].Line; + } + + return 0; + } + } + + /// + /// Gets the location of the first fragment. + /// + public int StartLocation { + get { + if (fragments.Count > 0) { + return fragments [0].Location; + } + + return 0; + } + } + + /// + /// Gets the length of the line + /// + public int Length { get; private set; } + + string DebuggerDisplay { + get { + if (fragments.Count < 1) { + return "[]"; + } + + var sb = new StringBuilder (); + sb.Append ($"{fragments.Count}/{Length} : ["); + for (int i = 0; i < fragments.Count; i++) { + if (fragments [i].Text == "\n") { + sb.Append ("\\n"); + } else { + sb.Append (fragments [i].Text); + } + + if (i < fragments.Count - 1) + sb.Append ("]["); + } + sb.Append ("]"); + + return sb.ToString (); + } + } + + public void Add (LineFragment fragment) + { + fragments.Add (fragment); + + Length += fragment.Length; + } + + public void GetFragmentStrings (StringBuilder builder) + { + foreach (var fragment in fragments) { + builder.Append (fragment.Text); + } + } + + + /// + /// For a given line, find the fragment with the position + /// + public int GetFragmentIndexForPosition (int pos) + { + int count = 0; + for (int i = 0; i < fragments.Count; i++) { + count += fragments [i].Length; + if (count > pos) { + return i; + } + } + + return fragments.Count - 1; + } + + public LineFragment GetFragment (int index) + { + return fragments [index]; + } + + + public override string ToString () + { + var sb = new StringBuilder (); + foreach (var fragment in fragments) { + sb.Append (fragment.Text); + } + + return sb.ToString (); + } + } +} diff --git a/src/XtermSharp/LineFragment.cs b/src/XtermSharp/LineFragment.cs new file mode 100644 index 00000000..cf1d30c7 --- /dev/null +++ b/src/XtermSharp/LineFragment.cs @@ -0,0 +1,54 @@ +using System.Diagnostics; + +namespace XtermSharp { + /// + /// Represents a fragment of text from a line. A fragment is wholly enclosed + /// in a buffer line. + /// + [DebuggerDisplay ("{DebuggerDisplay}")] + public class LineFragment { + public LineFragment (string text, int line, int location) + { + Text = text ?? string.Empty; + Line = line; + Location = location; + Length = Text.Length; + } + + /// + /// Gets the line in the buffer in which this fragment exists + /// + public int Line { get; } + + /// + /// Gets the position in the buffer line where this fragment starts + /// + public int Location { get; } + + /// + /// Gets the text representation of this fragment + /// + public string Text { get; } + + /// + /// Gets the length of the text fragment + /// + public int Length { get; } + + string DebuggerDisplay { + get { + if (Text == "\n") { + return $"{Line}:{Location}:\\n"; + } + + return $"{Line}:{Location}:{Text}"; + } + } + + public static LineFragment NewLine (int line) + { + // TOOD: is this location correct or useful? + return new LineFragment ("\n", line, -1); + } + } +} diff --git a/src/XtermSharp/MouseMode.cs b/src/XtermSharp/MouseMode.cs new file mode 100644 index 00000000..e11aa0f7 --- /dev/null +++ b/src/XtermSharp/MouseMode.cs @@ -0,0 +1,37 @@ +namespace XtermSharp { + /// + /// Represents the mouse operation mode that the terminal is currently using and higher level + /// implementations should use the functions in this enumeration to determine what events to + /// send + /// + public enum MouseMode { + /// + /// + /// No mouse events are reported + Off, + + /// + /// X10 Compatibility mode - only sends events in button press + /// + X10, + + /// + /// VT200, also known as Normal Tracking Mode - sends both press and release events + /// + VT200, + + /// + /// ButtonEventTracking - In addition to sending button press and release events, it sends motion events when the button is pressed + /// + ButtonEventTracking, + + /// + /// Sends button presses, button releases, and motion events regardless of the button state + /// + AnyEvent + + // Unsupported modes: + // - vt200Highlight, this can deadlock the terminal + // - declocator, rarely used + } +} diff --git a/src/XtermSharp/MouseModeExensions.cs b/src/XtermSharp/MouseModeExensions.cs new file mode 100644 index 00000000..d425031b --- /dev/null +++ b/src/XtermSharp/MouseModeExensions.cs @@ -0,0 +1,43 @@ +namespace XtermSharp { + public static class MouseModeExensions { + /// + /// Returns true if you should send a button press event (separate from release) + /// + public static bool SendButtonPress (this MouseMode mode) + { + return mode == MouseMode.VT200 || mode == MouseMode.ButtonEventTracking || mode == MouseMode.AnyEvent; + } + + /// + /// Returns true if you should send the button release event + /// + public static bool SendButtonRelease (this MouseMode mode) + { + return mode != MouseMode.Off; + } + + /// + /// Returns true if you should send a motion event when a button is pressed + /// + public static bool SendButtonTracking (this MouseMode mode) + { + return mode == MouseMode.ButtonEventTracking || mode == MouseMode.AnyEvent; + } + + /// + /// Returns true if you should send a motion event, regardless of button state + /// + public static bool SendMotionEvent (this MouseMode mode) + { + return mode == MouseMode.AnyEvent; + } + + /// + /// Returns true if the modifiers should be encoded + /// + public static bool SendsModifiers (this MouseMode mode) + { + return mode == MouseMode.VT200 || mode == MouseMode.ButtonEventTracking || mode == MouseMode.AnyEvent; + } + } +} diff --git a/src/XtermSharp/MouseProtocolEncoding.cs b/src/XtermSharp/MouseProtocolEncoding.cs new file mode 100644 index 00000000..0f5b9c49 --- /dev/null +++ b/src/XtermSharp/MouseProtocolEncoding.cs @@ -0,0 +1,33 @@ +using System; + +namespace XtermSharp { + /// + /// The mouse coordinates can be encoded in a number of ways, and obey to historical + /// upgrades to the protocol, but also attempts at fixing limitations of the different + /// encodings. + /// + public enum MouseProtocolEncoding { + /// + /// The default x10 mode is limited to coordinates up to 223. + /// (255-32). The other modes solve this limitaion + /// + X10, + + /// + /// Extends the range of a coordinate to 2015 by using UTF-8 encoding of the + /// coordinate value. This encoding is troublesome for applications that + /// do not support utf8 input. + /// + UTF8, + + /// + /// The response uses CSI < ButtonValue ; Px ; Py [Mm] + /// + SGR, + + /// + // Different response style, with possible ambiguities, not recommended + /// + URXVT + } +} diff --git a/src/XtermSharp/Point.cs b/src/XtermSharp/Point.cs new file mode 100644 index 00000000..672fee7b --- /dev/null +++ b/src/XtermSharp/Point.cs @@ -0,0 +1,28 @@ +namespace XtermSharp +{ + public struct Point + { + public static readonly Point Empty; + + public Point(int x, int y) + { + X = x; + Y = y; + } + + public int X { get; set; } + public int Y { get; set; } + + public bool IsEmpty => X == 0 && Y == 0; + + public static bool operator ==(Point left, Point right) => left.X == right.X && left.Y == right.Y; + + public static bool operator !=(Point left, Point right) => !(left == right); + + public override bool Equals(object obj) => obj is Point point && point.X == X && point.Y == Y; + + public override int GetHashCode() => X.GetHashCode() * 327 + Y.GetHashCode(); + + public override string ToString() => "{X=" + X.ToString() + ",Y=" + Y.ToString() + "}"; + } +} diff --git a/src/XtermSharp/Pty.cs b/src/XtermSharp/Pty.cs new file mode 100644 index 00000000..680e13ad --- /dev/null +++ b/src/XtermSharp/Pty.cs @@ -0,0 +1,161 @@ +using System; +using System.Runtime.InteropServices; +using System.IO; +using System.Diagnostics; +using System.Text; + +namespace XtermSharp { + [StructLayout(LayoutKind.Sequential)] + public struct UnixWindowSize { + public short row, col, xpixel, ypixel; + } + + public class Pty { + [DllImport ("util")] + extern static int forkpty (ref int master, IntPtr dataReturn, IntPtr termios, ref UnixWindowSize WinSz); + + [DllImport ("libc")] + extern static int execv (string process, string [] args); + + [DllImport ("libc")] + extern static int execve (string process, string [] args, string [] env); + + [DllImport ("libpty.dylib", SetLastError = true, EntryPoint="fork_and_exec")] + extern static unsafe int HeavyFork (string process, byte** args, byte** env, ref int master, ref UnixWindowSize winSize); + + static bool HeavyDuty = true; + /// + /// Forks a process and returns a file handle that is connected to the standard output of the child process + /// + /// Name of the program to run + /// Argument to pass to the program + /// Desired environment variables for the program + /// The file descriptor connected to the input and output of the child process + /// Desired window size + /// + public static int ForkAndExec (string programName, string [] args, string [] env, ref int master, UnixWindowSize winSize) + { + if (HeavyDuty) { + return DoHeavyFork (programName, args, env, ref master, ref winSize); + } else { + var pid = forkpty (ref master, IntPtr.Zero, IntPtr.Zero, ref winSize); + if (pid < 0) + throw new Exception ("Could not create Pty"); + + if (pid == 0) { + execve (programName, args, env); + } + return pid; + } + } + + + static unsafe int DoHeavyFork (string programName, string [] args, string [] env, ref int master, ref UnixWindowSize winSize) + { + byte** argvPtr = null, envpPtr = null; + int result; + try { + AllocNullTerminatedArray (args, ref argvPtr); + AllocNullTerminatedArray (env, ref envpPtr); + result = HeavyFork (programName, argvPtr, envpPtr, ref master, ref winSize); + + if (result < 0) + { + throw new ArgumentException($"Invalid PID. Last error { Marshal.GetLastWin32Error() }"); + } + + return result; + } finally { + FreeArray (argvPtr, args.Length); + FreeArray (envpPtr, env.Length); + } + } + + private static unsafe void AllocNullTerminatedArray (string [] arr, ref byte** arrPtr) + { + int arrLength = arr.Length + 1; // +1 is for null termination + + // Allocate the unmanaged array to hold each string pointer. + // It needs to have an extra element to null terminate the array. + arrPtr = (byte**)Marshal.AllocHGlobal (sizeof (IntPtr) * arrLength); + Debug.Assert (arrPtr != null); + + // Zero the memory so that if any of the individual string allocations fails, + // we can loop through the array to free any that succeeded. + // The last element will remain null. + for (int i = 0; i < arrLength; i++) { + arrPtr [i] = null; + } + + // Now copy each string to unmanaged memory referenced from the array. + // We need the data to be an unmanaged, null-terminated array of UTF8-encoded bytes. + for (int i = 0; i < arr.Length; i++) { + byte [] byteArr = Encoding.UTF8.GetBytes (arr [i]); + + arrPtr [i] = (byte*)Marshal.AllocHGlobal (byteArr.Length + 1); //+1 for null termination + Debug.Assert (arrPtr [i] != null); + + Marshal.Copy (byteArr, 0, (IntPtr)arrPtr [i], byteArr.Length); // copy over the data from the managed byte array + arrPtr [i] [byteArr.Length] = (byte)'\0'; // null terminate + } + } + + private static unsafe void FreeArray (byte** arr, int length) + { + if (arr != null) { + // Free each element of the array + for (int i = 0; i < length; i++) { + if (arr [i] != null) { + Marshal.FreeHGlobal ((IntPtr)arr [i]); + arr [i] = null; + } + } + + // And then the array itself + Marshal.FreeHGlobal ((IntPtr)arr); + } + } + + [DllImport ("libc", SetLastError = true)] + extern static int ioctl (int fd, ulong cmd, ref UnixWindowSize WinSz); + + [DllImport ("libpty.dylib", EntryPoint = "set_window_size")] + extern static unsafe int set_window_size (int master, ref UnixWindowSize winSize); + + /// + /// Sends a request to the pseudo terminal to set the size to the specified one + /// + /// File descriptor returned by ForkPty + /// The desired window size + /// + public static int SetWinSize (int fd, ref UnixWindowSize winSize) + { + var r = set_window_size (fd, ref winSize); + if (r == -1) { + var lastErr = Marshal.GetLastWin32Error (); + Console.WriteLine (lastErr); + } + return r; + } + + [DllImport ("libc", SetLastError = true)] + extern static int ioctl (int fd, long cmd, ref long size); + + /// + /// Returns the number of bytes available for reading on a file descriptor + /// + /// + /// + /// + public static int AvailableBytes (int fd, ref long size) + { + const long MAC_FIONREAD = 0x4004667f; + var r = ioctl (fd, MAC_FIONREAD, ref size); + if (r == -1) { + var lastErr = Marshal.GetLastWin32Error (); + Console.WriteLine (lastErr); + } + return r; + } + } +} diff --git a/src/XtermSharp/ReadingBuffer.cs b/src/XtermSharp/ReadingBuffer.cs new file mode 100644 index 00000000..fd38dd1c --- /dev/null +++ b/src/XtermSharp/ReadingBuffer.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Generic; + +namespace XtermSharp { + /// + /// Buffer for processing input + /// + /// + /// Because data might not be complete, we need to put back data that we read to process on + /// a future read. To prepare for reading, on every call to parse, the prepare method is + /// given the new buffer to read from. + /// + /// the `hasNext` describes whether there is more data left on the buffer, and `bytesLeft` + /// returnes the number of bytes left. The `getNext` method fetches either the next + /// value from the putback buffer, or when it is empty, it returns it from the buffer that + /// was passed during prepare. + /// + /// Additionally, the terminal parser needs to reset the parser state on demand, and + /// that is surfaced via reset + /// + class ReadingBuffer { + byte[] putbackBuffer = new byte [0]; + unsafe byte* buffer; + int bufferStart; + int totalCount; + int index; + + unsafe public void Prepare (byte* data, int start, int length) + { + buffer = data; + bufferStart = start; + + index = 0; + totalCount = putbackBuffer.Length + length; + } + + public int BytesLeft () + { + return totalCount - index; + } + + public bool HasNext () + { + return index < totalCount; + } + + unsafe public byte GetNext () + { + byte val; + if (index < putbackBuffer.Length) { + // grab from putback buffer + val = putbackBuffer [index]; + } else { + // grab from the prepared buffer + val = buffer [bufferStart + (index - putbackBuffer.Length)]; + } + + index++; + return val; + } + + /// + /// Puts back code and the remainder of the buffer + /// + public void Putback (byte code) + { + var left = BytesLeft (); + byte [] newPutback = new byte[left + 1]; + newPutback [0] = code; + + for (int i = 0; i < left; i++) { + newPutback [i + 1] = GetNext (); + } + + putbackBuffer = newPutback; + } + + unsafe public void Done () + { + if (index < putbackBuffer.Length) { + byte [] newPutback = new byte [putbackBuffer.Length - index]; + Array.Copy (putbackBuffer, index, newPutback, 0, newPutback.Length); + putbackBuffer = newPutback; + } else { + putbackBuffer = new byte [0]; + } + + buffer = null; + } + + public void Reset () + { + putbackBuffer = new byte [0]; + index = 0; + } + } +} diff --git a/src/XtermSharp/ReflowNarrower.cs b/src/XtermSharp/ReflowNarrower.cs new file mode 100644 index 00000000..423e1784 --- /dev/null +++ b/src/XtermSharp/ReflowNarrower.cs @@ -0,0 +1,267 @@ +using System; +using System.Collections.Generic; + +namespace XtermSharp { + class ReflowNarrower : ReflowStrategy { + public ReflowNarrower (Buffer buffer) : base (buffer) + { + } + + public override void Reflow (int newCols, int newRows, int oldCols, int oldRows) + { + // Gather all BufferLines that need to be inserted into the Buffer here so that they can be + // batched up and only committed once + List toInsert = new List (); + int countToInsert = 0; + + // Go backwards as many lines may be trimmed and this will avoid considering them + for (int y = Buffer.Lines.Length - 1; y >= 0; y--) { + // Check whether this line is a problem or not, if not skip it + BufferLine nextLine = Buffer.Lines [y]; + int lineLength = nextLine.GetTrimmedLength (); + if (!nextLine.IsWrapped && lineLength <= newCols) { + continue; + } + + // Gather wrapped lines and adjust y to be the starting line + List wrappedLines = new List (); + wrappedLines.Add (nextLine); + while (nextLine.IsWrapped && y > 0) { + nextLine = Buffer.Lines [--y]; + wrappedLines.Insert (0, nextLine); + } + + // If these lines contain the cursor don't touch them, the program will handle fixing up + // wrapped lines with the cursor + int absoluteY = Buffer.YBase + Buffer.Y; + + if (absoluteY >= y && absoluteY < y + wrappedLines.Count) { + continue; + } + + int lastLineLength = wrappedLines [wrappedLines.Count - 1].GetTrimmedLength (); + int [] destLineLengths = GetNewLineLengths (wrappedLines, oldCols, newCols); + int linesToAdd = destLineLengths.Length - wrappedLines.Count; + + int trimmedLines; + if (Buffer.YBase == 0 && Buffer.Y != Buffer.Lines.Length - 1) { + // If the top section of the buffer is not yet filled + trimmedLines = Math.Max (0, Buffer.Y - Buffer.Lines.MaxLength + linesToAdd); + } else { + trimmedLines = Math.Max (0, Buffer.Lines.Length - Buffer.Lines.MaxLength + linesToAdd); + } + + // Add the new lines + List newLines = new List (); + for (int i = 0; i < linesToAdd; i++) { + BufferLine newLine = Buffer.GetBlankLine (CharData.DefaultAttr, true); + newLines.Add (newLine); + } + + if (newLines.Count > 0) { + toInsert.Add (new InsertionSet { + Start = y + wrappedLines.Count + countToInsert, + Lines = newLines.ToArray () + }); + + countToInsert += newLines.Count; + } + + newLines.ForEach (l => wrappedLines.Add (l)); + + // Copy buffer data to new locations, this needs to happen backwards to do in-place + int destLineIndex = destLineLengths.Length - 1; // Math.floor(cellsNeeded / newCols); + int destCol = destLineLengths [destLineIndex]; // cellsNeeded % newCols; + if (destCol == 0) { + destLineIndex--; + destCol = destLineLengths [destLineIndex]; + } + + int srcLineIndex = wrappedLines.Count - linesToAdd - 1; + int srcCol = lastLineLength; + while (srcLineIndex >= 0) { + int cellsToCopy = Math.Min (srcCol, destCol); + wrappedLines [destLineIndex].CopyCellsFrom (wrappedLines [srcLineIndex], srcCol - cellsToCopy, destCol - cellsToCopy, cellsToCopy); + destCol -= cellsToCopy; + if (destCol == 0) { + destLineIndex--; + if (destLineIndex >= 0) + destCol = destLineLengths [destLineIndex]; + } + + srcCol -= cellsToCopy; + if (srcCol == 0) { + srcLineIndex--; + int wrappedLinesIndex = Math.Max (srcLineIndex, 0); + srcCol = GetWrappedLineTrimmedLength (wrappedLines, wrappedLinesIndex, oldCols); + } + } + + // Null out the end of the line ends if a wide character wrapped to the following line + for (int i = 0; i < wrappedLines.Count; i++) { + if (destLineLengths [i] < newCols) { + wrappedLines [i] [destLineLengths [i]] = CharData.Null; + } + } + + // Adjust viewport as needed + int viewportAdjustments = linesToAdd - trimmedLines; + while (viewportAdjustments-- > 0) { + if (Buffer.YBase == 0) { + if (Buffer.Y < newRows - 1) { + Buffer.Y++; + Buffer.Lines.Pop (); + } else { + Buffer.YBase++; + Buffer.YDisp++; + } + } else { + // Ensure ybase does not exceed its maximum value + if (Buffer.YBase < Math.Min (Buffer.Lines.MaxLength, Buffer.Lines.Length + countToInsert) - newRows) { + if (Buffer.YBase == Buffer.YDisp) { + Buffer.YDisp++; + } + + Buffer.YBase++; + } + } + } + + Buffer.SavedY = Math.Min (Buffer.SavedY + linesToAdd, Buffer.YBase + newRows - 1); + } + + Rearrange (toInsert, countToInsert); + + } + + void Rearrange (List toInsert, int countToInsert) + { + // Rearrange lines in the buffer if there are any insertions, this is done at the end rather + // than earlier so that it's a single O(n) pass through the buffer, instead of O(n^2) from many + // costly calls to CircularList.splice. + if (toInsert.Count > 0) { + // Record buffer insert events and then play them back backwards so that the indexes are + // correct + List insertEvents = new List (); + + // Record original lines so they don't get overridden when we rearrange the list + CircularList originalLines = new CircularList (Buffer.Lines.MaxLength); + for (int i = 0; i < Buffer.Lines.Length; i++) { + originalLines.Push (Buffer.Lines [i]); + } + + int originalLinesLength = Buffer.Lines.Length; + + int originalLineIndex = originalLinesLength - 1; + int nextToInsertIndex = 0; + InsertionSet nextToInsert = toInsert [nextToInsertIndex]; + Buffer.Lines.Length = Math.Min (Buffer.Lines.MaxLength, Buffer.Lines.Length + countToInsert); + + int countInsertedSoFar = 0; + for (int i = Math.Min (Buffer.Lines.MaxLength - 1, originalLinesLength + countToInsert - 1); i >= 0; i--) { + if (!nextToInsert.IsNull && nextToInsert.Start > originalLineIndex + countInsertedSoFar) { + // Insert extra lines here, adjusting i as needed + for (int nextI = nextToInsert.Lines.Length - 1; nextI >= 0; nextI--) { + if (i < 0) { + // if we reflow and the content has to be scrolled back past the beginning + // of the buffer then we end up loosing those lines + break; + } + + Buffer.Lines [i--] = nextToInsert.Lines [nextI]; + } + + i++; + + // Create insert events for later + //insertEvents.Add ({ + // index: originalLineIndex + 1, + // amount: nextToInsert.newLines.length + //}); + + countInsertedSoFar += nextToInsert.Lines.Length; + if (nextToInsertIndex < toInsert.Count - 1) { + nextToInsert = toInsert [++nextToInsertIndex]; + } else { + nextToInsert = InsertionSet.Null; + } + } else { + Buffer.Lines [i] = originalLines [originalLineIndex--]; + } + } + + /* + // Update markers + let insertCountEmitted = 0; + for (let i = insertEvents.length - 1; i >= 0; i--) { + insertEvents [i].index += insertCountEmitted; + this.lines.onInsertEmitter.fire (insertEvents [i]); + insertCountEmitted += insertEvents [i].amount; + } + + const amountToTrim = Math.max (0, originalLinesLength + countToInsert - this.lines.maxLength); + if (amountToTrim > 0) { + this.lines.onTrimEmitter.fire (amountToTrim); + } + */ + } + } + + /// + /// Gets the new line lengths for a given wrapped line. The purpose of this function it to pre- + /// compute the wrapping points since wide characters may need to be wrapped onto the following line. + /// This function will return an array of numbers of where each line wraps to, the resulting array + /// will only contain the values `newCols` (when the line does not end with a wide character) and + /// `newCols - 1` (when the line does end with a wide character), except for the last value which + /// will contain the remaining items to fill the line. + /// Calling this with a `newCols` value of `1` will lock up. + /// + int [] GetNewLineLengths (List wrappedLines, int oldCols, int newCols) + { + List newLineLengths = new List (); + + int cellsNeeded = 0; + for (int i = 0; i < wrappedLines.Count; i++) { + cellsNeeded += GetWrappedLineTrimmedLength (wrappedLines, i, oldCols); + } + + // Use srcCol and srcLine to find the new wrapping point, use that to get the cellsAvailable and + // linesNeeded + int srcCol = 0; + int srcLine = 0; + int cellsAvailable = 0; + while (cellsAvailable < cellsNeeded) { + if (cellsNeeded - cellsAvailable < newCols) { + // Add the final line and exit the loop + newLineLengths.Add (cellsNeeded - cellsAvailable); + break; + } + + srcCol += newCols; + int oldTrimmedLength = GetWrappedLineTrimmedLength (wrappedLines, srcLine, oldCols); + if (srcCol > oldTrimmedLength) { + srcCol -= oldTrimmedLength; + srcLine++; + } + + bool endsWithWide = wrappedLines [srcLine].GetWidth (srcCol - 1) == 2; + if (endsWithWide) { + srcCol--; + } + + int lineLength = endsWithWide ? newCols - 1 : newCols; + newLineLengths.Add (lineLength); + cellsAvailable += lineLength; + } + + return newLineLengths.ToArray (); + } + + struct InsertionSet { + public BufferLine [] Lines; + public int Start; + public bool IsNull; + public static InsertionSet Null => new InsertionSet { IsNull = true }; + } + } +} diff --git a/src/XtermSharp/ReflowStrategy.cs b/src/XtermSharp/ReflowStrategy.cs new file mode 100644 index 00000000..493efd3b --- /dev/null +++ b/src/XtermSharp/ReflowStrategy.cs @@ -0,0 +1,44 @@ +using System.Collections.Generic; + +namespace XtermSharp { + abstract class ReflowStrategy { + protected ReflowStrategy (Buffer buffer) + { + this.Buffer = buffer; + } + + public Buffer Buffer { get; } + + public abstract void Reflow (int newCols, int newRows, int oldCols, int oldRows); + + protected static int GetWrappedLineTrimmedLength (CircularList lines, int row, int cols) + { + return GetWrappedLineTrimmedLength (lines [row], row == lines.Length - 1 ? null : lines [row + 1], cols); + } + + protected static int GetWrappedLineTrimmedLength (List lines, int row, int cols) + { + return GetWrappedLineTrimmedLength (lines [row], row == lines.Count - 1 ? null : lines [row+1], cols); + } + + protected static int GetWrappedLineTrimmedLength (BufferLine line, BufferLine nextLine, int cols) + { + // If this is the last row in the wrapped line, get the actual trimmed length + if (nextLine == null) { + return line.GetTrimmedLength (); + } + + // Detect whether the following line starts with a wide character and the end of the current line + // is null, if so then we can be pretty sure the null character should be excluded from the line + // length] + bool endsInNull = !(line.HasContent (cols - 1)) && line.GetWidth (cols - 1) == 1; + bool followingLineStartsWithWide = nextLine.GetWidth (0) == 2; + + if (endsInNull && followingLineStartsWithWide) { + return cols - 1; + } + + return cols; + } + } +} diff --git a/src/XtermSharp/ReflowWider.cs b/src/XtermSharp/ReflowWider.cs new file mode 100644 index 00000000..37effd07 --- /dev/null +++ b/src/XtermSharp/ReflowWider.cs @@ -0,0 +1,200 @@ +using System; +using System.Collections.Generic; + +namespace XtermSharp { + class ReflowWider : ReflowStrategy { + public ReflowWider (Buffer buffer) : base (buffer) + { + } + + public override void Reflow (int newCols, int newRows, int oldCols, int oldRows) + { + int [] toRemove = GetLinesToRemove (Buffer.Lines, oldCols, newCols, Buffer.YBase + Buffer.Y, CharData.Null); + if (toRemove.Length > 0) { + LayoutResult newLayoutResult = CreateNewLayout (Buffer.Lines, toRemove); + ApplyNewLayout (Buffer.Lines, newLayoutResult.Layout); + AdjustViewport (newCols, newRows, newLayoutResult.RemovedCount); + } + + } + + /// + /// Evaluates and returns indexes to be removed after a reflow larger occurs. Lines will be removed + /// when a wrapped line unwraps. + /// + /// The buffer lines + /// The columns before resize + /// The columns after resize + /// + /// + int [] GetLinesToRemove (CircularList lines, int oldCols, int newCols, int bufferAbsoluteY, CharData nullCharacter) + { + // Gather all BufferLines that need to be removed from the Buffer here so that they can be + // batched up and only committed once + List toRemove = new List (); + + for (int y = 0; y < lines.Length - 1; y++) { + // Check if this row is wrapped + int i = y; + BufferLine nextLine = lines [++i]; + if (!nextLine.IsWrapped) { + continue; + } + + // Check how many lines it's wrapped for + List wrappedLines = new List (lines.Length - y); + wrappedLines.Add (lines [y]); + while (i < lines.Length && nextLine.IsWrapped) { + wrappedLines.Add (nextLine); + nextLine = lines [++i]; + } + + // If these lines contain the cursor don't touch them, the program will handle fixing up wrapped + // lines with the cursor + if (bufferAbsoluteY >= y && bufferAbsoluteY < i) { + y += wrappedLines.Count - 1; + continue; + } + + // Copy buffer data to new locations + int destLineIndex = 0; + int destCol = GetWrappedLineTrimmedLength (Buffer.Lines, destLineIndex, oldCols); + int srcLineIndex = 1; + int srcCol = 0; + while (srcLineIndex < wrappedLines.Count) { + int srcTrimmedTineLength = GetWrappedLineTrimmedLength (wrappedLines, srcLineIndex, oldCols); + int srcRemainingCells = srcTrimmedTineLength - srcCol; + int destRemainingCells = newCols - destCol; + int cellsToCopy = Math.Min (srcRemainingCells, destRemainingCells); + + wrappedLines [destLineIndex].CopyCellsFrom (wrappedLines [srcLineIndex], srcCol, destCol, cellsToCopy); + + destCol += cellsToCopy; + if (destCol == newCols) { + destLineIndex++; + destCol = 0; + } + + srcCol += cellsToCopy; + if (srcCol == srcTrimmedTineLength) { + srcLineIndex++; + srcCol = 0; + } + + // Make sure the last cell isn't wide, if it is copy it to the current dest + if (destCol == 0 && destLineIndex != 0) { + if (wrappedLines [destLineIndex - 1].GetWidth (newCols - 1) == 2) { + wrappedLines [destLineIndex].CopyCellsFrom (wrappedLines [destLineIndex - 1], newCols - 1, destCol++, 1); + // Null out the end of the last row + wrappedLines [destLineIndex - 1].ReplaceCells (newCols - 1, 1, nullCharacter); + } + } + } + + // Clear out remaining cells or fragments could remain; + wrappedLines [destLineIndex].ReplaceCells (destCol, newCols, nullCharacter); + + // Work backwards and remove any rows at the end that only contain null cells + int countToRemove = 0; + for (int ix = wrappedLines.Count - 1; ix > 0; ix--) { + if (ix > destLineIndex || wrappedLines [ix].GetTrimmedLength () == 0) { + countToRemove++; + } else { + break; + } + } + + if (countToRemove > 0) { + toRemove.Add (y + wrappedLines.Count - countToRemove); // index + toRemove.Add (countToRemove); + } + + y += wrappedLines.Count - 1; + } + + return toRemove.ToArray (); + } + + LayoutResult CreateNewLayout (CircularList lines, int [] toRemove) + { + var layout = new CircularList (lines.Length); + + // First iterate through the list and get the actual indexes to use for rows + int nextToRemoveIndex = 0; + int nextToRemoveStart = toRemove [nextToRemoveIndex]; + int countRemovedSoFar = 0; + + for (int i = 0; i < lines.Length; i++) { + if (nextToRemoveStart == i) { + int countToRemove = toRemove [++nextToRemoveIndex]; + + // Tell markers that there was a deletion + //lines.onDeleteEmitter.fire ({ + // index: i - countRemovedSoFar, + // amount: countToRemove + //}); + + i += countToRemove - 1; + countRemovedSoFar += countToRemove; + + nextToRemoveStart = int.MaxValue; + if (nextToRemoveIndex < toRemove.Length - 1) + nextToRemoveStart = toRemove [++nextToRemoveIndex]; + } else { + layout.Push (i); + } + } + + return new LayoutResult () { + Layout = layout.ToArray (), + RemovedCount = countRemovedSoFar, + }; + } + + void ApplyNewLayout (CircularList lines, int [] newLayout) + { + var newLayoutLines = new CircularList (lines.Length); + + for (int i = 0; i < newLayout.Length; i++) { + newLayoutLines.Push (lines [newLayout [i]]); + } + + // Rearrange the list + for (int i = 0; i < newLayoutLines.Length; i++) { + lines [i] = newLayoutLines [i]; + } + + lines.Length = newLayout.Length; + } + + void AdjustViewport (int newCols, int newRows, int countRemoved) + { + int viewportAdjustments = countRemoved; + while (viewportAdjustments-- > 0) { + if (Buffer.YBase == 0) { + if (Buffer.Y > 0) { + Buffer.Y--; + } + + if (Buffer.Lines.Length < newRows) { + // Add an extra row at the bottom of the viewport + Buffer.Lines.Push (new BufferLine (newCols, CharData.Null)); + } + } else { + if (Buffer.YDisp == Buffer.YBase) { + Buffer.YDisp--; + } + + Buffer.YBase--; + } + } + + Buffer.SavedY = Math.Max (Buffer.SavedY - countRemoved, 0); + } + + struct LayoutResult { + public int [] Layout; + public int RemovedCount; + } + } +} diff --git a/src/XtermSharp/Renderer/Renderer.cs b/src/XtermSharp/Renderer/Renderer.cs new file mode 100644 index 00000000..115ca9d4 --- /dev/null +++ b/src/XtermSharp/Renderer/Renderer.cs @@ -0,0 +1,11 @@ +using System; +namespace XtermSharp { + public class Renderer { + public const int DefaultColor = 256; + public const int InvertedDefaultColor = 257; + + public Renderer () + { + } + } +} diff --git a/src/XtermSharp/SearchService.cs b/src/XtermSharp/SearchService.cs new file mode 100644 index 00000000..3fff1227 --- /dev/null +++ b/src/XtermSharp/SearchService.cs @@ -0,0 +1,223 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Text; + +namespace XtermSharp { + /// + /// Handles searching in a terminal + /// + public class SearchService { + readonly SelectionService selection; + SearchSnapshot cache; + + public SearchService (Terminal terminal) + { + selection = new SelectionService (terminal); + } + + /// + /// This event is triggered when the current search snapshot has been invalidated + /// + public event Action Invalidated; + + /// + /// Gets a snapshot that can be used to perform searches. A snapshot is only useful if the buffer content or dimensions have not changed. + /// + public SearchSnapshot GetSnapshot () + { + if (cache == null) { + var result = CalculateSnapshot (); + cache = result; + } + + return cache; + } + + /// + /// Invalidates the current search snapshot due to content or size changes. + /// The cache should be invalidated when either the content of the buffer or the buffer dimensions change + /// because the snapshot has direct mappings to buffer line and locations. + /// + public void Invalidate () + { + // TODO: ideally this would be private and handled completely by the search service and consumers don't have to call this + Invalidated?.Invoke (this, cache?.LastSearch); + cache = null; + } + + private SearchSnapshot CalculateSnapshot () + { + selection.SelectAll (); + + var lines = selection.GetSelectedLines (); + + return CalculateSnapshot (lines); + } + + SearchSnapshot CalculateSnapshot (Line [] lines) + { + var result = new SearchSnapshot (lines); + + return result; + } + } + + public class SearchSnapshot { + readonly Line [] lines; + + public SearchSnapshot (Line [] lines) + { + this.lines = lines; + Text = GetTextFromLines (lines); + } + + public string Text { get; } + + [DebuggerDisplay ("{Start}, {End}")] + public class SearchResult { + public Point Start; + public Point End; + } + + /// + /// Gets the last used search term + /// + public string LastSearch { get; private set; } + + /// + /// Gets the last search results + /// + public SearchResult [] LastSearchResults { get; private set; } + + /// + /// Gets the index of the current search result + /// + public int CurrentSearchResult; + + /// + /// Given a string, returns start and end points in the buffer that contain that text + /// + public int FindText (string txt) + { + LastSearch = txt; + CurrentSearchResult = -1; + + if (string.IsNullOrEmpty(txt)) { + LastSearchResults = Array.Empty (); + return 0; + } + + // simple search for now, we might be able to just do a single scan of the buffer + // but if we want to support regex then this might be the better way + // a quick look at xterm.js and they still get a copy of the buffer and translate it to string + // so this is similar, maybe(?) caching more than we ultimately need. + var results = new List (); + + int baseLineIndex = 0; + int baseCount = 0; + var index = Text.IndexOf (txt, 0, StringComparison.CurrentCultureIgnoreCase); + while (index >= 0) { + // found a result + var result = new SearchResult (); + // whats the start and end pos of this text + // we can assume that it's on the same line, unless we are doing a regex because + // the user can't enter a \n as part of the seach term without regex + + // count the lines up to index + int count = baseCount; + for (int i = baseLineIndex; i < lines.Length; i++) { + count += lines [i].Length; + if (count > index) { + // found text is on line i + // the x position is the delta between the line start and index + // we can assume for now that the end is on the same line, since we do not yet support regex + + int lineStartCount = count - lines [i].Length; + + // we need to offset the points depending on whether the line fragment is wrapped or not + int startFragmentIndex = lines [i].GetFragmentIndexForPosition (index - lineStartCount); + LineFragment startFragment = lines [i].GetFragment (startFragmentIndex); + + // number of chars before this fragment, but on this line + int startOffset = 0; + for (int fi = 0; fi < startFragmentIndex; fi++) { + startOffset += lines [i].GetFragment (fi).Length; + } + + + result.Start = new Point (index - lineStartCount - startOffset, startFragment.Line); + + int endFragmentIndex = lines [i].GetFragmentIndexForPosition (index - lineStartCount + txt.Length - 1); + LineFragment endFragment = lines [i].GetFragment (endFragmentIndex); + + int endOffset = 0; + for (int fi = 0; fi < endFragmentIndex; fi++) { + endOffset += lines [i].GetFragment (fi).Length; + } + + result.End = new Point (index - lineStartCount + txt.Length - endOffset, endFragment.Line); + + // now, we need to fix up the end points because we might be on wrapped line + // which line fragment is the text on + + results.Add (result); + + break; + } + + // update base counts so that next time we loop we don't have to count these lines again + baseCount += lines [i].Length; + baseLineIndex++; + } + + // search again + index = Text.IndexOf (txt, index + txt.Length, StringComparison.CurrentCultureIgnoreCase); + } + + LastSearchResults = results.ToArray (); + CurrentSearchResult = -1; + + return LastSearchResults.Length; + } + + public SearchResult FindNext() + { + if (LastSearchResults == null || LastSearchResults.Length == 0) { + return null; + } + + CurrentSearchResult++; + if (CurrentSearchResult > LastSearchResults.Length - 1) + CurrentSearchResult = 0; + + return LastSearchResults [CurrentSearchResult]; + } + + public SearchResult FindPrevious() + { + if (LastSearchResults == null || LastSearchResults.Length == 0) { + return null; + } + + CurrentSearchResult--; + if (CurrentSearchResult < 0) + CurrentSearchResult = LastSearchResults.Length - 1; + + return LastSearchResults [CurrentSearchResult]; + } + + string GetTextFromLines (Line [] lines) + { + if (lines.Length == 0) + return string.Empty; + + var builder = new StringBuilder (); + foreach (var line in lines) { + line.GetFragmentStrings (builder); + } + + return builder.ToString (); + } + } +} diff --git a/src/XtermSharp/SelectionService.cs b/src/XtermSharp/SelectionService.cs new file mode 100644 index 00000000..05360abb --- /dev/null +++ b/src/XtermSharp/SelectionService.cs @@ -0,0 +1,499 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace XtermSharp { + /// + /// Provides a service for working with selections + /// + public class SelectionService { + readonly PointComparer comparer; + readonly Terminal terminal; + readonly NStack.ustring nullString; + readonly NStack.ustring spaceString; + private bool active; + + public SelectionService (Terminal terminal) + { + this.terminal = terminal; + comparer = new PointComparer (); + nullString = NStack.ustring.Make (CharData.Null.Rune); + spaceString = NStack.ustring.Make (" "); + } + + /// + /// Gets or sets a value indicating whether the selection is active or not + /// + public bool Active { + get => active; + set { + var oldState = active; + active = value; + if (oldState != value) { + SelectionChanged?.Invoke (); + } + } + } + + /// + /// Gets the selection start point in buffer coordinates + /// + public Point Start { get; private set; } + + /// + /// Gets the selection end point in buffer coordinates + /// + public Point End { get; private set; } + + /// + /// Raised when the selection range or active state has been changed + /// + public event Action SelectionChanged; + + /// + /// Starts selection from the given point in the buffer + /// + public void StartSelection (int row, int col) + { + Start = End = new Point (col, row + terminal.Buffer.YDisp); + // set the field to bypass sending this event twice + active = true; + SelectionChanged?.Invoke (); + } + + /// + /// Starts selection from the last start position + /// + public void StartSelection () + { + End = Start; + // set the field to bypass sending this event twice + active = true; + SelectionChanged?.Invoke (); + } + + /// + /// Sets the start and end positions but does not start selection + /// this lets us record the last position of mouse clicks so that + /// drag and shift+click operations know from where to start selection + /// from + /// + public void SetSoftStart(int row, int col) + { + Start = End = new Point (col, row + terminal.Buffer.YDisp); + } + + /// + /// Extends the selection based on the user "shift" clicking. This has + /// slightly different semantics than a "drag" extension because we can + /// shift the start to be the last prior end point if the new extension + /// is before the current start point. + /// + public void ShiftExtend (int row, int col) + { + active = true; + var newEnd = new Point (col, row + terminal.Buffer.YDisp); + + var shouldSwapStart = false; + if (comparer.Compare (Start, End) < 0) { + // start is before end, is the new end before Start + if (comparer.Compare (newEnd, Start) < 0) { + // yes, swap Start and End + shouldSwapStart = true; + } + } else if (comparer.Compare (Start, End) > 0) { + if (comparer.Compare (newEnd, Start) > 0) { + // yes, swap Start and End + shouldSwapStart = true; + } + } + + if (shouldSwapStart) { + Start = End; + } + + End = newEnd; + SelectionChanged?.Invoke (); + } + + /// + /// Extends the selection by moving the end point to the new point. + /// + public void DragExtend (int row, int col) + { + End = new Point (col, row + terminal.Buffer.YDisp); + SelectionChanged?.Invoke (); + } + + /// + /// Selects the entire buffer + /// + public void SelectAll() + { + Start = new Point (0, 0); + End = new Point (terminal.Cols - 1, terminal.Buffer.Lines.MaxLength - 1); + + // set the field to bypass sending this event twice + active = true; + SelectionChanged?.Invoke (); + } + + /// + /// Clears the selection + /// + public void SelectNone () + { + active = false; + SelectionChanged?.Invoke (); + } + + /// + /// Selects a row in the terminal + /// + public void SelectRow (int row) + { + Start = new Point (0, row + terminal.Buffer.YDisp); + End = new Point (terminal.Cols - 1, row + terminal.Buffer.YDisp); + // set the field to bypass sending this event twice + active = true; + SelectionChanged?.Invoke (); + } + + /// + /// Selects a word or expression based on the col and row that the user sees on screen + /// An expression is a balanced set parenthesis, braces or brackets + /// + public void SelectWordOrExpression(int col, int row) + { + var buffer = terminal.Buffer; + + // ensure the bounds are inside the terminal. + row = Math.Max (row, 0); + col = Math.Max (Math.Min (col, terminal.Buffer.Cols - 1), 0); + + row += buffer.YDisp; + + Func isLetterOrChar = (cd) => { + if (cd.IsNullChar ()) + return false; + return Rune.IsLetterOrDigit (cd.Rune); + }; + + var chr = buffer.GetChar (col, row); + if (chr.IsNullChar()) { + SimpleScanSelection (col, row, (ch) => { + return ch.IsNullChar (); + }); + } else { + if (isLetterOrChar(chr)) { + SimpleScanSelection (col, row, (ch) => { + return isLetterOrChar (ch) || ch.MatchesRune(CharData.Period); + }); + } else { + if (chr.MatchesRune(CharData.WhiteSpace)) { + SimpleScanSelection (col, row, (ch) => { + return ch.MatchesRune (CharData.WhiteSpace); + }); + } else if (chr.MatchesRune (CharData.LeftBrace) || chr.MatchesRune (CharData.LeftBracket) || chr.MatchesRune (CharData.LeftParenthesis)) { + BalancedSearchForward (col, row); + } else if (chr.MatchesRune (CharData.RightBrace) || chr.MatchesRune (CharData.RightBracket) || chr.MatchesRune (CharData.RightParenthesis)) { + BalancedSearchBackward (col, row); + } else { + // For other characters, we just stop there + Start = End = new Point (col, row + terminal.Buffer.YDisp); + } + } + } + + active = true; + SelectionChanged?.Invoke (); + } + + /// + /// Gets the selected range as text + /// + public string GetSelectedText () + { + var lines = GetSelectedLines (); + if (lines.Length == 0) + return string.Empty; + + var builder = new StringBuilder (); + foreach (var line in lines) { + line.GetFragmentStrings (builder); + } + + return builder.ToString (); + } + + /// + /// Gets the selected range as an array of Line + /// + public Line [] GetSelectedLines() + { + var start = Start; + var end = End; + + switch (comparer.Compare (start, End)) { + case 0: + return Array.Empty(); + case 1: + start = End; + end = Start; + break; + } + + if (start.Y < 0 || start.Y > terminal.Buffer.Lines.Length) { + return Array.Empty (); + } + + if (end.Y >= terminal.Buffer.Lines.Length) { + end.Y = terminal.Buffer.Lines.Length - 1; + } + + return GetSelectedLines (start, end); + } + + Line [] GetSelectedLines (Point start, Point end) + { + var lines = new List (); + var buffer = terminal.Buffer; + string str; + Line currentLine = new Line (); + lines.Add (currentLine); + + // keep a list of blank lines that we see. if we see content after a group + // of blanks, add those blanks but skip all remaining / trailing blanks + // these will be blank lines in the selected text output + var blanks = new List (); + + Action addBlanks = () => { + int lastLine = -1; + foreach (var b in blanks) { + if (lastLine != -1 && b.Line != lastLine) { + currentLine = new Line (); + lines.Add (currentLine); + } + + lastLine = b.Line; + currentLine.Add (b); + } + blanks.Clear (); + }; + + // get the first line + BufferLine bufferLine = buffer.Lines [start.Y]; + if (bufferLine != null && bufferLine.HasAnyContent ()) { + str = TranslateBufferLineToString (buffer, start.Y, start.X, start.Y < end.Y ? -1 : end.X); + + var fragment = new LineFragment (str, start.Y, start.X); + currentLine.Add (fragment); + } + + // get the middle rows + var line = start.Y + 1; + var isWrapped = false; + while (line < end.Y) { + bufferLine = buffer.Lines [line]; + isWrapped = bufferLine?.IsWrapped ?? false; + + str = TranslateBufferLineToString (buffer, line, 0, -1); + + if (bufferLine.HasAnyContent ()) { + // add previously gathered blank fragments + addBlanks (); + + if (!isWrapped) { + // this line is not a wrapped line, so the + // prior line has a hard linefeed + // add a fragment to that line + currentLine.Add (LineFragment.NewLine (line - 1)); + + // start a new line + currentLine = new Line (); + lines.Add (currentLine); + } + + // add the text we found to the current line + currentLine.Add (new LineFragment (str, line, 0)); + } else { + // this line has no content, which means that it's a blank line inserted + // somehow, or one of the trailing blank lines after the last actual content + // make a note of the line + // check that this line is a wrapped line, if so, add a line feed fragment + if (!isWrapped) { + blanks.Add (LineFragment.NewLine (line - 1)); + } + + blanks.Add (new LineFragment (str, line, 0)); + } + + line++; + } + + // get the last row + if (end.Y != start.Y) { + bufferLine = buffer.Lines [end.Y]; + if (bufferLine != null && bufferLine.HasAnyContent ()) { + addBlanks (); + + isWrapped = bufferLine?.IsWrapped ?? false; + str = TranslateBufferLineToString (buffer, end.Y, 0, end.X); + if (!isWrapped) { + currentLine.Add (LineFragment.NewLine (line - 1)); + currentLine = new Line (); + lines.Add (currentLine); + } + + currentLine.Add (new LineFragment (str, line, 0)); + } + } + + return lines.ToArray (); + } + + string TranslateBufferLineToString(Buffer buffer, int line, int start, int end) + { + return buffer.TranslateBufferLineToString (line, true, start, end).Replace (nullString, spaceString).ToString(); + } + + /// + /// Performs a simple "word" selection based on a function that determines inclussion into the group + /// + void SimpleScanSelection (int col, int row, Func includeFunc) + { + var buffer = terminal.Buffer; + + // Look backward + var colScan = col; + var left = colScan; + while (colScan >= 0) { + var ch = buffer.GetChar(colScan, row); + if (!includeFunc (ch)) { + break; + } + + left = colScan; + colScan -= 1; + } + + // Look forward + colScan = col; + var right = colScan; + var limit = terminal.Cols; + while (colScan < limit) { + var ch = buffer.GetChar (colScan, row); + + if (!includeFunc (ch)) { + break; + } + + colScan += 1; + right = colScan; + } + + Start = new Point (left, row); + End = new Point (right, row); + } + + /// + /// Performs a forward search for the `end` character, but this can extend across matching subexpressions + /// made of pairs of parenthesis, braces and brackets. + /// + void BalancedSearchForward (int col, int row) + { + var buffer = terminal.Buffer; + var startCol = col; + var wait = new List (); + + Start = new Point(col, row); + + for (int line = row; line < terminal.Rows; line++) { + for (int colIndex = startCol; colIndex < terminal.Cols; colIndex++) { + var p = new Point (colIndex, line); + var ch = buffer.GetChar (colIndex, line); + + if (ch.MatchesRune(CharData.LeftParenthesis)) { + wait.Insert (0, CharData.RightParenthesis); + } else if (ch.MatchesRune(CharData.LeftBracket)) { + wait.Insert (0, CharData.RightBracket); + } else if (ch.MatchesRune(CharData.LeftBrace)) { + wait.Insert (0, CharData.RightBrace); + } else { + var v = wait.Count > 0 ? wait [0] : CharData.Null; + if (!v.MatchesRune(CharData.Null) && v.MatchesRune(ch)) { + wait.RemoveAt (0); + if (wait.Count == 0) { + End = new Point (p.X + 1, p.Y); + return; + } + } + } + } + + startCol = 0; + } + + Start = End = new Point (col, row); + } + + /// + /// Performs a backward search for the `end` character, but this can extend across matching subexpressions + /// made of pairs of parenthesis, braces and brackets. + /// + void BalancedSearchBackward (int col, int row) + { + var buffer = terminal.Buffer; + var startCol = col; + var wait = new List (); + + End = new Point (col, row); + + for (int line = row; line > 0; line--) { + for (int colIndex = startCol; colIndex > 0; colIndex--) { + var p = new Point (colIndex, line); + var ch = buffer.GetChar (colIndex, line); + + if (ch.MatchesRune(CharData.RightParenthesis)) { + wait.Insert (0, CharData.LeftParenthesis); + } else if (ch.MatchesRune(CharData.RightBracket)) { + wait.Insert (0,CharData.LeftBracket); + } else if (ch.MatchesRune(CharData.RightBrace)) { + wait.Insert (0, CharData.LeftBrace); + } else { + var v = wait.Count > 0 ? wait [0] : CharData.Null; + if (!v.MatchesRune (CharData.Null) && v.MatchesRune (ch)) { + wait.RemoveAt (0); + if (wait.Count == 0) { + End = new Point (End.X + 1, End.Y); + Start = p; + return; + } + } + } + } + + startCol = terminal.Cols - 1; + } + + Start = End = new Point (col, row); + } + + class PointComparer : IComparer { + public int Compare (Point x, Point y) + { + if (x.Y < y.Y) + return -1; + if (x.Y > y.Y) + return 1; + // x and y are on the same row, compare columns + if (x.X < y.X) + return -1; + if (x.X > y.X) + return 1; + // they are the same + return 0; + } + } + } +} diff --git a/src/XtermSharp/Terminal.cs b/src/XtermSharp/Terminal.cs new file mode 100644 index 00000000..623032db --- /dev/null +++ b/src/XtermSharp/Terminal.cs @@ -0,0 +1,1215 @@ +using System; +using System.Collections.Generic; +using System.Text; +using CommunityToolkit.Mvvm.ComponentModel; + +namespace XtermSharp { + + public partial class Terminal: ObservableObject + { + const int MINIMUM_COLS = 2; + const int MINIMUM_ROWS = 1; + + //static Dictionary matchColorCache = new Dictionary (); + readonly ITerminalDelegate terminalDelegate; + readonly ControlCodes controlCodes; + readonly List titleStack; + readonly List iconTitleStack; + readonly BufferSet buffers; + readonly InputHandler input; + + BufferLine blankLine; + + // modes + bool insertMode; + bool bracketedPasteMode; + + // saved modes + bool savedMarginMode; + bool savedOriginMode; + bool savedWraparound; + bool savedReverseWraparound; + + // unsorted + bool applicationKeypad, applicationCursor; + bool cursorHidden; + Dictionary charset; + int gcharset; + int gLevel; + int refreshStart = Int32.MaxValue; + int refreshEnd = -1; + bool userScrolling; + + public Terminal (ITerminalDelegate terminalDelegate = null, TerminalOptions options = null) + { + this.terminalDelegate = terminalDelegate ?? new SimpleTerminalDelegate (); + controlCodes = new ControlCodes () { Send8bit = false }; + titleStack = new List (); + iconTitleStack = new List (); + input = new InputHandler (this); + + Options = options ?? new TerminalOptions (); + Cols = Math.Max (Options.Cols, MINIMUM_COLS); + Rows = Math.Max (Options.Rows, MINIMUM_ROWS); + + buffers = new BufferSet (this); + Setup (); + } + + /// + /// Gets the delegate for the terminal + /// + public ITerminalDelegate Delegate => terminalDelegate; + + /// + /// Gets the control codes for the terminal + /// + public ControlCodes ControlCodes => controlCodes; + + /// + /// Gets the current title of the terminal + /// + public string Title { get; private set; } + + /// + /// Gets the current icon title of the terminal + /// + public string IconTitle { get; private set; } + + /// + /// Gets the currently active buffer + /// + public Buffer Buffer => buffers.Active; + + /// + /// Gets the BufferSet for the terminal + /// + public BufferSet Buffers => buffers; + + /// + /// Gets the margin mode of the terminal + /// + public bool MarginMode { get; internal set; } + + /// + /// Gets the origin mode of the terminal + /// + public bool OriginMode { get; internal set; } + + /// + /// Gets the Wraparound mode of the terminal + /// + public bool Wraparound { get; internal set; } + + /// + /// Gets the ReverseWraparound mode of the terminal + /// + public bool ReverseWraparound { get; internal set; } + + /// + /// Gets the current mouse mode + /// + public MouseMode MouseMode { get; internal set; } + + /// + /// Gets the current mouse protocol + /// + public MouseProtocolEncoding MouseProtocol { get; internal set; } + + /// + /// Gets a value indicating whether the terminal can be resized to 132 + /// + public bool Allow80To132 { get; internal set; } + + public Dictionary Charset { + get => charset; + set { + charset = value; + } + } + + public bool ApplicationCursor { get; internal set; } + public int SavedCols { get; internal set; } + public bool ApplicationKeypad { get; internal set; } + + public bool SendFocus { get; internal set; } + + public bool CursorHidden { get; internal set; } + public bool BracketedPasteMode { get; internal set; } + + public TerminalOptions Options { get; private set; } + + [ObservableProperty] + public partial int Cols { get; private set; } + + [ObservableProperty] + public partial int Rows { get; private set; } + + public bool InsertMode; + public int CurAttr; + + /// + /// Provides a baseline set of environment variables that would be useful to run the terminal, + /// you can customzie these accordingly. + /// + public static string [] GetEnvironmentVariables (string termName = null) + { + var l = new List (); + if (termName == null) + termName = "xterm-256color"; + + l.Add ("TERM=" + termName); + + // Without this, tools like "vi" produce sequences that are not UTF-8 friendly + l.Add ("LANG=en_US.UTF-8"); + var env = Environment.GetEnvironmentVariables (); + foreach (var x in new [] { "LOGNAME", "DISPLAY", "LC_TYPE", "USER", "HOME", "PATH" }) + if (env.Contains (x)) + l.Add ($"{x}={env [x]}"); + return l.ToArray (); + } + + /// + /// Called by input handlers to set the title + /// + internal void SetTitle (string text) + { + Title = text; + terminalDelegate.SetTerminalTitle (this, text); + } + + /// + /// Called by input handlers to push the current title onto the stack + /// + internal void PushTitle () + { + titleStack.Insert (0, Title); + } + + /// + /// Called by input handlers to pop and set the title to the last one on the stack + /// + internal void PopTitle () + { + if (titleStack.Count > 0) { + Title = titleStack[0]; + titleStack.RemoveAt (0); + } + + terminalDelegate.SetTerminalTitle (this, Title); + } + + /// + /// Called by input handlers to set the icon title + /// + internal void SetIconTitle (string text) + { + IconTitle = text; + terminalDelegate.SetTerminalIconTitle (this, text); + } + + /// + /// Called by input handlers to push the current icon title onto the stack + /// + internal void PushIconTitle () + { + iconTitleStack.Insert (0, IconTitle); + } + + /// + /// Called by input handlers to pop and set the icon title to the last one on the stack + /// + internal void PopIconTitle () + { + if (iconTitleStack.Count > 0) { + IconTitle = iconTitleStack [0]; + iconTitleStack.RemoveAt (0); + } + + terminalDelegate.SetTerminalIconTitle (this, IconTitle); + } + + /// + /// Sends a response to a command + /// + public void SendResponse (string txt) + { + terminalDelegate.Send (Encoding.UTF8.GetBytes (txt)); + } + + /// + /// Sends a response to a command + /// + public void SendResponse (params object[] args) + { + if (args == null) { + return; + } + + int len = args.Length; + for (int i = 0; i < args.Length; i++) { + if (args [i] is string s) { + len += s != null ? s.Length - 1: 0; + } else if (args [i] is byte [] ba) { + len += ba.Length - 1; + } + } + + var buffer = new byte [len]; + + int bufferIndex = 0; + for (int i = 0; i < args.Length; i++) { + if (args[i] == null) { + buffer [bufferIndex] = 0; + } else if (args[i] is byte b) { + buffer [bufferIndex] = b; + } else if (args[i] is string s) { + if (s == null) { + buffer [bufferIndex] = 0; + } else { + foreach (var sb in Encoding.UTF8.GetBytes (s)) { + buffer [bufferIndex++] = sb; + } + } + bufferIndex--; + } else if (args[i] is byte[] ba) { + foreach (var bab in ba) { + buffer [bufferIndex++] = bab; + } + bufferIndex--; + } else { + Error ("Unsupported type in SendResponse", args[i].GetType()); + } + + bufferIndex++; + } + + terminalDelegate.Send (buffer); + } + + /// + /// Reports an error to the system log + /// + public void Error (string txt, params object [] args) + { + Report ("ERROR", txt, args); + } + + /// + /// Logs a message to the system log + /// + public void Log (string text, params object [] args) + { + Report ("LOG", text, args); + } + + public void Feed (byte [] data, int len = -1) + { + input.Parse (data, len); + } + + public void Feed (IntPtr data, int len = -1) + { + input.Parse (data, len); + } + + public void Feed (string text) + { + var bytes = Encoding.UTF8.GetBytes (text); + Feed (bytes, bytes.Length); + } + + internal void UpdateRange (int y) + { + if (y < 0) + throw new ArgumentException (); + + if (y < refreshStart) + refreshStart = y; + if (y > refreshEnd) + refreshEnd = y; + } + + public void GetUpdateRange (out int startY, out int endY) + { + startY = refreshStart; + endY = refreshEnd; + } + + public void ClearUpdateRange () + { + refreshStart = Int32.MaxValue; + refreshEnd = -1; + } + + internal void EmitChar (int ch) + { + // For accessibility purposes 'a11y.char' in the original source. + } + + // + // ESC c Full Reset (RIS) + // + internal void Reset () + { + Options.Rows = Rows; + Options.Cols = Cols; + + var savedCursorHidden = cursorHidden; + Setup (); + cursorHidden = savedCursorHidden; + Refresh (0, Rows - 1); + SyncScrollArea (); + } + + // + // ESC D Index (Index is 0x84) + // + internal void Index () + { + var buffer = Buffer; + var newY = buffer.Y + 1; + if (newY > buffer.ScrollBottom) { + Scroll (); + } else { + buffer.Y = newY; + } + // If the end of the line is hit, prevent this action from wrapping around to the next line. + if (buffer.X > Cols) + buffer.X--; + } + + internal void Scroll (bool isWrapped = false) + { + var buffer = Buffer; + BufferLine newLine = blankLine; + if (newLine == null || newLine.Length != Cols || newLine [0].Attribute != EraseAttr ()) { + newLine = buffer.GetBlankLine (EraseAttr (), isWrapped); + blankLine = newLine; + } + newLine.IsWrapped = isWrapped; + + var topRow = buffer.YBase + buffer.ScrollTop; + var bottomRow = buffer.YBase + buffer.ScrollBottom; + + if (buffer.ScrollTop == 0) { + // Determine whether the buffer is going to be trimmed after insertion. + var willBufferBeTrimmed = buffer.Lines.IsFull; + + // Insert the line using the fastest method + if (bottomRow == buffer.Lines.Length - 1) { + if (willBufferBeTrimmed) { + buffer.Lines.Recycle ().CopyFrom (newLine); + } else { + buffer.Lines.Push (new BufferLine (newLine)); + } + } else { + buffer.Lines.Splice (bottomRow + 1, 0, new BufferLine (newLine)); + } + + // Only adjust ybase and ydisp when the buffer is not trimmed + if (!willBufferBeTrimmed) { + buffer.YBase++; + // Only scroll the ydisp with ybase if the user has not scrolled up + if (!userScrolling) { + buffer.YDisp++; + } + } else { + // When the buffer is full and the user has scrolled up, keep the text + // stable unless ydisp is right at the top + if (userScrolling) { + buffer.YDisp = Math.Max (buffer.YDisp - 1, 0); + } + } + } else { + // scrollTop is non-zero which means no line will be going to the + // scrollback, instead we can just shift them in-place. + var scrollRegionHeight = bottomRow - topRow + 1/*as it's zero-based*/; + + if (scrollRegionHeight > 1) { + buffer.Lines.ShiftElements (topRow + 1, scrollRegionHeight - 1, -1); + } + + buffer.Lines [bottomRow] = new BufferLine (newLine); + } + + // Move the viewport to the bottom of the buffer unless the user is + // scrolling. + if (!userScrolling) { + buffer.YDisp = buffer.YBase; + } + + // Flag rows that need updating + UpdateRange (buffer.ScrollTop); + UpdateRange (buffer.ScrollBottom); + + /** + * This event is emitted whenever the terminal is scrolled. + * The one parameter passed is the new y display position. + * + * @event scroll + */ + Scrolled?.Invoke (this, buffer.YDisp); + } + + /// + /// Scroll the display of the terminal + /// + /// The number of lines to scroll down (negative scroll up) + /// Don't emit the scroll event as scrollLines. This is use to avoid unwanted + /// events being handled by the viewport when the event was triggered from the viewport originally. + public void ScrollLines(int disp, bool suppressScrollEvent = false) + { + if (disp < 0) { + if (Buffer.YDisp == 0) { + return; + } + + this.userScrolling = true; + } else if (disp + Buffer.YDisp >= Buffer.YBase) { + this.userScrolling = false; + } + + int oldYdisp = Buffer.YDisp; + Buffer.YDisp = Math.Max (Math.Min (Buffer.YDisp + disp, Buffer.YBase), 0); + + // No change occurred, don't trigger scroll/refresh + if (oldYdisp == Buffer.YDisp) { + return; + } + + if (!suppressScrollEvent) { + Scrolled?.Invoke (this, Buffer.YDisp); + } + + Refresh (0, this.Rows - 1); + } + + public event Action Scrolled; + + public event Action DataEmitted; + + internal void Bell () + { + //Console.WriteLine ("beep"); + } + + public void EmitLineFeed () + { + if (LineFeedEvent != null) + LineFeedEvent (this); + } + + public event Action LineFeedEvent; + + internal void EmitA11yTab (object p) + { + throw new NotImplementedException (); + } + + internal void SetgLevel (int v) + { + gLevel = v; + if (CharSets.All.TryGetValue ((byte)v, out var cs)) + Charset = cs; + else + Charset = null; + } + + internal int EraseAttr () + { + return (CharData.DefaultAttr & ~0x1ff) | CurAttr & 0x1ff; + } + + internal void EmitScroll (int v) + { + return; + throw new NotImplementedException (); + } + + internal void SetgCharset (byte v, Dictionary charset) + { + CharSets.All [v] = charset; + if (gLevel == v) + this.charset = charset; + } + + public void Resize (int cols, int rows) + { + if (cols < MINIMUM_COLS) + cols = MINIMUM_COLS; + if (rows < MINIMUM_ROWS) + rows = MINIMUM_ROWS; + if (cols == Cols && rows == Rows) + return; + + var oldCols = Cols; + Cols = cols; + Rows = rows; + Buffers.Resize (cols, rows); + buffers.SetupTabStops (oldCols); + Refresh (0, Rows - 1); + } + + internal void SyncScrollArea () + { + // This should call the viewport syncscrollarea + //throw new NotImplementedException (); + } + + /// + /// Implemented by subclasses - must refresh the display from the starting to the end row. + /// + /// Initial row to update, offset starts at zero. + /// Last row to update. + public void Refresh (int startRow, int endRow) + { + // TO BE HONEST - This probably should not be called directly, + // instead the view shoudl after feeding data, determine if there is a need + // to refresh based on the parameters provided for refresh ranges, and then + // update, to avoid the backend rtiggering this multiple times. + + UpdateRange (startRow); + UpdateRange (endRow); + } + + public void ShowCursor () + { + if (cursorHidden == false) + return; + cursorHidden = false; + Refresh (Buffer.Y, Buffer.Y); + terminalDelegate.ShowCursor (this); + } + + /// + /// Encodes button and position to characters + /// + void EncodeMouseUtf (List data, int ch) + { + if (ch == 2047) { + data.Add (0); + return; + } + if (ch < 127) { + data.Add ((byte)ch); + } else { + if (ch > 2047) + ch = 2047; + data.Add ((byte)(0xC0 | (ch >> 6))); + data.Add ((byte)(0x80 | (ch & 0x3F))); + } + } + + /// + /// Encodes the mouse button. + /// + /// The mouse button. + /// Button (0, 1, 2 for left, middle, right) and 4 for wheel up, and 5 for wheel down. + /// If set to true release. + /// If set to true wheel up. + /// If set to true shift. + /// If set to true meta. + /// If set to true control. + public int EncodeMouseButton (int button, bool release, bool shift, bool meta, bool control) + { + int value; + + if (release) + value = 3; + else { + switch (button) { + case 0: + value = 0; + break; + case 1: + value = 1; + break; + case 2: + value = 2; + break; + case 4: + value = 64; + break; + case 5: + value = 65; + break; + default: + value = 0; + break; + } + } + + if (MouseMode.SendsModifiers()) { + if (shift) + value |= 4; + if (meta) + value |= 8; + if (control) + value |= 16; + } + return value; + } + + /// + /// Sends a mouse event for a specific button at the specific location + /// + /// Button flags encoded in Cb mode. + /// The x coordinate. + /// The y coordinate. + public void SendEvent (int buttonFlags, int x, int y) + { + switch (MouseProtocol) { + case MouseProtocolEncoding.X10: + SendResponse (ControlCodes.CSI, "M", (byte)(buttonFlags + 32), (byte)Math.Min (255, (32 + x + 1)), (byte)Math.Min (255, (32 + y + 1))); + break; + case MouseProtocolEncoding.SGR: + var bflags = ((buttonFlags & 3) == 3) ? (buttonFlags & ~3) : buttonFlags; + var m = ((buttonFlags & 3) == 3) ? "m" : "M"; + SendResponse (ControlCodes.CSI, $"<{bflags};{x+1};{y+1}{m}"); + break; + case MouseProtocolEncoding.URXVT: + SendResponse (ControlCodes.CSI, $"{buttonFlags+32};{x+1};{y+1}M"); + break; + case MouseProtocolEncoding.UTF8: + var utf8 = new List () { 0x4d /* M */ }; + EncodeMouseUtf (utf8, ch: buttonFlags+32); + EncodeMouseUtf (utf8, ch: x+33); + EncodeMouseUtf (utf8, ch: y+33); + SendResponse (ControlCodes.CSI, utf8.ToArray()); + break; + } + } + + public void SendMouseMotion (int buttonFlags, int x, int y) + { + SendEvent (buttonFlags + 32, x, y); + + } + + public int MatchColor (int r1, int g1, int b1) + { + throw new NotImplementedException (); + } + + internal void EmitData (string txt) + { + DataEmitted?.Invoke (this, txt); + } + + /// + /// Implement to change the cursor style, call the base implementation. + /// + /// + public void SetCursorStyle (CursorStyle style) + { + } + + internal void ReverseIndex () + { + var buffer = Buffer; + + if (buffer.Y == buffer.ScrollTop) { + // possibly move the code below to term.reverseScroll(); + // test: echo -ne '\e[1;1H\e[44m\eM\e[0m' + // blankLine(true) is xterm/linux behavior + var scrollRegionHeight = buffer.ScrollBottom - buffer.ScrollTop; + buffer.Lines.ShiftElements (buffer.Y + buffer.YBase, scrollRegionHeight, 1); + buffer.Lines [buffer.Y + buffer.YBase] = buffer.GetBlankLine (EraseAttr ()); + UpdateRange (buffer.ScrollTop); + UpdateRange (buffer.ScrollBottom); + } else { + buffer.Y--; + } + } + + + #region Cursor Commands + /// + /// Sets the location of the cursor (zero based) + /// + public void SetCursor (int col, int row) + { + var buffer = Buffer; + + // make sure we stay within the boundaries + col = Math.Min (Math.Max (col, 0), buffer.Cols - 1); + row = Math.Min (Math.Max (row, 0), buffer.Rows - 1); + + if (OriginMode) { + buffer.X = col + (IsUsingMargins () ? buffer.MarginLeft : 0); + buffer.Y = buffer.ScrollTop + row; + } else { + buffer.X = col; + buffer.Y = row; + } + } + /// + // Moves the cursor up by rows + /// + public void CursorUp (int rows) + { + var buffer = Buffer; + var top = buffer.ScrollTop; + + if (buffer.Y < top) { + top = 0; + } + + if (buffer.Y - rows < top) + buffer.Y = top; + else + buffer.Y -= rows; + } + + /// + // Moves the cursor down by rows + /// + public void CursorDown (int rows) + { + var buffer = Buffer; + var bottom = buffer.ScrollBottom; + + // When the cursor starts below the scroll region, CUD moves it down to the + // bottom of the screen. + if (buffer.Y > bottom) { + bottom = buffer.Rows - 1; + } + + var newY = buffer.Y + rows; + + if (newY >= bottom) + buffer.Y = bottom; + else + buffer.Y = newY; + + // If the end of the line is hit, prevent this action from wrapping around to the next line. + if (buffer.X >= Cols) + buffer.X--; + } + + /// + // Moves the cursor forward by cols + /// + public void CursorForward (int cols) + { + var buffer = Buffer; + var right = MarginMode ? buffer.MarginRight : buffer.Cols - 1; + + if (buffer.X > right) { + right = buffer.Cols - 1; + } + + buffer.X += cols; + if (buffer.X > right) { + buffer.X = right; + } + } + + /// + // Moves the cursor forward by cols + /// + public void CursorBackward (int cols) + { + var buffer = Buffer; + + // What is our left margin - depending on the settings. + var left = MarginMode ? buffer.MarginLeft : 0; + + // If the cursor is positioned before the margin, we can go backwards to the first column + if (buffer.X < left) { + left = 0; + } + buffer.X -= cols; + + if (buffer.X < left) { + buffer.X = left; + } + } + + /// + /// Performs a backwards tab + /// + public void CursorBackwardTab (int tabs) + { + var buffer = Buffer; + while (tabs-- != 0) { + buffer.X = buffer.PreviousTabStop (); + } + } + + /// + /// Moves the cursor to the given column + /// + public void CursorCharAbsolute (int col) + { + var buffer = Buffer; + buffer.X = (IsUsingMargins () ? buffer.MarginLeft : 0) + Math.Min (col - 1, buffer.Cols - 1); + } + + /// + /// Performs a linefeed + /// + public void LineFeed () + { + var buffer = Buffer; + if (Options.ConvertEol) { + buffer.X = MarginMode ? buffer.MarginLeft : 0; + } + + LineFeedBasic (); + } + + /// + /// Performs a basic linefeed + /// + public void LineFeedBasic () + { + var buffer = Buffer; + var by = buffer.Y; + + if (by == buffer.ScrollBottom) { + Scroll (isWrapped: false); + } else if (by == buffer.Rows - 1) { + } else { + buffer.Y = by + 1; + } + + // If the end of the line is hit, prevent this action from wrapping around to the next line. + if (buffer.X >= buffer.Cols) { + buffer.X -= 1; + } + + // This event is emitted whenever the terminal outputs a LF or NL. + EmitLineFeed (); + } + + /// + /// Moves cursor to first position on next line. + /// + public void NextLine () + { + var buffer = Buffer; + buffer.X = IsUsingMargins () ? buffer.MarginLeft : 0; + Index (); + } + + /// + /// Save cursor (ANSI.SYS). + /// + public void SaveCursor () + { + var buffer = Buffer; + buffer.SaveCursor (CurAttr); + } + + /// + /// Restores the cursor and modes + /// + public void RestoreCursor () + { + var buffer = Buffer; + CurAttr = buffer.RestoreCursor(); + MarginMode = savedMarginMode; + OriginMode = savedOriginMode; + Wraparound = savedWraparound; + ReverseWraparound = savedReverseWraparound; + } + + /// + /// Restrict cursor to viewport size / scroll margin (origin mode) + /// - Parameter limitCols: by default it is true, but the reverseWraparound mechanism in Backspace needs `x` to go beyond. + /// + public void RestrictCursor (bool limitCols = true) + { + var buffer = Buffer; + buffer.X = Math.Min (buffer.Cols - (limitCols ? 1 : 0), Math.Max (0, buffer.X)); + buffer.Y = OriginMode + ? Math.Min (buffer.ScrollBottom, Math.Max (buffer.ScrollTop, buffer.Y)) + : Math.Min (buffer.Rows - 1, Math.Max (0, buffer.Y)); + + UpdateRange (buffer.Y); + } + + /// + /// Returns true if the terminal is using margins in origin mode + /// + internal bool IsUsingMargins () + { + return OriginMode && MarginMode; + } + + #endregion + + /// + /// Performs a carriage return + /// + public void CarriageReturn () + { + var buffer = Buffer; + if (MarginMode) { + if (buffer.X < buffer.MarginLeft) { + buffer.X = 0; + } else { + buffer.X = buffer.MarginLeft; + } + } else { + buffer.X = 0; + } + } + + #region Text Manupulation + /// + /// Backspace handler (Control-h) + /// + public void Backspace () + { + var buffer = Buffer; + + RestrictCursor (!ReverseWraparound); + + int left = MarginMode ? buffer.MarginLeft : 0; + int right = MarginMode ? buffer.MarginRight : buffer.Cols - 1; + + if (buffer.X > left) { + buffer.X--; + } else if (ReverseWraparound) { + if (buffer.X <= left) { + if (buffer.Y > buffer.ScrollTop && buffer.Y <= buffer.ScrollBottom && (buffer.Lines [buffer.Y + buffer.YBase].IsWrapped || MarginMode)) { + if (!MarginMode) { + buffer.Lines [buffer.Y + buffer.YBase].IsWrapped = false; + } + + buffer.Y--; + buffer.X = right; + // TODO: find actual last cell based on width used + } else if (buffer.Y == buffer.ScrollTop) { + buffer.X = right; + buffer.Y = buffer.ScrollBottom; + } else if (buffer.Y > 0) { + buffer.X = right; + buffer.Y--; + } + } + } else { + if (buffer.X < left && buffer.X > 0) { + // This compensates for the scenario where backspace is supposed to move one step + // backwards if the "x" position is behind the left margin. + // Test BS_MovesLeftWhenLeftOfLeftMargin + buffer.X--; + } else if (buffer.X > left) { + // If we have not reached the limit, we can go back, otherwise stop at the margin + // Test BS_StopsAtLeftMargin + buffer.X--; + + } + } + } + + /// + /// Deletes charstoDelete chars from the cursor position to the right margin + /// + public void DeleteChars (int charsToDelete) + { + var buffer = Buffer; + + if (MarginMode) { + if (buffer.X + charsToDelete > buffer.MarginRight) { + charsToDelete = buffer.MarginRight - buffer.X; + } + } + + buffer.Lines [buffer.Y + buffer.YBase].DeleteCells (buffer.X, charsToDelete, MarginMode ? buffer.MarginRight : buffer.Cols - 1, new CharData (EraseAttr ())); + + UpdateRange (buffer.Y); + } + + /// + /// Deletes lines + /// + public void DeleteLines (int rowsToDelete) + { + RestrictCursor (); + var buffer = Buffer; + var row = buffer.Y + buffer.YBase; + + int j; + j = buffer.Rows - 1 - buffer.ScrollBottom; + j = buffer.Rows - 1 + buffer.YBase - j; + + var eraseAttr = EraseAttr (); + + if (MarginMode) { + if (buffer.X >= buffer.MarginLeft && buffer.X <= buffer.MarginRight) { + var columnCount = buffer.MarginRight - buffer.MarginLeft + 1; + var rowCount = buffer.ScrollBottom - buffer.ScrollTop; + while (rowsToDelete-- > 0) { + for (int i = 0; i < rowCount; i++) { + var src = buffer.Lines [row + i + 1]; + var dst = buffer.Lines [row + i]; + + if (src != null) { + dst.CopyFrom (src, buffer.MarginLeft, buffer.MarginLeft, columnCount); + } + } + + var last = buffer.Lines [row + rowCount]; + last?.Fill (new CharData (eraseAttr), atCol: buffer.MarginLeft, len: columnCount); + } + } + } else { + if (buffer.Y >= buffer.ScrollTop && buffer.Y <= buffer.ScrollBottom) { + while (rowsToDelete-- > 0) { + buffer.Lines.Splice (row, 1); + buffer.Lines.Splice (j, 0, buffer.GetBlankLine (eraseAttr)); + } + } + } + + UpdateRange (buffer.Y); + UpdateRange (buffer.ScrollBottom); + } + + /// + /// Inserts columns + /// + public void InsertColumn (int columns) + { + var buffer = Buffer; + + for (int row = buffer.ScrollTop; row < buffer.ScrollBottom; row++) { + var line = buffer.Lines [row + buffer.YBase]; + // TODO:is this the right filldata? + line.InsertCells (buffer.X, columns, MarginMode ? buffer.MarginRight : buffer.Cols - 1, CharData.WhiteSpace); + line.IsWrapped = false; + } + + UpdateRange (buffer.ScrollTop); + UpdateRange (buffer.ScrollBottom); + } + + /// + /// Deletes columns + /// + public void DeleteColumn (int columns) + { + var buffer = Buffer; + + if (buffer.Y > buffer.ScrollBottom || buffer.Y < buffer.ScrollTop) + return; + + for (int row = buffer.ScrollTop; row < buffer.ScrollBottom; row++) { + var line = buffer.Lines [row + buffer.YBase]; + line.DeleteCells (buffer.X, columns, MarginMode ? buffer.MarginRight : buffer.Cols - 1, CharData.Null); + line.IsWrapped = false; + } + + UpdateRange (buffer.ScrollTop); + UpdateRange (buffer.ScrollBottom); + } + + + + #endregion + + /// + /// Sets the scroll region + /// + public void SetScrollRegion (int top, int bottom) + { + var buffer = Buffer; + + if (bottom == 0) + bottom = buffer.Rows; + bottom = Math.Min (bottom, buffer.Rows); + + // normalize (make zero based) + bottom--; + + // only set the scroll region if top < bottom + if (top < bottom) { + buffer.ScrollBottom = bottom; + buffer.ScrollTop = top; + } + + SetCursor (0, 0); + } + + + /// + /// Performs a soft reset + /// + public void SoftReset () + { + var buffer = Buffer; + + CursorHidden = false; + InsertMode = false; + OriginMode = false; + + Wraparound = true; // defaults: xterm - true, vt100 - false + ReverseWraparound = false; + ApplicationKeypad = false; + SyncScrollArea (); + ApplicationCursor = false; + CurAttr = CharData.DefaultAttr; + + Charset = null; + SetgLevel (0); + + savedOriginMode = false; + savedMarginMode = false; + savedWraparound = false; + savedReverseWraparound = false; + + buffer.ScrollTop = 0; + buffer.ScrollBottom = buffer.Rows - 1; + buffer.SavedAttr = CharData.DefaultAttr; + buffer.SavedY = 0; + buffer.SavedX = 0; + buffer.SetMargins (0, buffer.Cols - 1); + //conformance = .vt500 + } + + + /// + /// Reports a message to the system log + /// + void Report (string prefix, string text, object [] args) + { + Console.WriteLine ($"{prefix}: {text}"); + for (int i = 0; i < args.Length; i++) + Console.WriteLine (" {0}: {1}", i, args [i]); + } + + /// + /// Sets up the terminals initial state + /// + void Setup () + { + cursorHidden = false; + + // modes + applicationKeypad = false; + applicationCursor = false; + OriginMode = false; + MarginMode = false; + InsertMode = false; + Wraparound = true; + bracketedPasteMode = false; + + // charset + charset = null; + gcharset = 0; + gLevel = 0; + + CurAttr = CharData.DefaultAttr; + + MouseMode = MouseMode.Off; + MouseProtocol = MouseProtocolEncoding.X10; + + Allow80To132 = false; + // TODO REST + } + } +} diff --git a/src/XtermSharp/TerminalOptions.cs b/src/XtermSharp/TerminalOptions.cs new file mode 100644 index 00000000..dbe08a8a --- /dev/null +++ b/src/XtermSharp/TerminalOptions.cs @@ -0,0 +1,25 @@ +using System; +namespace XtermSharp { + public enum CursorStyle { + BlinkBlock, SteadyBlock, BlinkUnderline, SteadyUnderline, BlinkingBar, SteadyBar + } + + public class TerminalOptions { + public int Cols, Rows; + public bool ConvertEol = true, CursorBlink; + public string TermName; + public CursorStyle CursorStyle; + public bool ScreenReaderMode; + public int? Scrollback { get; set; } + public int? TabStopWidth { get; set; } + + public TerminalOptions () + { + Cols = 80; + Rows = 25; + TermName = "xterm"; + Scrollback = 1000; + TabStopWidth = 8; + } + } +} diff --git a/src/XtermSharp/Utils/CircularList.cs b/src/XtermSharp/Utils/CircularList.cs new file mode 100644 index 00000000..f3bacbc7 --- /dev/null +++ b/src/XtermSharp/Utils/CircularList.cs @@ -0,0 +1,226 @@ +using System; +namespace XtermSharp { + /// + /// Represents a circular list; a list with a maximum size that wraps around when push is called overriding values at the start of the list. + /// + public class CircularList { + int length; + T [] array; + int startIndex; + + /// + /// Initializes a new instance of the class with the specified number of elements. + /// + /// Max length. + public CircularList (int maxLength) + { + array = new T [maxLength]; + length = 0; + } + + // Gets the cyclic index for the specified regular index. The cyclic index can then be used on the + // backing array to get the element associated with the regular index. + int GetCyclicIndex (int index) + { + return (startIndex + index) % array.Length; + } + + /// + /// Gets or sets the maximum length of the circular list + /// + /// The length of the max. + public int MaxLength { + get => array.Length; + + set { + if (value <= 0) + throw new ArgumentException (nameof (value)); + + if (value == array.Length) + return; + + // Reconstruct array, starting at index 0. Only transfer values from the + // indexes 0 to length. + var newArray = new T [value]; + var top = Math.Min (value, array.Length); + for (int i = 0; i < top; i++) + newArray [i] = array [GetCyclicIndex (i)]; + startIndex = 0; + array = newArray; + } + } + + /// + /// The current length of the circular buffer + /// + /// The length. + public int Length { + get => length; + set { + if (value > length) { + for (int i = length; i < value; i++) + array [i] = default (T); + } + length = value; + } + } + + /// + /// Invokes the specificied callback for each items of the circular list, the first parameter is the value, the second is the ith-index. + /// + /// Callback. + public void ForEach (Action callback) + { + var top = length; + for (int i = 0; i < top; i++) + callback (this [i], i); + } + + /// + /// Gets or sets the at the specified index. + /// + /// Index. + public T this [int index] { + get => array [GetCyclicIndex (index)]; + set => array [GetCyclicIndex (index)] = value; + } + + /// + /// Event raised when an item is removed from the circular array, the parameter is the number of items removed. + /// + public Action Trimmed; + + /// + /// Pushes a new value onto the list, wrapping around to the start of the array, overriding index 0 if the maximum length is reached + /// + /// The push. + /// Value to push. + public void Push (T value) + { + array [GetCyclicIndex (length)] = value; + if (length == array.Length) { + startIndex++; + if (startIndex == array.Length) + startIndex = 0; + + Trimmed?.Invoke (1); + } else { + length++; + } + } + + public T Recycle () + { + if (Length != MaxLength) { + throw new Exception ("Can only recycle when the buffer is full"); + } + startIndex = ++startIndex % MaxLength; + + return array [GetCyclicIndex (Length - 1)]; + } + + /// + /// Removes and returns the last value on the list. + /// + /// The popped value. + public T Pop () + { + return array [GetCyclicIndex (length-- - 1)]; + } + + /// + /// Deletes and/or inserts items at a particular index (in that order). + /// + /// The splice. + /// The index to delete and/or insert. + /// The number of elements to delete. + /// The items to insert. + public void Splice (int start, int deleteCount, params T [] items) + { + // delete items + if (deleteCount > 0) { + for (int i = start; i < length - deleteCount; i++) + array [GetCyclicIndex (i)] = array [GetCyclicIndex (i + deleteCount)]; + length -= deleteCount; + } + if (items.Length != 0) { + // add items + for (int i = length - 1; i >= start; i--) + array [GetCyclicIndex (i + items.Length)] = array [GetCyclicIndex (i)]; + for (int i = 0; i < items.Length; i++) + array [GetCyclicIndex (start + i)] = items [i]; + } + + // Adjust length as needed + if (length + items.Length > array.Length) { + int countToTrim = length + items.Length - array.Length; + startIndex += countToTrim; + length = array.Length; + Trimmed?.Invoke (countToTrim); + } else { + length += items.Length; + } + } + + /// + /// Trims a number of items from the start of the list. + /// + /// The number of items to remove.. + public void TrimStart (int count) + { + if (count > length) + count = length; + + // TODO: perhaps bug in original code, this does not clamp the value of startIndex + startIndex += count; + length -= count; + Trimmed?.Invoke (count); + } + + /// + /// Shifts the elements. + /// + /// Start. + /// Count. + /// Offset. + public void ShiftElements (int start, int count, int offset) + { + if (count < 0) + return; + if (start < 0 || start >= length) + throw new ArgumentException ("Start argument is out of range"); + if (start + offset < 0) + throw new ArgumentException ("Can not shift elements in list beyond index 0"); + if (offset > 0) { + for (var i = count - 1; i >= 0; i--) { + this [start + i + offset] = this [start + i]; + } + var expandListBy = (start + count + offset) - length; + if (expandListBy > 0) { + length += expandListBy; + while (length > array.Length) { + length--; + startIndex++; + Trimmed.Invoke (1); + } + } + } else { + for (var i = 0; i < count; i++) { + this [start + i + offset] = this [start + i]; + } + } + } + + public bool IsFull => Length == MaxLength; + + public T[] ToArray() + { + var result = new T [Length]; + for (int i = 0; i < Length; i++) { + result [i] = array [GetCyclicIndex (i)]; + } + + return result; + } + } +} diff --git a/src/XtermSharp/Utils/RuneExt.cs b/src/XtermSharp/Utils/RuneExt.cs new file mode 100644 index 00000000..319e5819 --- /dev/null +++ b/src/XtermSharp/Utils/RuneExt.cs @@ -0,0 +1,94 @@ +using System; +namespace XtermSharp { + public class RuneExt { + public static int ExpectedSizeFromFirstByte (byte b) + { + var x = first [b]; + + // Invalid runes, just return 1 for byte, and let higher level pass to print + if (x == xx) + return -1; + if (x == a1) + return 1; + return x & 0xf; + } + + const byte xx = 0xF1; // invalid: size 1 + const byte a1 = 0xF0; // a1CII: size 1 + const byte s1 = 0x02; // accept 0, size 2 + const byte s2 = 0x13; // accept 1, size 3 + const byte s3 = 0x03; // accept 0, size 3 + const byte s4 = 0x23; // accept 2, size 3 + const byte s5 = 0x34; // accept 3, size 4 + const byte s6 = 0x04; // accept 0, size 4 + const byte s7 = 0x44; // accept 4, size 4 + + static byte [] first = new byte [256]{ + // 1 2 3 4 5 6 7 8 9 A B C D E F + a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, // 0x00-0x0F + a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1,a1, a1, a1, a1, a1, // 0x10-0x1F + a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, // 0x20-0x2F + a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, // 0x30-0x3F + a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, // 0x40-0x4F + a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, // 0x50-0x5F + a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, // 0x60-0x6F + a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, a1, // 0x70-0x7F + + // 1 2 3 4 5 6 7 8 9 A B C D E F + xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0x80-0x8F + xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0x90-0x9F + xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0xA0-0xAF + xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0xB0-0xBF + xx, xx, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, // 0xC0-0xCF + s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, // 0xD0-0xDF + s2, s3, s3, s3, s3, s3, s3, s3, s3, s3, s3, s3, s3, s4, s3, s3, // 0xE0-0xEF + s5, s6, s6, s6, s7, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0xF0-0xFF + }; + + // The default lowest and highest continuation byte. + const byte locb = 0x80; // 1000 0000 + const byte hicb = 0xBF; // 1011 1111 + + struct AcceptRange { + public byte Lo, Hi; + public AcceptRange (byte lo, byte hi) + { + Lo = lo; + Hi = hi; + } + } + + static AcceptRange [] AcceptRanges = new AcceptRange [] { + new AcceptRange (locb, hicb), + new AcceptRange (0xa0, hicb), + new AcceptRange (locb, 0x9f), + new AcceptRange (0x90, hicb), + new AcceptRange (locb, 0x8f), + }; + + public unsafe static bool FullRune (byte * p, int n) + { + if (p == null) + throw new ArgumentNullException (nameof (p)); + + if (n == 0) + return false; + var x = first [p [0]]; + if (n >= (x & 7)) { + // ascii, invalid or valid + return true; + } + // must be short or invalid + if (n > 1) { + var accept = AcceptRanges [x >> 4]; + var c = p [1]; + if (c < accept.Lo || accept.Hi < c) + return true; + else if (n > 2 && (p [2] < locb || hicb < p [2])) + return true; + } + return false; + } + + } +} diff --git a/src/XtermSharp/WindowManipulationCommand.cs b/src/XtermSharp/WindowManipulationCommand.cs new file mode 100644 index 00000000..42231d93 --- /dev/null +++ b/src/XtermSharp/WindowManipulationCommand.cs @@ -0,0 +1,89 @@ +using System; +namespace XtermSharp { + /// + /// Commands send to the `windowCommand` delegate for the front-end to implement capabilities + /// on behalf of the client.The expected return strings in some of these enumeration values is documented + /// below. Returns are only expected for the enum values that start with the prefix `report` + /// + public enum WindowManipulationCommand { + /// + /// Raised when the backend should deiconify a window, no return expected + /// + DeiconifyWindow, + + /// + /// Raised when the backend should iconify a window, no return expected + /// + IconifyWindow, + + /// + /// Raised when the client would like the window to be moved to the x,y position int he screen, no return expected + /// + /// (x: Int, y: Int) + MoveWindowTo, + + /// + /// Raised when the client would like the window to be resized to the specified widht and heigh in pixels, no return expected + /// + /// (width: Int, height: Int) + ResizeWindowTo, + + /// + /// Raised to bring the terminal to the front + /// + BringToFront, + + /// + /// Send the terminal to the back if possible + /// + SendToBack, + + /// + /// Trigger a terminal refresh + /// + RefreshWindow, + + /// + /// Request that the size of the terminal be changed to the specified cols and rows + /// + /// (cols: Int, rows: Int) + ResizeTo, + + RestoreMaximizedWindow, + + /// + /// Attempt to maximize the window + /// + MaximizeWindow, + + /// + /// Attempt to maximize the window vertically + /// + MaximizeWindowVertically, + + /// + /// Attempt to maximize the window horizontally + /// + MaximizeWindowHorizontally, + + UndoFullScreen, + SwitchToFullScreen, + ToggleFullScreen, + ReportTerminalState, + ReportTerminalPosition, + ReportTextAreaPosition, + ReporttextAreaPixelDimension, + ReportSizeOfScreenInPixels, + ReportCellSizeInPixels, + ReportTextAreaCharacters, + ReportScreenSizeCharacters, + ReportIconLabel, + ReportWindowTitle, + + /// + /// Request that the size of the terminal be changed to the specified lines + /// + /// (lines: Int) + ResizeToLines, + } +} diff --git a/src/XtermSharp/XtermSharp.csproj b/src/XtermSharp/XtermSharp.csproj new file mode 100644 index 00000000..85fbc5a8 --- /dev/null +++ b/src/XtermSharp/XtermSharp.csproj @@ -0,0 +1,27 @@ + + + + netstandard2.1 + preview + db2a43a5-c230-49a5-b71b-59eae23db090 + + + + true + + + true + + + + + + + + + + + + + +

lrTe| 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 $ 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