-
Notifications
You must be signed in to change notification settings - Fork 703
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes #3692++ - Rearchitects drivers #3837
Conversation
Hope you're ok with me updating the title & first post... |
… for collection navigator
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking great! Just a few asks...
Terminal.Gui/ConsoleDrivers/AnsiResponseParser/AnsiResponseParser.cs
Outdated
Show resolved
Hide resolved
Merge conflict fixed |
I want to merge this, but we keep getting unit test failures (see #3930). likely not due to this PR, but I'm not going to merge until this passes at least once. I just restarted the action.... |
Creates new drivers that are simpler versions of existing WindowsDriver and NetDriver. Also introduces a shared architecture such that only subcomponents vary between driver implementations, as discussed in #3821 .
After a period of shared execution with both sets of drivers available we will fix any bugs and then retire the old drivers.
Curses driver is not tackled, I am hopeful it can be retired completely now that net input is so strong and well implemented in core dotnet framework.
Fixes
ConsoleDriver
to minimize duplicated code in all drivers #2319EscSeqUtils
#2803ConsoleDriver
s to support ANSI sequences natively (e.g. Virtual Terminal Sequences on Windows) #2610Button1Clicked
events onNetdriver
orCursesDriver
#3374Metrics
You can now see metrics on ant Terminal.Gui program by using its exe name and a metrics tool e.g.
Implementation uses System.Diagnostics.Metrics making it integrate easily with tools such as OpenTelemetry
Logging
You can enable logging of internals of Terminal.Gui by setting
Logging.Logger
to anyMicrosoft.Extensions.Logging
compatible logging framework (nlog, serilog etc).Naturally you must not use a console logger
For example with Serilog to a file:
Class Diagram
Progress
MouseInterpreter
)Proposed Changes/Todos
Splits drivers up into logical components, simplifies and centralizes shared code patterns.
Pull Request checklist:
CTRL-K-D
to automatically reformat your files before committing.dotnet test
before commit///
style comments)