Version 3.4.0 Feature Release
This release has quite a number of bug fixes, but it also introduces some substantial new capabilities. Mostly the new support for advanced key reporting, along with backing support in the mouse demo, and enhanced configurability and overrides both for the application and for the user (environment variables).
This also replaces the old WASM terminal with a new version based on the libghostty implementation. This should be much faster, and nicer to work with, with a larger set of full features such as advanced key reporting, better support for resizing, etc.
- fix: possible panic in getConsoleInput if no event returned by @AntoineGS in https://github.com/gdamore/tcell/pull/1068
- Sanitize titles and notifications (fixes #1066) by @gdamore in https://github.com/gdamore/tcell/pull/1069
- feat: Optionally sanitize content before putting to the terminal (fix… by @gdamore in https://github.com/gdamore/tcell/pull/1071
- feat: Add reporting of keyboard protocol (fixes #967) by @gdamore in https://github.com/gdamore/tcell/pull/1073
- C1 handling improvements by @gdamore in https://github.com/gdamore/tcell/pull/1074
- feat(keys): Add support for advanced key reporting by @gdamore in https://github.com/gdamore/tcell/pull/1075
- feat(wasm): Introduce ghostty-wasm as backing WASM terminal (fixes #7… by @gdamore in https://github.com/gdamore/tcell/pull/1076
- fix: close OSC8 hyperlinks (fixes #1078) by @gdamore in https://github.com/gdamore/tcell/pull/1080
- feat: KeyBacktab updates for advanced mode (fixes #1018) by @gdamore in https://github.com/gdamore/tcell/pull/1081
- feat: support pixel-precision mouse reporting (CSI ?1016h) by @ImGajeed76 in https://github.com/gdamore/tcell/pull/1077
- fix(input): accept Unicode modifyOtherKeys codepoints by @ayn2op in https://github.com/gdamore/tcell/pull/1083
- Fix reporting of key releases by @tihirvon in https://github.com/gdamore/tcell/pull/1088
- chore(deps): bump golang.org/x/term from 0.42.0 to 0.43.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1085
- chore(deps): bump golang.org/x/text from 0.36.0 to 0.37.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1087
- MInor bug fixes by @gdamore in https://github.com/gdamore/tcell/pull/1097
- Preserve orphaned UTF-16 surrogates on Windows by @gdamore in https://github.com/gdamore/tcell/pull/1104
- vt: prune tab stops after resize by @gdamore in https://github.com/gdamore/tcell/pull/1105
- vt: ignore malformed SGR parameters by @gdamore in https://github.com/gdamore/tcell/pull/1106
- Limit inbound control strings by @gdamore in https://github.com/gdamore/tcell/pull/1107
- fix: cells should be marked dirty even if they have no content (fixes… by @gdamore in https://github.com/gdamore/tcell/pull/1108
- fix: lock SetSize screen mutations by @gdamore in https://github.com/gdamore/tcell/pull/1109
- tscreen: prevent terminal mutation after Fini by @gdamore in https://github.com/gdamore/tcell/pull/1110
- Avoid extra keyboard protocols on Windows by @gdamore in https://github.com/gdamore/tcell/pull/1111
- [codex] Fix OSC 8 hyperlink state transitions by @gdamore in https://github.com/gdamore/tcell/pull/1112
- @ImGajeed76 made their first contribution in https://github.com/gdamore/tcell/pull/1077
Full Changelog: https://github.com/gdamore/tcell/compare/v3.3.0...v3.4.0
Version 2.13.9 Bug Fix Release
- fix: fix simscreen double chan closure on disposal by @pancsta in https://github.com/gdamore/tcell/pull/1035
- fix(input): handle ESC during CSI and SS3 parse states per ECMA-48 by @ModeEngage in https://github.com/gdamore/tcell/pull/1054
- fix: backport OSC 8 sanitizer to v2
Full Changelog: https://github.com/gdamore/tcell/compare/v2.13.8...v2.13.9
V3.3.0 Feature Release
- chore(deps): bump golang.org/x/term from 0.40.0 to 0.41.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1040
- ci: only run the CI on main and on PRs by @gdamore in https://github.com/gdamore/tcell/pull/1049
- fix(mouse): work around Ghostty false motion press bug by @noborus in https://github.com/gdamore/tcell/pull/1051
- Fix expected bell count in beep_test.go by @wangzhione in https://github.com/gdamore/tcell/pull/1052
- style: unify spelling of OSC in code comments by @CatsDeservePets in https://github.com/gdamore/tcell/pull/1050
- fix(input): handle ESC during CSI and SS3 parse states per ECMA-48 by @ModeEngage in https://github.com/gdamore/tcell/pull/1053
- chore(deps): bump golang.org/x/sys from 0.42.0 to 0.43.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1056
- feat(events): add Unwrap() to EventError by @Tubbles in https://github.com/gdamore/tcell/pull/1058
- chore(deps): bump golang.org/x/text from 0.35.0 to 0.36.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1055
- chore(deps): bump golang.org/x/term from 0.41.0 to 0.42.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1057
- Faster rendering with better grapheme segmentation by @gdamore in https://github.com/gdamore/tcell/pull/1060
- Fix for broken terminal negotiation in Windows by @gdamore in https://github.com/gdamore/tcell/pull/1063
- Sanitize OSC 8 links (fixes #1061) by @gdamore in https://github.com/gdamore/tcell/pull/1064
- @wangzhione made their first contribution in https://github.com/gdamore/tcell/pull/1052
- @CatsDeservePets made their first contribution in https://github.com/gdamore/tcell/pull/1050
- @Tubbles made their first contribution in https://github.com/gdamore/tcell/pull/1058
Full Changelog: https://github.com/gdamore/tcell/compare/v3.2.0...v3.3.0
Version 2.1.3.8 Bug Fix Release
This fixes two bugs, both involving wide characters (including emoji) and terminal bugs.
Full Changelog: https://github.com/gdamore/tcell/compare/v2.13.7...v2.13.8
Version 3.1.2 Bug Fix Release
The main reason for releasing this is to get out two fixes that were offered up by others.
- Infinite loop bug in pasting
- Wide characters disappearing at right margin
- chore: Move unicode demo into demos by @gdamore in https://github.com/gdamore/tcell/pull/993
- feat(emulator): introduce new buffering API by @gdamore in https://github.com/gdamore/tcell/pull/994
- chore: move color demo to demos, update copyrights for demos by @gdamore in https://github.com/gdamore/tcell/pull/995
- feat(emulator): Implement cursor shapes (DECSCUSR) by @gdamore in https://github.com/gdamore/tcell/pull/999
- chore(deps): bump golang.org/x/term from 0.38.0 to 0.39.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/996
- chore(deps): bump golang.org/x/text from 0.32.0 to 0.33.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/997
- Add clipboard emulator and update demo for it. by @gdamore in https://github.com/gdamore/tcell/pull/1000
- More osc52 related improvements, new HasClipboard API by @gdamore in https://github.com/gdamore/tcell/pull/1001
- chore: move cursors demo to demos and add test for it by @gdamore in https://github.com/gdamore/tcell/pull/1002
- tests: Add some more test coverage for the clipboard demo. by @gdamore in https://github.com/gdamore/tcell/pull/1003
- feat(emulator): Implement OSC 8 by @gdamore in https://github.com/gdamore/tcell/pull/1004
- tests: More test cases for input parser edge cases by @gdamore in https://github.com/gdamore/tcell/pull/1005
- chore: drop the hyperlink demo - styles demo already covers this by @gdamore in https://github.com/gdamore/tcell/pull/1006
- tests: add test for charsets - also drop long extinct nacl build tag by @gdamore in https://github.com/gdamore/tcell/pull/1007
- fix(tscreen): fix infinite loop in paste by @wedaly in https://github.com/gdamore/tcell/pull/1013
- emulator support for keyboard layouts by @gdamore in https://github.com/gdamore/tcell/pull/1012
- ci: ignore tests for coverage purposes by @gdamore in https://github.com/gdamore/tcell/pull/1014
- feat(emulator): Implement keypad handling correctly by @gdamore in https://github.com/gdamore/tcell/pull/1015
Full Changelog: https://github.com/gdamore/tcell/compare/v3.1.1...v3.1.2
Version 2.13.7 Bug Fix Release
This fixes two bugs:
- wide not overwriting adjacent character (#976)
- paste on Windows did not handle certain runes (#984)
- fix(windows): Windows input (paste input) may arrive as UTF-16 still … by @gdamore in https://github.com/gdamore/tcell/pull/987
Full Changelog: https://github.com/gdamore/tcell/compare/v2.13.6...v2.13.7
Version 3.1.1 Bug Fix Release
This principally fixes two bugs:
- Certain runes would cause problems if pasted on Windows (could hang, wouldn't pass) due to Windows surrogate pair handling (#986)
- Certain terminal emulators would give unfortunate results with certain wide characters (#976)
A bunch more progress made on the emulator subsystem as well, but its still not quite ready for public consumption, although it is used in the mock for testing tcell.
- fix(emulator): RI does reset autowrap state by @gdamore in https://github.com/gdamore/tcell/pull/983
- feat(emulator): Implement Delete Line by @gdamore in https://github.com/gdamore/tcell/pull/985
- fix(windows): Windows input (paste input) may arrive as UTF-16 still … by @gdamore in https://github.com/gdamore/tcell/pull/986
- Emulator: Insert line & and Delete Character implementations by @gdamore in https://github.com/gdamore/tcell/pull/989
- feat(emulator): Implement Insert Characacter (ICH) by @gdamore in https://github.com/gdamore/tcell/pull/990
- Refactor emulator backend API to just pass Cell directly by @gdamore in https://github.com/gdamore/tcell/pull/991
- refactor(emulator): drop SetStyle & GetStyle (unused) by @gdamore in https://github.com/gdamore/tcell/pull/992
- fix: fix for wide not overwriting adjacent character (fixes #976) by @gdamore in https://github.com/gdamore/tcell/pull/988
Full Changelog: https://github.com/gdamore/tcell/compare/v3.1.0...v3.1.1
Version 2.13.5 Bug Fix Release
This release addresses a problem with keypad keys in certain terminal emulators.
Full Changelog: https://github.com/gdamore/tcell/compare/v2.13.5...v2.13.6
Version 3.1.0 Feature Release
The main new feature here is improved support for mouse chords and additional mouse button reporting. It is now possible for multiple mouse buttons to be pressed together, and reported together.
A great deal of additional work was done on the emulator subsystem and in the mocks, yielding over 80% test coverage, with a number of associated bug fixes as a result.
- fix(emulator): implement proper deferred (pending) auto wrap by @gdamore in https://github.com/gdamore/tcell/pull/959
- feat(emulator): Implement the rest of soft reset by @gdamore in https://github.com/gdamore/tcell/pull/960
- refactor(emulator): Refactoring of the emulator in anticipation of gr… by @gdamore in https://github.com/gdamore/tcell/pull/961
- refactor(emulator): Fold mock terminal into vt package. by @gdamore in https://github.com/gdamore/tcell/pull/962
- test(emulator): Add remaining erase test cases. by @gdamore in https://github.com/gdamore/tcell/pull/963
- Refactor style handling in emulator by @gdamore in https://github.com/gdamore/tcell/pull/964
- tests: Add some extra test validations for TTYs by @gdamore in https://github.com/gdamore/tcell/pull/965
- feat(emulator): Add support for full 256 and 24-bit color, and also u… by @gdamore in https://github.com/gdamore/tcell/pull/966
- chore: update the boxes demo to run in CI/CD by @gdamore in https://github.com/gdamore/tcell/pull/968
- Mouse support improvements and tests by @gdamore in https://github.com/gdamore/tcell/pull/969
- chore: rename KbdEvent to KeyEvent by @gdamore in https://github.com/gdamore/tcell/pull/970
- fix: Fix for incorrect strings sent for non-rune keys in Kitty and Wi… by @gdamore in https://github.com/gdamore/tcell/pull/971
- Fix edge cases for input entry by @gdamore in https://github.com/gdamore/tcell/pull/972
- feat(emulator): Add focus reporting by @gdamore in https://github.com/gdamore/tcell/pull/973
- feat(emulator): Add vertical scrolling (both directions) by @gdamore in https://github.com/gdamore/tcell/pull/974
- feat(emulator): Implement horizontal scroll regions. by @gdamore in https://github.com/gdamore/tcell/pull/975
- chore: Add definitions for more private modes, and ANSI modes by @gdamore in https://github.com/gdamore/tcell/pull/977
- Fixes for newline/LF handling, including ANSI mode 20 support by @gdamore in https://github.com/gdamore/tcell/pull/978
- tests(emulator): Add CUU, CNL, and CPL tests, and move emulator speci… by @gdamore in https://github.com/gdamore/tcell/pull/979
- feat(emulator): This is the start of support for left and right margins. by @gdamore in https://github.com/gdamore/tcell/pull/980
- fix: Convert text keypad keys from their CSI-u codes to their text va… by @gdamore in https://github.com/gdamore/tcell/pull/982
Full Changelog: https://github.com/gdamore/tcell/compare/v3.0.6...v3.1.0
Version 3.0.6 Bug Fix Release
This address some minor bug fixes, and it reduces some of the writing we do to the terminal when changing attributes and using color.
Most of the rest of the commits in this release are related to improving test coverage, and enhancing the mock terminal backend. Note that the very useless SimScreen has been removed, as the MockBackend is far more functional.
Also some demos have moved from _demos to demos -- and they are now verified in the CI/CD. We will be doing this with the rest of the demos over time.
- refactor: Work in progress on new emulator backend by @gdamore in https://github.com/gdamore/tcell/pull/925
- test: cover the rest of the color API by @gdamore in https://github.com/gdamore/tcell/pull/927
- fix: Fix edge for color API (invalid numeric color), add tests for ed… by @gdamore in https://github.com/gdamore/tcell/pull/928
- Continued progress on emulation and tests thereof by @gdamore in https://github.com/gdamore/tcell/pull/929
- test: Add test for cursor mode (25) by @gdamore in https://github.com/gdamore/tcell/pull/930
- test: Add test for automargin by @gdamore in https://github.com/gdamore/tcell/pull/931
- Fix wide encoding, and add unicode tests for emulator by @gdamore in https://github.com/gdamore/tcell/pull/932
- chore: move Tty to sub-subpackage (including WindowSize) by @gdamore in https://github.com/gdamore/tcell/pull/933
- fix(emulator): Discriminate between deleted cells and cells with a sp… by @gdamore in https://github.com/gdamore/tcell/pull/934
- feat(emulator): Add more SGR attributes, basic ANSI color, including … by @gdamore in https://github.com/gdamore/tcell/pull/935
- feat(emulator): Start of keyboard processing (very preliminary) by @gdamore in https://github.com/gdamore/tcell/pull/936
- Use hello world with mock to increase coverage (and fix bugs it uncovered) by @gdamore in https://github.com/gdamore/tcell/pull/937
- fix: Fix case of NO_COLOR being set but empty; added trivial screen i… by @gdamore in https://github.com/gdamore/tcell/pull/938
- refactor: Refactor the beep demo into a testable package by @gdamore in https://github.com/gdamore/tcell/pull/939
- feat(emulator): Add Titler, and tests for it. by @gdamore in https://github.com/gdamore/tcell/pull/940
- tests: support bits for webasm to support common tests, update style … by @gdamore in https://github.com/gdamore/tcell/pull/942
- feat: Complete legacy keyboard protocol for extra keys by @gdamore in https://github.com/gdamore/tcell/pull/943
- test: add missing linux and extra modifier tests by @gdamore in https://github.com/gdamore/tcell/pull/944
- fix(emulator): fix extended attributes response by @gdamore in https://github.com/gdamore/tcell/pull/945
- Improve legacy mapping in emulator by @gdamore in https://github.com/gdamore/tcell/pull/946
- docs: Add macOS status, and use custom logo lab for Windows 11 logo by @gdamore in https://github.com/gdamore/tcell/pull/947
- Various refactoring improvements, eliminate redundant SGR 39 / 49. by @gdamore in https://github.com/gdamore/tcell/pull/948
- chore: Minor improvements, fix possible bug in stopQ handling (windows) by @gdamore in https://github.com/gdamore/tcell/pull/949
- docs: improve the badges by @gdamore in https://github.com/gdamore/tcell/pull/950
- Add emulation resize support by @gdamore in https://github.com/gdamore/tcell/pull/951
- chore: color test should use mock instead of simscreen by @gdamore in https://github.com/gdamore/tcell/pull/952
- test: add basic mouse event test by @gdamore in https://github.com/gdamore/tcell/pull/953
- chore!: Drop the simulation screen and associated tests by @gdamore in https://github.com/gdamore/tcell/pull/954
- feat(emulator): Add tab stop support by @gdamore in https://github.com/gdamore/tcell/pull/955
- chore: move styles demo to demo and add test by @gdamore in https://github.com/gdamore/tcell/pull/956
- feat(emulator): Add VPR and VPA support by @gdamore in https://github.com/gdamore/tcell/pull/957
- feat(emulator): Add cursor application key mode by @gdamore in https://github.com/gdamore/tcell/pull/958
Full Changelog: https://github.com/gdamore/tcell/compare/v3.0.5...v3.0.6