Skip to content

Releases: crossterm-rs/crossterm

0.14.1

11 Jan 17:11
43c977d
Compare
Choose a tag to compare
  • Made windows cursor position relative to the window instead absolute to the screen buffer windows.
  • Fix windows bug with queue macro were it consumed a type and required an type to be Copy.

0.14

16 Dec 16:14
41ff73e
Compare
Choose a tag to compare
  • Replace the input module with brand new event 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 into terminal
    • Remove screen::AlternateScreen
    • Remove screen::Rawscreen
      • Move and rename Rawscreen::into_raw_mode and Rawscreen::disable_raw_mode to terminal::enable_raw_mode and terminal::disable_raw_mode
    • Move screen::EnterAlternateScreen and screen::LeaveAlternateScreen to terminal::EnterAlternateScreen and terminal::LeaveAlternateScreen
    • Replace utils::Output command with style::Print command
  • Fix enable/disable mouse capture commands on Windows
  • Allow trailing comma queue! & execute! macros

0.13.2

04 Nov 17:57
8bb2b20
Compare
Choose a tag to compare
  • New input::stop_reading_thread() function
    • Temporary workaround for the UNIX platform to stop the background
      reading thread and close the file descriptor
    • This function will be removed in the next version

0.13.1

04 Nov 17:58
Compare
Choose a tag to compare
  • Fix Async Reader, join background thread and avoid looping forever on windows.

0.13

02 Nov 18:27
5898769
Compare
Choose a tag to compare
  • 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 and EnableMouseCapture commands
  • cursor module
    • Introduce static function crossterm::cursor::position in place of TerminalCursor::pos
    • Rename Goto to MoveTo
    • Rename Up to MoveLeft
    • Rename Right to MoveRight
    • Rename Down to MoveDown
    • Rename BlinkOn to EnableBlinking
    • Rename BlinkOff to DisableBlinking
    • Rename ResetPos to ResetPosition
    • Rename SavePos to SavePosition
  • terminal
    • Introduce static function crossterm::terminal::size in place of Terminal::size
    • Introduce static function crossterm::terminal::exit in place of Terminal::exit
  • style module
    • Rename ObjectStyle to ContentStyle. Now full names are used for methods
    • Rename StyledObject to StyledContent and made members private
    • Rename PrintStyledFont to PrintStyledContent
    • Rename attr method to attribute.
    • Rename Attribute::NoInverse to NoReverse
    • 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
  • Improve documentation
  • Unix terminal size calculation with TPUT

Version 0.12.0

21 Oct 18:46
c3c2652
Compare
Choose a tag to compare
  • 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 with is_raw_mode_enabled (PR #9)
  • Use SyncReader & InputEvent::CursorPosition for pos_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
  • 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)
  • 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

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 with sys::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

25 Sep 14:10
Compare
Choose a tag to compare

Version 0.11.1

  • Maintenance release
  • All sub-crates were moved to their own repositories in the crossterm-rs organization

0.11.0

24 Sep 17:47
e600eab
Compare
Choose a tag to compare

Changes crossterm 0.11.0

As preparation for crossterm 0.1.0 we have moved crossterm to an organization called 'crossterm-rs'.

Code Quality

Important Changes

  • Return written bytes: return-written-bytes
  • Added derives: Debug for ObjectStyle debug-derive, Serialize/Deserialize for key events serde
  • Improved error handling:
    • Return crossterm::Result from all api's: return_crossterm_result
      • TerminalCursor::pos() returns Result<(u16, u16)>
      • Terminal::size() returns Result<(u16, u16)>
      • TerminalCursor::move_* returns crossterm::Result
      • ExecutableCommand::queue returns crossterm::Result
      • QueueableCommand::queue returns crossterm::Result
      • get_available_color_count returns no result
      • RawScreen::into_raw_mode returns crossterm::Result instead of io::Result
      • RawScreen::disable_raw_mode returns crossterm::Result instead of io::Result
      • AlternateScreen::to_alternate returns crossterm::Result instead of io::Result
      • TerminalInput::read_line returns crossterm::Result instead of io::Result
      • TerminalInput::read_char returns crossterm::Result instead of io::Result
      • Maybe I forgot something, a lot of functions have changed
    • Removed all unwraps/expects from library
  • 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() to stop()
    • RawScreen::disable_raw_mode_on_drop to keep_raw_mode_on_drop
    • TerminalCursor::reset_position() to restore_position()
    • Command::get_anis_code() to ansi_code()
    • available_color_count to available_color_count()
    • Terminal::terminal_size to Terminal::size
    • Console::get_handle to Console::handle
  • All i16 values for indexing: set size, set cursor pos, scrolling synced to u16 values
  • Command API takes mutable self instead of self

0.9.6

15 Jun 19:53
Compare
Choose a tag to compare
  • Copy for KeyEvent
  • CTRL + Left, Down, Up, Right key support
  • SHIFT + Left, Down, Up, Right key support
  • Fixed UNIX cursor position bug issue, PR

0.9.5

20 May 16:57
Compare
Choose a tag to compare
  • Prefetching buffer size for more efficient windows input reads. PR