This was a 2 month release due to unavailability of some team members.
🆕 Features
-
The parser was rewritten, increasing ANSI compliance and boosting speed by about 30% (#1399) via @jerch
-
A fallback DOM-based renderer is now available (#1432, #1524) via @Tyriar. This is useful for machines that have rendering issues with canvas:
var term = new Terminal({ rendererType: "dom" });
-
Column selection is now supported on alt+click (#1538) via @vsinha
🐞 Bug fixes
- Prevent Safari from calling createImageBitmap as it's implemented but returns a rejection (#1469) via @tmpfs
- Select entire wrapped line on triple click (#1486) via @Tyriar
- Explicitly mark event listneers as not passive (#1495) via @nikonso
- Prevent mouse mode events from being sent when mouse mode is exited while the mouse is down (#1503) via @Tyriar
- Prevent NPE on beginFrame call (#1512) via @Tyriar
- Redraw the screen after drawBoldTextInBrightColors changes (#1513) via @Tyriar
- Track character attributes when using save/restore cursor sequences (#1522) via @7PH
- Ensure all references are released when Terminal.dispose is called, preventing memory leaks (#1525) via @Tyriar
- Don't hide cursor when reset is triggered (#1535) via @7PH
- Tracked the selection render state correctly (#1543) via @nikonso
📝 Documentation and internal improvements
- Several improvements to the npm test scripts (#1388) via @Tyriar
- Add more naming conventions to linter (#1421) via @Tyriar
- Added VSTS build badge (#1457) via @Tyriar
- Performance improvements to adding characters to the buffer (#1466) via @jerch
- Correct lib values in tsconfig (#1472) via @Tyriar
- Support incremental xterm.js builds (#1474) via @Tyriar
- Replace let with const where possible (#1477) via @lgeiger
- Clean up TS references (#1483) via @AndrienkoAleksandr
- Add readme for fit addon (#1485) via @Tyriar
- Enable noImplicitAny TS compiler option (#1487) via @Tyriar
- Improve demo to show all options in a nice way (#1488) via @Tyriar
- Fix npm start on Windows (#1489) via @nikonso
- Fix demo string options (#1490) via @nikonso
- Fix typo in README (#1491) via @pro-src
- Fix copyright line breaks (#1497) via @Tyriar
- Add a code of conduct (#1500) via @Tyriar
- Add more granular github issue templates (#1501) via @Tyriar
- Start of code layering improvements (#1508) via @Tyriar
- Pin node-pty to 0.7.6 (#1531) via @Tyriar
- Allow the terminal to be recreated after disposing the terminal in the demo (#1542) via @nikonso
- Fix typo in function name (#1537) via @Tyriar
- Remove old parser code (#1547) via @Tyriar
xtermjs.org
- Generate docs using typedoc (xtermjs/xtermjs.org#44) via @pro-src
- Validate links in generated docs (xtermjs/xtermjs.org#46) via @pro-src
- Synchronize site with xterm.js README (xtermjs/xtermjs.org#49) via @pro-src
- Update terminado guide for new addon API (xtermjs/xtermjs.org#50) via @pro-src
- Move real world uses section below getting started (xtermjs/xtermjs.org#55) via @pro-src
- Add favicon (xtermjs/xtermjs.org#56) via @pro-src
🛑 Breaking changes
-
Since column selection is now the default for alt+click, on macOS there is a new setting to allow forcing of selection within mouse mode:
var term = new Terminal({ macOptionClickForcesSelection: true });
🎉 New real-world use cases
- GoTTY (#1475) via @cathy-zhao
- genact (#1494) via @svenstaro
- cPanel & WHM (#1510) via @FGasper
- Nutanix (#1517) via @JonKohler