Skip to content
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

Adds ANSIDriver - Pure "Console Virtual Terminal Sequences" driver #2940

Draft
wants to merge 1,921 commits into
base: v2_develop
Choose a base branch
from

Conversation

tig
Copy link
Collaborator

@tig tig commented Oct 29, 2023

Fixes

Todo

Pull Request checklist:

  • I've named my PR in the form of "Fixes #issue. Terse description."
  • My code follows the style guidelines of Terminal.Gui - if you use Visual Studio, hit CTRL-K-D to automatically reformat your files before committing.
  • My code follows the Terminal.Gui library design guidelines
  • I ran dotnet test before commit
  • I have made corresponding changes to the API documentation (using /// style comments)
  • My changes generate no new warnings
  • I have checked my code and corrected any poor grammar or misspellings
  • I conducted basic QA to assure all features are working

@tig tig changed the title Ports WindowsDriver to use Console Virtual Terminal Sequences Adds ANSIDriver to replace WindowsDriver (use Console Virtual Terminal Sequences) Oct 30, 2023
@BDisp
Copy link
Collaborator

BDisp commented Nov 3, 2023

@tig sometimes WindowsDriver on Windows Terminal doesn't refresh after resizing.

image

@BDisp
Copy link
Collaborator

BDisp commented Nov 3, 2023

@tig I understand why you are adding ANSIDriver which is a very good idea. But I think the reason for that decision isn't the more correct. In my opinion it should be a cross platform to improve the NetDriver instead of WindowsDriver. You know that NetDriver read and process Ansi escape sequences very slower. Also writing is slower as well. But on Linux it's much faster. So, ANSIDriver should use the Win32 API as it now working, as well the input keys and mouse to work on Windows and will use Ansi escape sequences to write to the console. On Linux ANSIDriver will use the NetEvents and System.Console. Thus ANSIDriver would be a cross platform that will run much more faster on Windows and Linux. Right now it's only a duplicate of WindowsDriver that is using Ansi escape sequences to write to console to support true color.

@BDisp
Copy link
Collaborator

BDisp commented Nov 3, 2023

@tig I submitted the PR tig#16 to your branch. When you have time please tell me what you think. Thanks.

@BDisp
Copy link
Collaborator

BDisp commented Nov 3, 2023

For the profile settings work properly this rule must be follow:

  • To debug WT the WT settings must be "Let Windows decide or Windows Terminal".
  • To debug CH the WT settings must be "Host Windows Console".

dodexahedron and others added 22 commits July 10, 2024 14:22
…Ranges

Fixes gui-cs#3597: Convert package reference versions to ranges
Bumps [gittools/actions](https://github.com/gittools/actions) from 0 to 1.
- [Release notes](https://github.com/gittools/actions/releases)
- [Commits](https://github.com/gittools/actions/commits/v1)

---
updated-dependencies:
- dependency-name: gittools/actions
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/configure-pages](https://github.com/actions/configure-pages) from 4 to 5.
- [Release notes](https://github.com/actions/configure-pages/releases)
- [Commits](actions/configure-pages@v4...v5)

---
updated-dependencies:
- dependency-name: actions/configure-pages
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [peter-evans/repository-dispatch](https://github.com/peter-evans/repository-dispatch) from 2 to 3.
- [Release notes](https://github.com/peter-evans/repository-dispatch/releases)
- [Commits](peter-evans/repository-dispatch@v2...v3)

---
updated-dependencies:
- dependency-name: peter-evans/repository-dispatch
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…n-macos-fix

Fixes gui-cs#3592. DateField unit tests fail on macos.latest.
…peter-evans/repository-dispatch-3

Bump peter-evans/repository-dispatch from 2 to 3
tig and others added 28 commits August 3, 2024 18:09
…:tig/Terminal.Gui into v2_2491-Refactor-TopLevel-Application-And-Focus
Dialog & MB now Thick linestyle by default.
…tons

Fixes gui-cs#3523. `MessageBox` buttons centered by default.
…lication-And-Focus

Preps for and partially Fixes gui-cs#2491 - Refactors `Toplevel` and `Application` Navigation
Feature complete
…3648)

* State->CheckState.
Toggled->CheckStateChanging.

* Code cleanup & doc fix

* Updated migration guide

* Updated migration guide
* Add a native AOT project.

* Fixes Text.Json to work with native AOT.

* Fix silent errors on unit tests when testing the Red color which has a length of 3.

* Allowing test custom configuration without the config.json file match the unit tests configurations.

* Fix unit test if tested alone.

* Add native project into solution.

* Fix merge errors.

* Setting ConfigurationManager.ThrowOnJsonErrors as true to throw any serialization issue when published file runs.

* Remove unnecessary using's.

* Added unit test to ensure all serialization is properly configured.

* Fix warnings.

* Remove ThrowOnJsonErrors.

* Fix warnings.

---------

Co-authored-by: Tig <tig@users.noreply.github.com>
…ui-cs#3656)

* Fixed rendering issue

* Removed dead code

* Removed dead code
@tig tig changed the title Adds ANSIDriver to replace WindowsDriver (use Console Virtual Terminal Sequences) Adds ANSIDriver - Pure "Console Virtual Terminal Sequences" driver Aug 13, 2024
@tig tig mentioned this pull request Sep 29, 2024
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants