github xtermjs/xterm.js 3.9.0

latest releases: 5.5.0, 5.4.0, 5.3.0...
pre-release5 years ago

🆕 Features

  • Introduced a new buffer implementation based on typed arrays that recycles memory (#1641, #1731, #1736, #1740, #1793, #1812) via @jerch.

    Comparison of the buffer implementations, benchmarked with the demo with 1000 lines scrollback and typical payload (ls output):

    buffer based on memory footprint GC runtime input throughput
    JS Array 25 - 50 MB JS Heap, 6 MB C++ Heap 15 - 25 % 7 - 8 MB/s
    Typed Array 8 - 15 MB JS Heap, 1.5 MB C++ Heap < 3 % 17 - 19 MB/s

    The typed array based implementation is the new default, if you run into issues please report them and switch back to the old buffer using:

    new Terminal({ experimentalBufferLineImpl: 'JsArray' })
  • Support the lineHeight option in the DOM renderer (#1733) via @leomoty

🐞 Bug fixes

  • Fill lines inserted from scrolling with erase attributes (#1706) via @whydoubt
  • Clear the isWrapped flag on erased lines (eg. from a clear call) (#1720) via @alexr00
  • Fix an infinite loop in character print code (#1735) via @Tyriar
  • Fix inverse colors in the DOM renderer and dynamic char atlas (#1739) via @Tyriar
  • Fix docker image build (#1742) via @AndrienkoAleksandr
  • Fix NPE in DOM renderer when using the underline attribute (#1748) via @Tyriar
  • Fix some CJK characters rendering incorrectly when using dynamic char atlas (#1758) via @Tyriar
  • Improve alt buffer cursor handling to align more with xterm (#1764) via @whydoubt
  • Only show crosshair cursor when using column select if the terminal has focus (#1772) via @whydoubt
  • Fix the DOM renderer overlapping with the scroll bar (#1780) via @whydoubt
  • Fix wheel up event never firing on Firefox (#1782) via @astefanutti
  • Fix missing control characters in parser (#1783) via @jerch
  • Fix edge cases in click in selection function which could lead to the wrong cells being selected when double clicking (#1784) via @Tyriar
  • Fix error preventing the bell audio from working when using multiple terminals (#1787) via @jerch
  • Web links addon
  • Search addon

📝 Documentation and internal improvements

  • Start moving parts of the codebase to use TypeScript strict null checks (#1699) via @Tyriar
  • Use yarn integrity checks (#1728) via @Tyriar
  • Improve reliability/speed of the demo (#1744) via @jerch
  • Update Azure Data Studio's name in README (#1745) via @Tyriar
  • Improve API for consumers using TypeScript strict null checks (#1752) via @Tyriar
  • Run tests & tslint on addons (#1754) via @vladimirZe
  • Fix typos in source comments (#1759) via @stkvrs
  • Significantly improve wcwidth performance (#1789) via @jerch
  • Significantly improve DOM renderer performance, especially in large terminals (#1792) via @Tyriar
  • Improve contribution documentation (#1791) via @Tyriar
  • Remove unused function parameters (#1794) via @Tyriar
  • Refactors towards new code layering structure (#1795, #1799) via @Tyriar
  • Upgrade to TypeScript 3.1 (#1800) via @Tyriar

🎉 New real-world use cases

Don't miss a new xterm.js release

NewReleases is sending notifications on new releases.