📢 Our next release will be v4, read more here 👉 #2143.
Compatible new addon versions:
xterm-addon-fit@0.1.0-beta1
🚀 Features
📦 API
For the complete details on the new APIs, see the typings file. For APIs marked experimental we're hoping to stabilize them in v4 and want feedback from the community to make sure they are useful.
- Support writing raw UTF-8 data directly, which may help avoid an unnecessary conversion to a relatively heavy JS string (#1904) via @jerch
const data = new Uint8Array([102, 111, 111]); term.writeUtf8(data);
- New experimental addon API (#2065, #2116) via @Tyriar
// A simple example addon const addon = { activate: (term: Terminal) => { console.log('addon activated'); }, dispose: () => { } } term.loadAddon(addon);
- New experimental buffer API (#2074) via @Tyriar. Consumers can finally query the textual state of the terminal.
// Print the line that the cursor is on as text term.buffer.getLine(term.buffer.cursorY).translateToString(true);
- New
select
andgetSelectionPosition
APIs (#2078) via @Tyriarterm.select(5, 2, 10); console.log(term.getSelectionPosition()); // {startColumn: 5, startRow: 2, endColumn: 15, endRow: 2}
🐞 Bug fixes
- Add missing typings for
windowsMode
option (#2062) via @Tyriar - Improve spacing between characters in DOM renderer (#2067) via @starpit
- Dispose of old data in the write buffer once it's been written if xterm.js hasn't caught up (#2120) via @jerch
- Fix wrong colors printing for 256 color mode (#2125) via @jerch
- Fix loss of data during a RIS (full reset) (#2127) via @jerch
- Only update the accessibiltiy announcements during an animation frame (#2128) via @Tyriar
- Fix a NPE in reflow (#2131) via @Tyriar
- Ensure underline is rendered correctly in canvas renderer (#2134) via @Tyriar
- Fix a font rendering issue where settings/colors wouldn't be picked up (#2140) via @Tyriar
- webLinks addon
📝 Documentation and internal improvements
- Update terminal dimensions after line height changes in demo (#2050) via @Tyriar
- Replace deprecated prepublish npm script (#2051) via @Tyriar
- Update year in README (#2053) via @Tyriar
- Minor clean up (#2056, #2073, #2101, #2133) via @Tyriar, @jerch
- Refine automated release system (#2057, #2061, #2113) via @Tyriar
- Improving code layering (#2059, #2066, #2092, #2094) via @Tyriar
- Introduce puppeteer-based integrated test system and tests (#2068, #2081, #2110, #2114, #2118, #2130) via @Tyriar
- Support
writeUtf8
in the demo (#2080) via @jerch - Fix coverage reporting (#2088) via @Tyriar
- Introduce a RenderCoordinator that shares common components previously duplicated in each renderer (#2096, #2100) via @Tyriar
- Use logo as favicon in demo (#2098) via @Tyriar
- Update TypeScript to 3.5 (#2141) via @Tyriar