3.9.0
Pre-release
Pre-release
π 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
- Don't consider
_
a word separator in the search addon (#1743) via @alexr00 - Clear selection when no results are found (#1756) via @skprabhanjan
- Search from the top of the viewport when there is no selection (#1760) via @skprabhanjan
- Don't consider
π 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
- WebSSH (#1768) via @huashengdun
- Info beamer hosted (#1806) via @dividuum