Skip to content
a8fbc8d
Compare
Choose a tag to compare

📦 API

  • Support buffer decorations (#1852) via @meganrogge

    const marker = term.addMarker(1);
    const decoration = term.registerDecoration({ marker, x: 5 });
    decoration.onRender(() => {
      decoration.element.style.backgroundColor = 'red';
    });

    Screen Shot 2022-02-28 at 11 08 39 AM

  • Make registerMarker's cursor offset optional (#3663) via @childrentime

    // Before
    const markerAtCursor = term.registerMarker(0);
    
    // After
    const markerAtCursor = term.registerMarker();

🐞 Bug fixes

📝 Documentation and internal improvements

🎉 New real-world use cases


🤝 Compatible addon versions

  • xterm-addon-attach@0.6.0
  • xterm-addon-fit@0.5.0
  • xterm-addon-ligatures@0.5.2
  • xterm-addon-search@0.8.2
  • xterm-addon-serialize@0.6.1
  • xterm-addon-unicode11@0.3.0
  • xterm-addon-web-links@0.5.1
  • xterm-addon-webgl@0.11.4
c3261be
Compare
Choose a tag to compare

🚀 Features

📦 API

  • Allow setting multiple options in the xterm-headless API too (#3599) via @silamon

🐞 Bug fixes

  • Resolve perf regression from OptionsService.options (#3559) via @silamon
  • Prevent exception that could be thrown when reducing the width of the terminal (#3604) via @Tyriar
  • Fix text baseline in legacy Edge (#3621) via @felixse

📝 Documentation and internal improvements

🎉 New real-world use cases


📥 Addons

xterm-addon-ligatures

xterm-addon-web-links

🤝 Compatible addon versions

  • xterm-addon-attach@0.6.0
  • xterm-addon-fit@0.5.0
  • xterm-addon-ligatures@0.5.2
  • xterm-addon-search@0.8.2
  • xterm-addon-serialize@0.6.1
  • xterm-addon-unicode11@0.3.0
  • xterm-addon-web-links@0.5.1
  • xterm-addon-webgl@0.11.4

🌐 Website

10e4d07
Compare
Choose a tag to compare

Make sure you update your xterm.css file if you have your own copy as there were some changes made there (#3579).

🚀 Features

  • Add support for OSC 4/10/11/2 which enables programs to set and report colors within the terminal (#3524) via @jerch

📦 API

  • Set multiple options through the Terminal.options API (#3546, #3586) via @silamon
    // before
    term.setOption('rendererType', 'dom');
    term.setOption('fontSize', 12);
    
    // after
    term.options = {
      rendererType: 'dom',
      fontSize: 12
    };
  • The link provider API is no longer marked as experimental (#3587) via @Tyriar

🐞 Bug fixes

  • Prevent duplicate IME input on Linux (#3535) via @Eugeny
  • Clear line wrapped status on EL 2 (erase all in line) (#3536) via @silamon
  • Allow shift+wheel to bubble up the DOM (#3551) via @Tyriar
  • Fix canvas renderer color changes (#3553) via @jerch
  • Prevent character joiners that throw from taking down whole terminal (#3565) via @LabhanshAgrawal
  • Add tabIndex to the accessibility tree element to enable screen reader browse mode (#3572) via @Tyriar
  • Fix keystroke being ignored on US intl keyboard layouts after entering quotes (#3574) via @Tyriar
  • Take terminal padding into account when determining link area (#3580) via @Tyriar
  • Don't include trailing EOL when selecting multiple lines that end at the right edge (#3583) via @Tyriar

📝 Documentation and internal improvements

  • Fix issues reported by the putout linter (#3538) via @coderaiser
  • Fix unexpected error in incremental compiles (#3560) via @silamon
  • Mark IKeyboardEvent.keyCode as deprecated (#3582) via @Tyriar
  • Improve debug logging of parsing data to include a character code array (#3588) via @Tyriar

🎉 New real-world use cases


📥 Addons

xterm-addon-search

  • Fix length calculation of wide unicode characters (#3236) via @gera2ld

xterm-addon-web-links

xterm-addon-webgl

🤝 Compatible addon versions

  • xterm-addon-attach@0.6.0
  • xterm-addon-fit@0.5.0
  • xterm-addon-ligatures@0.5.1
  • xterm-addon-search@0.8.2
  • xterm-addon-serialize@0.6.1
  • xterm-addon-unicode11@...
  • xterm-addon-web-links@0.5.0
  • xterm-addon-webgl@0.11.4

🌐 Website

e40cf80
Compare
Choose a tag to compare

🚀 Features

  • Add support for focus reporting mode (#3506) via @Tyriar
  • Improve text alignment by setting text baseline conditionally by browser (#3370) via @dstein64

📦 API

  • Add API to clear canvas renderer texture atlas (#3481) via @Tyriar
  • Expose typed options via terminal.options (#3448) via @silamon

🐞 Bug fixes

  • Check type of cols & rows before resizing (#3532) via @jeffg2k
  • Maintain scrollbar visibility when width changes (#3504) via @yume-chain
  • Properly stop default browser scroll action via (#3518) via @jerch
  • Support text cursor enable mode in the DOM renderer (#3503) via @jerch

📝 Documentation and internal improvements

⚠️ Deprecations

Use term.options over term.setOption/getOption:

// before
term.setOption('rendererType', 'dom');

// after
term.options.rendererType = 'dom';

🎉 New real-world use cases


📥 Addons

xterm-addon-serialize

xterm-addon-webgl

🤝 Compatible addon versions

  • xterm-addon-attach@0.6.0
  • xterm-addon-fit@0.5.0
  • xterm-addon-ligatures@0.5.1
  • xterm-addon-search@0.8.1
  • xterm-addon-serialize@0.6.1
  • xterm-addon-unicode11@0.3.0
  • xterm-addon-web-links@0.4.0
  • xterm-addon-webgl@0.11.3

🌐 Website

Pull from https://github.com/xtermjs/xtermjs.org/pulls?q=is%3Apr+sort%3Aupdated-desc+is%3Aclosed

d32c6db
Compare
Choose a tag to compare

🐞 Bug fixes

cdaea7b
Compare
Choose a tag to compare

🚀 Features

📦 API

  • The new readonly modes API exposes the terminal's internal modes (#3418) via @Tyriar. These are used for example in the xterm-addon-serialize to enable mode serialization.
    if (terminal.modes.applicationCursorKeysMode) {
      // DECCKM is enabled (CSI ? 1 h)
    }

🐞 Bug fixes

  • Fix issue where scrollbar would be visible after clearing the scrollback with an escape sequence (#3372) via @Puneethnaik
  • Fix cursor ghosting in canvas and webgl renderer when device pixel ratio is not 1 (#3392, #3393) via @Tyriar
  • Fixed the cursor blink component not being property disposed of (#3403) via @Eugeny
  • Remove role=document from terminal element (#3419) via @Tyriar
  • Ensure underscore glyphs remain within the cell bounds (#3426) via @Tyriar
  • Handle input from macOS and Windows emoji IMEs (#3429) via @Eugeny
  • Properly handle dead keys and altgr (#3430, #3432, #3437) via @Eugeny
  • Fix parser throughput regressions which should improve throughput approximately 2-3x (#3452) via @Tyriar
  • Don't break the terminal when undefined is passed into the Terminal ctor explicitly (#3453) via @silamon

📝 Documentation and internal improvements

  • The screen reader mode now gets updated at most once per second to avoid layout thrashing (#3399) via @pattch
  • Fix some eslint errors in test code (#3415) via @Tyriar
  • Improve demo usability by moving options into a side panel (#3439, #3447) via @simran916
  • Use a common function to launch the test playwright browser (#3444) via @daiyam
  • Allow running specific tests and support VS Code's mocha test explorer extension (#3445) via @daiyam
  • Add a simple load test to the demo (#3451) via @Tyriar
  • Reduce playwright test flakiness (#3458) via @Tyriar
  • Switch the active unicode version in the demo when the unicode11 addon is activated/deactivated (#3462) via @anirudh1713

🎉 New real-world use cases


📥 Addons

xterm-addon-ligatures

xterm-addon-search

  • \ is now correctly treated as a non-word character (#3405) via @alur

xterm-addon-serialize

  • Support for node via xterm-headless (#3421) via @Tyriar
  • Serializing terminal modes is now supported (#3418) via @Tyriar
  • Add missing repository key to package.json (#3431) via @Tyriar

xterm-addon-unicode11

xterm-addon-webgl

🤝 Compatible addon versions

  • xterm-addon-attach@0.6.0
  • xterm-addon-fit@0.5.0
  • xterm-addon-ligatures@0.5.1
  • xterm-addon-search@0.8.1
  • xterm-addon-serialize@0.6.0
  • xterm-addon-unicode11@0.3.0
  • xterm-addon-web-links@0.4.0
  • xterm-addon-webgl@0.11.2

🌐 Website

a11ba0a
Compare
Choose a tag to compare

🐞 Bug fixes

📝 Documentation and internal improvements

🎉 New real-world use cases


🤝 Compatible addon versions

  • xterm-addon-attach@0.6.0
  • xterm-addon-fit@0.5.0
  • xterm-addon-ligatures@0.5.1
  • xterm-addon-search@0.8.0
  • xterm-addon-serialize@0.5.0
  • xterm-addon-unicode11@0.2.0
  • xterm-addon-web-links@0.4.0
  • xterm-addon-webgl@0.11.1
24f431b
Compare
Choose a tag to compare

🚀 Features

  • Double click to select a word will now use link providers registered via the API (#3230) via @marvinthepa
  • Support the ligatures addon with the DOM renderer (#3285) and WebGL renderer (#3286) via @Tyriar

📦 API

  • Support async parser handlers (#3222, #3256, #3257, #3267) via @jerch. This enables for example custom parser handlers to defer heavy work to a worker thread. Note that this will block the terminal and you should generally stay away from this API unless it's a lot of work that would block the UI thread.
    // Handle \x1b[<params>+Z using an asynchronous handler
    terminal.parser.registerCsiHandler({intermediates:'+', final: 'Z'}, async params => {
      await new Promise(res => setTimeout(res, 50));
      return false;
    });
  • Add onBell event API so embedders can handle the bell however they want (#3290, #3295) via @bmf-ribeiro
    terminal.onBell(() => customBellImpl());

🐞 Bug fixes

📝 Documentation and internal improvements

🎉 New real-world use cases


📥 Addons

xterm-addon-ligatures

  • Enable the use of ligatures outside of Electron by leveraging the navigator.fonts API (#3264) via @LabhanshAgrawal

xterm-addon-webgl

🤝 Compatible addon versions

  • xterm-addon-attach@0.6.0
  • xterm-addon-fit@0.5.0
  • xterm-addon-ligatures@0.5.0
  • xterm-addon-search@0.8.0
  • xterm-addon-serialize@0.5.0
  • xterm-addon-unicode11@0.2.0
  • xterm-addon-web-links@0.4.0
  • xterm-addon-webgl@0.11.1

🌐 Website

  • Add async parser handlers section (#137) via @jerch
ee88fca
Compare
Choose a tag to compare

🚀 Features

📦 API

🐞 Bug fixes

  • Always resize characters on zoom (#3243) via @jeanp413
  • Detect parent when open is called in a web component (#3239) via @hantatsang

📝 Documentation and internal improvements

🎉 New real-world use cases

📥 Addons

xterm-addon-serialize

xterm-addon-webgl

  • Properly render when resizing or writing if a selection exists (#3232) via @jeanp413

🤝 Compatible addon versions

  • xterm-addon-attach@0.6.0
  • xterm-addon-fit@0.5.0
  • xterm-addon-ligatures@0.4.0
  • xterm-addon-search@0.8.0
  • xterm-addon-serialize@0.5.0
  • xterm-addon-unicode11@0.2.0
  • xterm-addon-web-links@0.4.0
  • xterm-addon-webgl@0.10.0
4b29b8a
Compare
Choose a tag to compare

🚀 Features

📦 API

  • New setting to disable the alt click to move cursor feature (#3181) via @awmottaz
    new Terminal({
      altClickMovesCursor: false
    });

🐞 Bug fixes

📝 Documentation and internal improvements

🎉 New real-world use cases


📥 Addons

xterm-addon-fit

  • Fix exception related to proposing infinite dimensions (#3088) via @UziTech

xterm-addon-ligatures

xterm-addon-search

  • Fix the selection not expanding to the left when appropriate (#3125) via @kena0ki

xterm-addon-serialize

🤝 Compatible addon versions

  • xterm-addon-attach@0.6.0
  • xterm-addon-fit@0.5.0
  • xterm-addon-ligatures@0.4.0
  • xterm-addon-search@0.8.0
  • xterm-addon-serialize@0.4.0
  • xterm-addon-unicode11@0.2.0
  • xterm-addon-web-links@0.4.0
  • xterm-addon-webgl@0.9.0