Releases: crossterm-rs/crossterm
Releases · crossterm-rs/crossterm
0.14.1
0.14
- Replace the
input
module with brand newevent
module- Terminal Resize Events
- Advanced modifier (SHIFT | ALT | CTRL) support for both mouse and key events and
- futures Stream (feature 'event-stream')
- Poll/read API
- It's highly recommended to read the
Upgrade from 0.13 to 0.14
documentation
- Replace
docs/UPGRADE.md
with the Upgrade Paths
documentation - Add
MoveToColumn
,MoveToPreviousLine
,MoveToNextLine
commands - Merge
screen
module intoterminal
- Remove
screen::AlternateScreen
- Remove
screen::Rawscreen
- Move and rename
Rawscreen::into_raw_mode
andRawscreen::disable_raw_mode
toterminal::enable_raw_mode
andterminal::disable_raw_mode
- Move and rename
- Move
screen::EnterAlternateScreen
andscreen::LeaveAlternateScreen
toterminal::EnterAlternateScreen
andterminal::LeaveAlternateScreen
- Replace
utils::Output
command withstyle::Print
command
- Remove
- Fix enable/disable mouse capture commands on Windows
- Allow trailing comma
queue!
&execute!
macros
0.13.2
0.13.1
0.13
- Remove
Crossterm
type - Remove
TerminalCursor
,TerminalColor
,Terminal
- Remove
cursor()
,color()
,terminal()
- Remove re-exports at root, accessible via
module::types
(cursor::MoveTo
) input
module- Derive 'Copy' for 'KeyEvent'
- Add the
EnableMouseCapture
andEnableMouseCapture
commands
cursor
module- Introduce static function
crossterm::cursor::position
in place ofTerminalCursor::pos
- Rename
Goto
toMoveTo
- Rename
Up
toMoveLeft
- Rename
Right
toMoveRight
- Rename
Down
toMoveDown
- Rename
BlinkOn
toEnableBlinking
- Rename
BlinkOff
toDisableBlinking
- Rename
ResetPos
toResetPosition
- Rename
SavePos
toSavePosition
- Introduce static function
terminal
- Introduce static function
crossterm::terminal::size
in place ofTerminal::size
- Introduce static function
crossterm::terminal::exit
in place ofTerminal::exit
- Introduce static function
style module
- Rename
ObjectStyle
toContentStyle
. Now full names are used for methods - Rename
StyledObject
toStyledContent
and made members private - Rename
PrintStyledFont
toPrintStyledContent
- Rename
attr
method toattribute
. - Rename
Attribute::NoInverse
toNoReverse
- Update documentation
- Made
Colored
private, user should use commands instead - Rename
SetFg
->SetForegroundColor
- Rename
SetBg
->SetBackgroundColor
- Rename
SetAttr
->SetAttribute
- Rename
ContentStyle::fg_color
->ContentStyle::foreground_color
- Rename
ContentStyle::bg_color
->ContentStyle::background_color
- Rename
ContentStyle::attrs
->ContentStyle::attributes
- Rename
- Improve documentation
- Unix terminal size calculation with TPUT
Version 0.12.0
- Following crates are deprecated and no longer maintained
crossterm_cursor
crossterm_input
crossterm_screen
crossterm_style
crossterm_terminal
crossterm_utils
crossterm_cursor
0.4.0
- Internal refactoring (PR #2)
- Improved public documentation
sys
module is no longer public
- Fixed examples link (PR #6)
- Sync documentation style (PR #7)
- Removed all references to the crossterm book (PR #8)
- Replaced
RAW_MODE_ENABLED
withis_raw_mode_enabled
(PR #9) - Use
SyncReader
&InputEvent::CursorPosition
forpos_raw()
(PR #10)
crossterm_input
0.5.0
- Internal refactoring (PR #3)
- Removed unsafe
static mut
- Documentation update
- Remove all references to the crossterm book
- Removed unsafe
- Sync documentation style (PR #4)
- Sync
SyncReader::next()
Windows and UNIX behavior (PR #5) - Remove all references to the crossterm book (PR #6)
- Mouse coordinates synchronized with the cursor (PR #7)
- Upper/left reported as
(0, 0)
- Upper/left reported as
- Fixed bug that read sync didn't block (Windows) (PR #8)
- Refactored UNIX readers (PR #9)
- AsyncReader produces mouse events
- One reading thread per application, not per
AsyncReader
- Cursor position no longer consumed by another
AsyncReader
- Implemented sync reader for read_char (requires raw mode)
- Fixed
SIGTTIN
when executed under the LLDB - Added mio for reading from FD and more efficient polling (UNIX only)
- Sync UNIX and Windows vertical mouse position (PR #11)
- Top is always reported as
0
- Top is always reported as
crossterm_screen
0.3.2
to_alternate
switch back to main screen if it fails to switch into raw mode (PR #4)- Improve the documentation (PR #5)
- Public API
- Include the book content in the documentation
- Remove all references to the crossterm book (PR #6)
- New commands introduced (PR #7)
EnterAlternateScreen
LeaveAlternateScreen
- Sync Windows and UNIX raw mode behavior (PR #8)
crossterm_style
0.5.2
- Refactoring (PR #2)
- Added unit tests
- Restructured files
- Improved documentation and added book page to lib.rs
- Fixed bug with
SetBg
command, WinApi logic - Fixed bug with
StyledObject
, used stdout for resetting terminal color - Introduced
ResetColor
command
- Sync documentation style (PR #3)
- Remove all references to the crossterm book (PR #4)
- Windows 7 grey/white foreground/intensity swapped (PR #5)
crossterm_terminal
0.3.2
- Removed
crossterm_cursor::sys
dependency (PR #2) - Internal refactoring & documentation (PR #3)
- Removed all references to the crossterm book (PR #4)
crossterm_utils
0.4.0
- Add deprecation note (PR #3)
- Remove all references to the crossterm book (PR #4)
- Remove unsafe static mut (PR #5)
sys::unix::RAW_MODE_ENABLED
replaced withsys::unix::is_raw_mode_enabled()
(breaking)- New
lazy_static
dependency
crossterm_winapi
0.3.0
- Make read sync block for windows systems (PR #2)
0.11.1
0.11.0
Changes crossterm 0.11.0
As preparation for crossterm 0.1.0 we have moved crossterm to an organization called 'crossterm-rs'.
Code Quality
- Code Cleanup: warning-cleanup, crossterm_style-cleanup, crossterm_screen-cleanup, crossterm_terminal-cleanup, crossterm_utils-cleanup, 2018-cleanup, api-cleanup-1, api-cleanup-2, api-cleanup-3
- Examples: example-cleanup_1, example-cleanup_2, example-fix, commandbar-fix, snake-game-improved
- Fixed all broken tests and added tests
Important Changes
- Return written bytes: return-written-bytes
- Added derives:
Debug
forObjectStyle
debug-derive, Serialize/Deserialize for key events serde - Improved error handling:
- Return
crossterm::Result
from all api's: return_crossterm_resultTerminalCursor::pos()
returnsResult<(u16, u16)>
Terminal::size()
returnsResult<(u16, u16)>
TerminalCursor::move_*
returnscrossterm::Result
ExecutableCommand::queue
returnscrossterm::Result
QueueableCommand::queue
returnscrossterm::Result
get_available_color_count
returns no resultRawScreen::into_raw_mode
returnscrossterm::Result
instead ofio::Result
RawScreen::disable_raw_mode
returnscrossterm::Result
instead ofio::Result
AlternateScreen::to_alternate
returnscrossterm::Result
instead ofio::Result
TerminalInput::read_line
returnscrossterm::Result
instead ofio::Result
TerminalInput::read_char
returnscrossterm::Result
instead ofio::Result
- Maybe I forgot something, a lot of functions have changed
- Removed all unwraps/expects from library
- Return
- Added KeyEvent::Enter and KeyEvent::Tab: added-key-event-enter, added-key-event-tab
- Synced set/get terminal size behaviour: fixed-get-set-terminal-size
- Method renames:
AsyncReader::stop_reading()
tostop()
RawScreen::disable_raw_mode_on_drop
tokeep_raw_mode_on_drop
TerminalCursor::reset_position()
torestore_position()
Command::get_anis_code()
toansi_code()
available_color_count
toavailable_color_count()
Terminal::terminal_size
toTerminal::size
Console::get_handle
toConsole::handle
- All
i16
values for indexing: set size, set cursor pos, scrolling synced tou16
values - Command API takes mutable self instead of self