npm xterm 4.4.0

latest releases: 5.0.0, 5.0.0-beta.60, 5.0.0-beta.59...
4 years ago

🚀 Features

  • A new addon is available that serializes the buffer as a string, allowing restoring the majority of the state to a new terminal by calling Terminal.write(serializedState). See the xterm-addon-serialize section below for more info.
  • A new addon to enable unicode 11 support, which can fix many emoji-width related bugs on modern operating systems. See the xterm-addon-unicode11 section below for more info.
  • Support alt-clicking in multi-line prompts in the normal buffer (#2670) via @kumaran-14

📦 API

  • Support for some window manipulation/reporting sequences (#2393) via @jerch. These must be enabled explicitly via the new windowOptions option as they have security implications.
  • Allow the thickness of the bar cursor to be configured (#2590) via @npezza93
    new Terminal({
      cursorStyle: 'bar',
      cursorBarWidth: 3
    });
  • The parser API is now stable (#2689) via @Tyriar

🐞 Bug fixes

  • Speed up double disposing an object (#2616) via @sdegutis
  • Implement hidden attribute rendering in DOM renderer (#2625) via @Tyriar
  • Fix canvas selection supporting #rrggbbaa color format (#2629) via @ivanwonder
  • Improve handling of full width characters in buffer writes (#2644) via @jerch
  • Flag lines as being wrapped after a CUP occurs at the end of a line in windowsMode (#2667) via @Tyriar
  • Properly separate DOM renderer cursor animations for each terminal to avoid conflicts when multiple terminals are visible with different themes (#2676) via @jeffbaier
  • Fix various characters in the DEC graphics charset (#2679) via @jerch
  • Remove ; and : from the default wordSeparator option so more URLs are selected fully with double click (#2680) via @Tyriar
  • Fix DOM renderer not rendering cursor correctly immediately after changing cursorBlink or cursorStyle (#2684) via @Tyriar
  • Handle links safely by removing opener from window (#2688) via @Tyriar

📝 Documentation and internal improvements

  • Implement tooling to document and extract the supported VT features of xterm.js (#2386) via @jerch
  • Update node-pty to v0.9 (#2621) via @jerch
  • Reducing internal circular dependencies (#2637, #2640) via @Tyriar
  • Improve the structure of the color helper library (#2653) via @Tyriar
  • Fix failing Linux unit tests not failing job in CI (#2682) via @Tyriar
  • Remove old unused options from codebase and API (#2685) via @Tyriar

🛑 Breaking changes

  • APIs starting with add in the experimental parser API have been removed in favor of register as it enters stable status (#2651) via @Tyriar

⚠️ Deprecations

  • addMarker is now deprecated, move over to registerMarker which is functionally equivalent (#2651) via @Tyriar

🎉 New real-world use cases


📥 Addons

xterm-addon-attach

  • Restore IE compatibility by changing the compile target to ES5 (#2654) via @Tyriar

xterm-addon-serialize

This new addon has allows serializing terminal state (text, color and style currently) and writing it to new Terminal objects to restore it (#2369, #2618, #2687) via @JavaCS3

const t = new Terminal();
const serializeAddon = new SerializeAddon();
t.loadAddon(serializeAddon);
await new Promise(r => t.write('foo \x1b[31mbar', r));
const state = serializeAddon.serialize();
console.log(state); // 'foo \x1b[31mbar'

xterm-addon-unicode11

This new addon can be enabled to resolve unicode character widths based on version 11 of unicode (#2568) via @jerch.

const t = new Terminal();
// 🤣 is now single width (unicode 6)
const unicode11Addon = new Unicode11Addon();
t.loadAddon(unicode11Addon);
t.unicode.activeVersion = '11';
// 🤣 is now treated as double width

xterm-addon-webgl

🤝 Compatible addon versions

  • xterm-addon-attach@0.5.0
  • xterm-addon-fit@0.3.0
  • xterm-addon-search@0.5.0
  • xterm-addon-serialize@0.1.2
  • xterm-addon-ligatures@0.2.1
  • xterm-addon-unicode11@0.1.1
  • xterm-addon-web-links@0.2.1
  • xterm-addon-webgl@0.5.0 (not 0.5.1, see #2759)

Don't miss a new xterm release

NewReleases is sending notifications on new releases.