Bot releases are hidden (Show)
Published by Tyriar almost 7 years ago
https://github.com/xtermjs/xterm.js/pull/1190: Fixes the typings/
directory not being published to npm
Published by Tyriar almost 7 years ago
The xterm.js team is happy to push out our biggest release yet!
^ Our handsome new logo
As well as a bunch of features, this release is a major bump and we're using this as an opportunity to clean up APIs and debt items that can cause breaking changes, so many sure you review the ⚠️ Breaking changes section if you're upgrading from version 2.
#935, #973, #963
The rendering code has been completely re-written, moving from DOM-based rendering to canvas-based. Various tricks are used to boost performance significantly, When benchmarked there was a 5 to 45 times improvement depending on the situation.
^ Whoooosh
You can read more about these changes on the Visual Studio Code blog.
Since xterm.js now renders everything in a canvas, it needs to know what the colors for everything are. As such there is now a theme API which can be set just like any other option:
var term = new Terminal({
theme: {
background: '#000'
}
});
// or
term.setOption('theme', {
background: '#FFF'
});
Refer to the xterm.d.ts
file for an overview of the keys that can be set.
#878, #904
The terminal bell can now be enabled:
var term = new Terminal({
bellStyle: 'sound'
});
// or
term.setOption('bellStyle', 'sound');
You can also set it to a custom sound using a data URI:
var term = new Terminal({
bellSound: 'data:audio/wav;base64,...'
});
This was a community contribution from @npezza93 ❤️, visual bell support was also added but this broke during the rendering changes. Hopefully it shall return soon 😃
#898
Previously we shipped typings that were generated by TypeScript itself. These exported absolutely everything, including unstable private APIs which you should not depend on. As of this release we now ship handwritten TypeScript typings that export only the public API. This should make working with xterm.js a much more pleasant experience in an editor that supports typings.
tmux
is intercepting mouse eventsenableBold
optionbellStyle
can set the terminal's bell style, valid values: 'sound'
| 'none'
bellSound
can set the bell sound when bellStyle
is 'sound'
letterSpacing
enableBold
selection
event is now omitted when the user makes a selectionwinptyCompat
which attempts to get wraparoundMode working when winpty is running the shellTerminal.open
is calledmousedown
event now continues propagation when the terminal has selection and a right click, allowing the context menu to be canceledCSI Ps M
to delete the correct line2^32 - 1
.xterm
over .terminal
As always make sure you pull in the latest changes from xterm.css if you have forked it, the file size has reduced significantly due to theme/color information moving from CSS to JS.
#406: We no longer ship xterm.js to Bower
#646: Terminal.open
no longer accepts the second focus
argument, call Terminal.focus
instead:
// v2
term.open(element, true);
// v3
term.open(element);
term.focus();
#744: attachCustomKeydownHandler
has been removed, use attachCustomKeyEventHandler
instead:
// v2
term.attachCustomKeydownHandler(f);
// v3
term.attachCustomKeyEventHandler(f);
#841: geometry
has been removed as an option in the Terminal
constructor, use cols
and rows
instead:
// v2
var term = new Terminal({geometry: [10, 5]});
// v3
var term = new Terminal({
cols: 10,
rows: 5
});
#902: scrollDisp
has been renamed to scrollLines
:
// v2
term.scrollDisp(1);
// v3
term.scrollLines(1);
#901: The open
event has been removed, put your code immediately after the call to Terminal.open
instead:
// v2
term.on('open', f);
term.open(element);
// v3
term.open(element);
f();
#903: The refresh
event no longer gives the element
in its data object, use the Terminal
object instead:
// v2
term.on('refresh', e => console.log(e.element));
// v3
term.on('refresh', () => console.log(term.element));
#903: The resize
event no longer gives the terminal
in its data object, use the Terminal
object instead:
// v2
term.on('resize', e => console.log(e.terminal));
// v3
term.on('resize', () => console.log(term));
#1159: The lineFeed
event has been renamed to linefeed
:
// v2
term.on('lineFeed', () => {});
// v3
term.on('linefeed', () => {});
A special thanks to everyone who helped put this release together including the core team (myself, @parisk, @mofux), contributors who created PRs (@peterbaumgarten, @npezza93, @dgriffen, @LucaT1, @dcylabs, @marcdumais-work, @ricktbaker, @jgillich, @jdanbrown, @martin31821, @nikonso, @flumm) and everyone who participated in reporting and discussing issues!
Published by parisk about 7 years ago
Published by Tyriar about 7 years ago
Published by parisk about 7 years ago
📣 Public Service Announcement: 2.9.0 is the last 2.x release (except for bug fix releases), before xterm.js 3.0.
find
add-on with search API (#704) via @TyriarlineFeed
event (#817) via @LixireRead more about the API specifics on the website.
scrollDisp
does not scroll (#766) via @TyriarTypeError
when calling resize()
via the fit
add-on (#823) via @jpmastersBuffer
and BufferSet
classes for buffer management (#717) via @parisksearch.exclude
setting for Visual Studio Code workspace (#772) via @mjbvzevent.detail
instead of counting clicks in Selection Manager (#780) via @mofuxvalue
parameter from getOption
(#793) via @Tyriarwcwidth
by using a lookup table (#798) via @jerchnull
checks (#810) via @TyriarPublished by parisk over 7 years ago
Published by Tyriar over 7 years ago
Selection reimplemented #670, #691, #714, #715, #716, #719, #723, #725, #733, #746 via @Tyriar
Selection is now managed completely by the xterm.js library, rather than relying on the native browser implementation. This adds a huge host of features and bug fixes:
Support scroll on touch devices (does not support ballistic scroll yet) #747 via @anishathalye
Terminal.attachCustomKeyEventHandler
Terminal.selectAll
Terminal.hasSelection
Terminal.clearSelection
Terminal.getSelection
Read more about the API specifics on the website.
\r
instead of \n
when pasting into the terminal on Windows, fixing paste on various Windows shells #707 via @jdanyowElement.classList.add
call in IE11 #754 via @LucianBuzzoTerminal.attachCustomKeyEventHandler
API and deprecated Terminal.attachCustomKeydownHandler
. Both APIs now apply to all key events, not just keydown #712 via @chabouPublished by Tyriar over 7 years ago
vtop
program (https://github.com/sourcelair/xterm.js/pull/672)Before #450:
After #450:
Published by parisk over 7 years ago
cursorStyle
selection in demo (#641)focus
argument in .open()
(#645).open()
is now deprecated and will be removed in 3.0.0 (#645)Published by Tyriar over 7 years ago
CSI 3 J
(Erase saved lines) (#588)Refining the link matcher (#616)
The experimental link matcher feature has seen more refinements this release:
Published by parisk over 7 years ago
In xterm.js 2.4 we are introducing a great new feature, improvements and fixes!
First off, let's start with what's new!
Now xterm.js will detect and WebLinks in the terminal's buffer and convert them to a
elements, which you can click to navigate to them (all link elements open in a new browser tab by default).
For more information on this take a look a the corresponding Pull Request: #538.
The new built-in WebLinks mechanism is not just for "web links". We exposed a few experimental APIs that let you match custom link formats (e.g. local file paths) to make this suit your needs better. For more information take a look at the corresponding Pull Request: #538.
TIP: You can even register multiple link matchers and assign priorities.
Xterm.js now has a public API for importing and using it's add-ons. Check it out at http://xtermjs.org/docs/.
fit
add-on from crashing, with a non-existent parent element (#544)OK, that's nothing special but now we can be easily aware about the testing coverage status of the repository and easily make sure to improve this rate as time passes: #565.
Published by Tyriar over 7 years ago
Fixed an issue where the terminal was the wrong size initially https://github.com/sourcelair/xterm.js/issues/539
Published by Tyriar over 7 years ago
Fixed an issue on IE (https://github.com/sourcelair/xterm.js/pull/533), thanks @vincentwoo!
Published by Tyriar over 7 years ago
Xterm.js 2.3.0 is a big release with a lot of goodies, and some huge strides in performance. This gif demonstrates v2.2.0 vs 2.3.0:
useFlowControl
which will send the newly implemented XOFF
and XON
to the pty process to make sure it doesn't get too far ahead of xterm.js (https://github.com/sourcelair/xterm.js/pull/447). This makes sending signals to the running process far more responsive and prevents lock ups. Note that this option is disabled by default because the popular oh-my-zsh overrides ^S and ^Q by default (see https://github.com/sourcelair/xterm.js/pull/513).disableStdin
option that will completely disable all input handling (https://github.com/sourcelair/xterm.js/pull/453).tabStopWidth
option to customize the size of tabs (https://github.com/sourcelair/xterm.js/pull/497)^S
for XOFF
, ^Q
for XOFF
) (https://github.com/sourcelair/xterm.js/pull/447).\e[3 q
for blinking underline) (https://github.com/sourcelair/xterm.js/pull/492).scrollback
and cursorBlink
options immediately after the setOption
call (https://github.com/sourcelair/xterm.js/pull/477, https://github.com/sourcelair/xterm.js/pull/479)tslint
is also now run in continuous integration (https://github.com/sourcelair/xterm.js/pull/411).npm
script and package.json
improvements (https://github.com/sourcelair/xterm.js/pull/419, https://github.com/sourcelair/xterm.js/pull/402)gulp
as the build system (https://github.com/sourcelair/xterm.js/pull/435).npm
so xterm.js can be built after installing from npm (https://github.com/sourcelair/xterm.js/pull/502).Published by parisk almost 8 years ago
📢 Fixes issues with missing files in npm release after 2.2.2 (#414).
Xterm.js 2.2.0 is a generally uneventful release, except for the fact that we started 📢 migrating the code base to TypeScript.
open
, scroll
and title
events (#351)^\
string terminator (#377)dist/addons
(b76b2d01ebe5bb919ba76ab8ff81133521889460)Published by parisk almost 8 years ago
📢 Fixes issues with requiring xterm.js with Browserify and SystemJS after 2.2, when installed via NPM (#397, #412).
This was fixed in #398 by pointing the main
field of package.json
to the lib
directory, which is ignored by Git, but published to NPM.
Xterm.js 2.2.0 is a generally uneventful release, except for the fact that we started 📢 migrating the code base to TypeScript.
open
, scroll
and title
events (#351)^\
string terminator (#377)dist/addons
(b76b2d01ebe5bb919ba76ab8ff81133521889460)Published by parisk almost 8 years ago
📢 ⚠️ PSA: Addons are now placed in the dist/addons
, instead of addons
. Please update the path you use to load add-ons in your applications accordingly 🙂 .
Xterm.js 2.2.0 is a generally uneventful release, except for the fact that we started 📢 migrating the code base to TypeScript.
open
, scroll
and title
events (#351)^\
string terminator (#377)dist/addons
(b76b2d01ebe5bb919ba76ab8ff81133521889460)Published by parisk almost 8 years ago
Xterm.js 2.2.0 is a generally uneventful release, except for the fact that we started 📢 migrating the code base to TypeScript.
open
, scroll
and title
events (#351)^\
string terminator (#377)Published by parisk almost 8 years ago
main
field in bower.json
(#337)Published by parisk about 8 years ago
🎉 We are excited to announce new major release: 2.0 🎉
Official announcement: http://xtermjs.org/blog/articles/2016-10-03-xtermjs-2.0
dist
directory, where the built files reside, instead of src
, where the unbuilt modules residesetOption
(#272)getOption
(#282)clear
(#276)