Bot releases are hidden (Show)
Published by Tyriar over 5 years ago
\t
(#2010) via @TyriarPublished by Tyriar over 5 years ago
\x1b[?1003h
or \x1b[?1003l
is sent to the terminal before open is called (for good this time) (#1905) via @pfitzsebPublished by Tyriar over 5 years ago
Terminal
are now marked as readonly
: element
, textarea
, rows
, cols
, markers
(#1871, #1917) via @Tyriar\t
are no longer offset incorrectly (#1887) via @jerch\x1b[?1003h
or \x1b[?1003l
is sent to the terminal before open
is called (#1905) via @pfitzsebcharsizechanged
internal event from firing unnecessarily (#1897) via @juancampaTerminal.resize
API docs that it's best to debounce calls to it (#1919) via @TyriarPublished by Tyriar almost 6 years ago
Published by Tyriar almost 6 years ago
Published by Tyriar almost 6 years ago
Published by Tyriar almost 6 years ago
Published by Tyriar almost 6 years ago
search
addon:
Terminal.addCsiHandler
and Terminal.addOscHandler
position: fixed
(#1788) via @gou4shi1fullscreen
addon: Fix illegal invocation error (#1851) via @robins1212search
addon: Fix bug preventing searching backwards (#1865) via @ntchjbwebLinks
addon: Don't allow quotes at the end of a URL (#1846) via @linrockwinptyCompat
addon: Fix wrapped line heuristic (#1850) via @TyriarPublished by Tyriar almost 6 years ago
Introduced a new buffer implementation based on typed arrays that recycles memory (#1641, #1731, #1736, #1740, #1793, #1812) via @jerch.
Comparison of the buffer implementations, benchmarked with the demo with 1000 lines scrollback and typical payload (ls
output):
buffer based on | memory footprint | GC runtime | input throughput |
---|---|---|---|
JS Array | 25 - 50 MB JS Heap, 6 MB C++ Heap | 15 - 25 % | 7 - 8 MB/s |
Typed Array | 8 - 15 MB JS Heap, 1.5 MB C++ Heap | < 3 % | 17 - 19 MB/s |
The typed array based implementation is the new default, if you run into issues please report them and switch back to the old buffer using:
new Terminal({ experimentalBufferLineImpl: 'JsArray' })
Support the lineHeight option in the DOM renderer (#1733) via @leomoty
clear
call) (#1720) via @alexr00_
a word separator in the search addon (#1743) via @alexr00Published by Tyriar about 6 years ago
Published by mofux about 6 years ago
\x1B[23m
(#1613) via @shroudedcodeconvertEol
option not applying via setOption
(#1645) via @jerchPublished by Tyriar about 6 years ago
Terminal.emit
is being deprecated with no replacement, see #1505 for additional context (#1569) via @TyriarPublished by Tyriar over 6 years ago
Published by Tyriar over 6 years ago
This was a 2 month release due to unavailability of some team members.
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
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
});
Published by Tyriar over 6 years ago
Published by Tyriar over 6 years ago
Added an experimental LRU-based dynamic texture atlas, this should improve both start up and overall performance when used (#1327) via @bgw. You can turn it on using the experimentalCharAtlas
option in the Terminal
constructor:
const term = new Terminal({
experimentalCharAtlas: 'dynamic'
});
Improved web font support is available through the external addon xterm-webfont (#1164, #1390) via @vincentwoo
Added the drawBoldTextInBrightColors
option to allow bold colors not to use the bright colors (#1391) via @LinusU
Added support for italic text (#1422) via @flybayer
Terminal
resources were not being released after destroy
/dispose
was called (#1372) via @Tyriar, @hansonwTerminal.setOption
is called before Terminal.open
(#1384) via @TyriarTerminal.resize
is called before Terminal.open
(#1385) via @johnpothTerminal.destroy()
is now deprecated, use Terminal.dispose()
:
// v3.3
term.destroy();
// v3.4
term.dispose();
@types/node
(#1445) via @pro-srcPublished by Tyriar over 6 years ago
We have recently welcomed @bgw as a maintainer on the project due to his significant contributions around improving the character texture atlas and refactoring work.
vim
(#1310) via @TyriarFor the latest version of the API, check the typings file for the version you're interested in.
Added a new experimental "Markers" API (#1338) via @Tyriar, this allows tracking specific lines within the terminal. This is needed as line indexes are insufficient since the terminal can trim lines from the top of the scrollback buffer and lines within the viewport can change.
export interface IMarker extends IDisposable {
readonly id: number;
readonly isDisposed: boolean;
readonly line: number;
}
export class Terminal {
/**
* (EXPERIMENTAL) Get all markers registered against the buffer. If the alt
* buffer is active this will always return [].
*/
markers: IMarker[];
/**
* (EXPERIMENTAL) Adds a marker to the normal buffer and returns it. If the
* alt buffer is active, undefined is returned.
* @param cursorYOffset The y position offset of the marker from the cursor.
*/
addMarker(cursorYOffset: number): IMarker;
}
Any feedback on this API would be appreciated as it's not set in stone.
Added an API to select a range of lines (#1338) via @Tyriar:
/**
* Selects text in the buffer between 2 lines.
* @param start The 0-based line index to select from (inclusive).
* @param end The 0-based line index to select to (inclusive).
*/
selectLines(start: number, end: number): void;
Added an API to scroll to a particular line (#1338) via @Tyriar:
/**
* Scrolls to a line within the buffer.
* @param line The 0-based line index to scroll to.
*/
scrollToLine(line: number): void;
lime
and red
are now accepted (#1293) via @nikonso#RGB
(#1346) via @bgw\r
, just like on Windows (#1296) via @olsonpmTerminal
constructor (#1326) via @LucianBuzzoTerminal.reset
is called before Terminal.open
) is called (#1381) via @TyriarPublished by Tyriar over 6 years ago
screenReaderMode
option. This is disabled by default as it adds additional perf overhead (#1182) via @TyriarwebLinks
addon and calling webLinksInit
(#1298) via @Tyriaropen
is called (#1280) via @AndrienkoAleksandrcols
and rows
options (#1302) via @nikonsoPublished by Tyriar over 6 years ago
rightClickSelectsWord
(#1114) via @nikonsomacOptionIsMeta
(#1225) via @saamalikallowTransparency
(#1236) via @chaboufontWeight
(#1119) via @nikonsofontWeightBold
(#1119) via @nikonsoTerminal.element
is now supported (#1208) via @mofuxThe setting enableBold
is now deprecated in favor of fontWeight
and fontWeightBold
which can be used to achieve the same result:
// v3.0
term.setOption('enableBold', false);
// v3.1
term.setOption('fontWeightBold', 'normal');
Published by Tyriar almost 7 years ago
Terminal
constructor