🚀 Features
- True color support (#1895, #2034) via @jerch
- New UTF32 buffer layout (#1878, #2035) via @jerch, this reduces overall memory usage, makes true color possible and improves overall throughput.
- DOM Renderer
📦 API
- A new and improved event API has been introduced that properly types the arguments within the listener (#2008) via @Tyriar
- The new
windowsMode
option replaces the old winptyCompat addon (#1978, #1985, #1993) via @Tyriar, note that there are no longer the previous protections in place to prevent the mode from running on non-Windows operating systems. Terminal.markers
is now aReadonlyArray
(previously[]
) (#2036) via @Tyriar
🐞 Bug fixes
- Prevent unhandled sequence code from being hit incorrectly (#1923) via @jerch
- Fix UTF-8 mouse coordinate support (#1952) via @NickShaffner
- Don't open links when selecting text and releasing the mouse in the middle of the link (#1958) via @nikonso
- Don't do a full refresh when no needed after pausing and resuming rendering (#1976) via @Tyriar
- No longer scroll to the xterm.js text area when it's focused (#1982) via @Tyriar
- Fix the CSI scroll down handler (#1995) via @thekondr
- Properly send the
^_
sequence (emacs undo) (#2052) via @jflatow - search addon
- Fix skipping wrapped line results after resizing the terminal (#1866) via @ntchjb
- Fix find next/previous not selecting correct text after resizing the terminal (#2025) @thebradbain
- webLinks addon
📝 Documentation and internal improvements
- Open the browser automatically when the server is ready when debugging (#1968) via @nikonso
- Tweak rtty messaging (#1973) via @zhaojh329
- Recommend 127.0.0.1 over 0.0.0.0 on Linux and macOS to simplify documentation (#1987) via @Tyriar
- Fix backspace in the demo (#1997) via @Tyriar
- Better integration with VS Code
- Improving project structure
- Releases
🛑 Breaking changes
- The
winptyCompat
addon has been moved into core and is now enabled via thewindowsMode
option:See the API section for more information.// before 3.13.0 import winptyCompat = require('vscode-xterm/lib/addons/winptyCompat/winptyCompat'); Terminal.applyAddon(winptyCompat); const term = new Terminal(); // after 3.13.0 const term = new Terminal({ windowsMode: true });
⚠️ Deprecations
- The
on
,off
,emit
andaddDisposableListener
APIs are now deprecated and are planned to be removed in v4.0.0 (#2008) via @Tyriar, they are replaced with the new "explicit event API".We took this opportunity to slim down the events, cutting out some that we thought are no longer needed. If you are using any events that were not carried over to the new event API please create an issue and let us know how you're using it to see if we should expose it.// deprecated term.on('resize', e => doSomething(e)); // recommended term.onResize(e => doSomething(e));
🎉 New real-world use cases
- LxdMosaic (#1966) via @turtle0x1
- CodeInterview.io (#1999) via @asadm
- Bastillion (#2006) via @skavanagh
- PHP App Server (#2043) via @cubiclesoft
A special thanks to @Eugeny of the Terminus project for trialing the beta release and helping catch some nasty bugs before we released ❤️