Merge branch 'master' into extract_vt_features
This commit is contained in:
@@ -32,8 +32,8 @@ To start using xterm.js on your browser, add the `xterm.js` and `xterm.css` to t
|
|||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<link rel="stylesheet" href="node_modules/xterm/dist/xterm.css" />
|
<link rel="stylesheet" href="node_modules/xterm/css/xterm.css" />
|
||||||
<script src="node_modules/xterm/dist/xterm.js"></script>
|
<script src="node_modules/xterm/lib/xterm.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="terminal"></div>
|
<div id="terminal"></div>
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
## xterm-addon-attach
|
||||||
|
|
||||||
|
An addon for [xterm.js](https://github.com/xtermjs/xterm.js) that enables attaching to a web socket. This addon requires xterm.js v4+.
|
||||||
|
|
||||||
|
### Install
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install --save xterm-addon-attach
|
||||||
|
```
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
```ts
|
||||||
|
import { Terminal } from 'xterm';
|
||||||
|
import { FitAddon } from 'xterm-addon-attach';
|
||||||
|
|
||||||
|
const terminal = new Terminal();
|
||||||
|
const attachAddon = new AttachAddon(webSocket);
|
||||||
|
terminal.loadAddon(attachAddon);
|
||||||
|
```
|
||||||
|
|
||||||
|
See the full [API](https://github.com/xtermjs/xterm.js/blob/master/addons/xterm-addon-attach/typings/xterm-addon-attach.d.ts) for more advanced usage.
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "xterm-addon-attach",
|
"name": "xterm-addon-attach",
|
||||||
"version": "0.1.0",
|
"version": "0.2.0",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "The xterm.js authors",
|
"name": "The xterm.js authors",
|
||||||
"url": "https://xtermjs.org/"
|
"url": "https://xtermjs.org/"
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
## xterm-addon-fit
|
||||||
|
|
||||||
|
An addon for [xterm.js](https://github.com/xtermjs/xterm.js) that enables fitting the terminal's dimensions to a containing element. This addon requires xterm.js v4+.
|
||||||
|
|
||||||
|
### Install
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install --save xterm-addon-fit
|
||||||
|
```
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
```ts
|
||||||
|
import { Terminal } from 'xterm';
|
||||||
|
import { FitAddon } from 'xterm-addon-fit';
|
||||||
|
|
||||||
|
const terminal = new Terminal();
|
||||||
|
const fitAddon = new FitAddon();
|
||||||
|
terminal.loadAddon(fitAddon);
|
||||||
|
terminal.open(containerElement);
|
||||||
|
fitAddon.fit();
|
||||||
|
```
|
||||||
|
|
||||||
|
See the full [API](https://github.com/xtermjs/xterm.js/blob/master/addons/xterm-addon-fit/typings/xterm-addon-fit.d.ts) for more advanced usage.
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "xterm-addon-fit",
|
"name": "xterm-addon-fit",
|
||||||
"version": "0.1.0",
|
"version": "0.2.0",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "The xterm.js authors",
|
"name": "The xterm.js authors",
|
||||||
"url": "https://xtermjs.org/"
|
"url": "https://xtermjs.org/"
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
## xterm-addon-search
|
||||||
|
|
||||||
|
An addon for [xterm.js](https://github.com/xtermjs/xterm.js) that enables searching the buffer. This addon requires xterm.js v4+.
|
||||||
|
|
||||||
|
### Install
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install --save xterm-addon-search
|
||||||
|
```
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
```ts
|
||||||
|
import { Terminal } from 'xterm';
|
||||||
|
import { SearchAddon } from 'xterm-addon-search';
|
||||||
|
|
||||||
|
const terminal = new Terminal();
|
||||||
|
const searchAddon = new SearchAddon();
|
||||||
|
terminal.loadAddon(searchAddon);
|
||||||
|
searchAddon.findNext('foo');
|
||||||
|
```
|
||||||
|
|
||||||
|
See the full [API](https://github.com/xtermjs/xterm.js/blob/master/addons/xterm-addon-search/typings/xterm-addon-search.d.ts) for more advanced usage.
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "xterm-addon-search",
|
"name": "xterm-addon-search",
|
||||||
"version": "0.1.0",
|
"version": "0.2.0",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "The xterm.js authors",
|
"name": "The xterm.js authors",
|
||||||
"url": "https://xtermjs.org/"
|
"url": "https://xtermjs.org/"
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
## xterm-addon-web-links
|
## xterm-addon-web-links
|
||||||
|
|
||||||
[](https://dev.azure.com/xtermjs/xterm-addon-web-links/_build/latest?definitionId=5&branchName=master)
|
An addon for [xterm.js](https://github.com/xtermjs/xterm.js) that enables web links. This addon requires xterm.js v4+.
|
||||||
|
|
||||||
An addon for [xterm.js](https://github.com/xtermjs/xterm.js) that enabled web links. This addon requires xterm.js 3.14+.
|
|
||||||
|
|
||||||
### Install
|
### Install
|
||||||
|
|
||||||
@@ -20,4 +18,4 @@ const terminal = new Terminal();
|
|||||||
terminal.loadAddon(new WebLinksAddon());
|
terminal.loadAddon(new WebLinksAddon());
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also specify a custom handler and options, see the [API](https://github.com/xtermjs/xterm-addon-web-links/blob/master/typings/web-links.d.ts) for more details.
|
See the full [API](https://github.com/xtermjs/xterm.js/blob/master/addons/xterm-addon-web-links/typings/xterm-addon-web-links.d.ts) for more advanced usage.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "xterm-addon-web-links",
|
"name": "xterm-addon-web-links",
|
||||||
"version": "0.1.0",
|
"version": "0.2.0",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "The xterm.js authors",
|
"name": "The xterm.js authors",
|
||||||
"url": "https://xtermjs.org/"
|
"url": "https://xtermjs.org/"
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
## xterm-addon-webgl
|
||||||
|
|
||||||
|
An addon for [xterm.js](https://github.com/xtermjs/xterm.js) that enables a WebGL-based renderer. This addon requires xterm.js v4+.
|
||||||
|
|
||||||
|
⚠️ This is an experimental addon that is [missing some features and may be unstable](https://github.com/xtermjs/xterm.js/issues?q=is%3Aopen+is%3Aissue+label%3Aarea%2Faddon%2Fwebgl) ⚠️
|
||||||
|
|
||||||
|
### Install
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install --save xterm-addon-webgl
|
||||||
|
```
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
```ts
|
||||||
|
import { Terminal } from 'xterm';
|
||||||
|
import { WebglAddon } from 'xterm-addon-webgl';
|
||||||
|
|
||||||
|
const terminal = new Terminal();
|
||||||
|
terminal.loadAddon(new WebglAddon());
|
||||||
|
```
|
||||||
|
|
||||||
|
See the full [API](https://github.com/xtermjs/xterm.js/blob/master/addons/xterm-addon-webgl/typings/xterm-addon-webgl.d.ts) for more advanced usage.
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "xterm-addon-webgl",
|
"name": "xterm-addon-webgl",
|
||||||
"version": "0.1.0",
|
"version": "0.2.0",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "The xterm.js authors",
|
"name": "The xterm.js authors",
|
||||||
"url": "https://xtermjs.org/"
|
"url": "https://xtermjs.org/"
|
||||||
|
|||||||
@@ -30,9 +30,11 @@ const addonPackageDirs = [
|
|||||||
path.resolve(__dirname, '../addons/xterm-addon-web-links'),
|
path.resolve(__dirname, '../addons/xterm-addon-web-links'),
|
||||||
path.resolve(__dirname, '../addons/xterm-addon-webgl')
|
path.resolve(__dirname, '../addons/xterm-addon-webgl')
|
||||||
];
|
];
|
||||||
|
console.log(`Checking if addons need to be published`);
|
||||||
addonPackageDirs.forEach(p => {
|
addonPackageDirs.forEach(p => {
|
||||||
const addon = path.basename(p);
|
const addon = path.basename(p);
|
||||||
if (changedFiles.some(e => e.indexOf(addon) !== -1)) {
|
if (changedFiles.some(e => e.indexOf(addon) !== -1)) {
|
||||||
|
console.log(`Try publish ${addon}`);
|
||||||
checkAndPublishPackage(p);
|
checkAndPublishPackage(p);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
+2
-3
@@ -32,9 +32,8 @@ function startServer() {
|
|||||||
res.sendFile(__dirname + '/style.css');
|
res.sendFile(__dirname + '/style.css');
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/dist/client-bundle.js', function(req, res){
|
app.use('/dist', express.static(__dirname + '/dist'));
|
||||||
res.sendFile(__dirname + '/dist/client-bundle.js');
|
app.use('/src', express.static(__dirname + '/src'));
|
||||||
});
|
|
||||||
|
|
||||||
app.post('/terminals', function (req, res) {
|
app.post('/terminals', function (req, res) {
|
||||||
const env = Object.assign({}, process.env);
|
const env = Object.assign({}, process.env);
|
||||||
|
|||||||
+2
-1
@@ -9,7 +9,8 @@
|
|||||||
"xterm-addon-attach": ["../addons/xterm-addon-attach"],
|
"xterm-addon-attach": ["../addons/xterm-addon-attach"],
|
||||||
"xterm-addon-fit": ["../addons/xterm-addon-fit"],
|
"xterm-addon-fit": ["../addons/xterm-addon-fit"],
|
||||||
"xterm-addon-search": ["../addons/xterm-addon-search"],
|
"xterm-addon-search": ["../addons/xterm-addon-search"],
|
||||||
"xterm-addon-web-links": ["../addons/xterm-addon-web-links"]
|
"xterm-addon-web-links": ["../addons/xterm-addon-web-links"],
|
||||||
|
"xterm-addon-webgl": ["../addons/xterm-addon-webgl"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"include": [
|
"include": [
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "xterm",
|
"name": "xterm",
|
||||||
"description": "Full xterm terminal, in your browser",
|
"description": "Full xterm terminal, in your browser",
|
||||||
"version": "3.14.0",
|
"version": "4.0.0",
|
||||||
"main": "lib/xterm.js",
|
"main": "lib/xterm.js",
|
||||||
"style": "css/xterm.css",
|
"style": "css/xterm.css",
|
||||||
"types": "typings/xterm.d.ts",
|
"types": "typings/xterm.d.ts",
|
||||||
|
|||||||
@@ -211,7 +211,7 @@ export class Linkifier implements ILinkifier {
|
|||||||
*/
|
*/
|
||||||
private _doLinkifyRow(rowIndex: number, text: string, matcher: ILinkMatcher): void {
|
private _doLinkifyRow(rowIndex: number, text: string, matcher: ILinkMatcher): void {
|
||||||
// clone regex to do a global search on text
|
// clone regex to do a global search on text
|
||||||
const rex = new RegExp(matcher.regex.source, matcher.regex.flags + 'g');
|
const rex = new RegExp(matcher.regex.source, (matcher.regex.flags || '') + 'g');
|
||||||
let match;
|
let match;
|
||||||
let stringIndex = -1;
|
let stringIndex = -1;
|
||||||
while ((match = rex.exec(text)) !== null) {
|
while ((match = rex.exec(text)) !== null) {
|
||||||
|
|||||||
@@ -664,7 +664,7 @@ export class SelectionService implements ISelectionService {
|
|||||||
this._removeMouseDownListeners();
|
this._removeMouseDownListeners();
|
||||||
|
|
||||||
if (this.selectionText.length <= 1 && timeElapsed < ALT_CLICK_MOVE_CURSOR_TIME) {
|
if (this.selectionText.length <= 1 && timeElapsed < ALT_CLICK_MOVE_CURSOR_TIME) {
|
||||||
if (event.altKey) {
|
if (event.altKey && this._bufferService.buffer.ybase === this._bufferService.buffer.ydisp) {
|
||||||
const coordinates = this._mouseService.getCoords(
|
const coordinates = this._mouseService.getCoords(
|
||||||
event,
|
event,
|
||||||
this._element,
|
this._element,
|
||||||
|
|||||||
Vendored
+1
-1
@@ -804,7 +804,7 @@ declare module 'xterm' {
|
|||||||
*/
|
*/
|
||||||
export interface ITerminalAddon extends IDisposable {
|
export interface ITerminalAddon extends IDisposable {
|
||||||
/**
|
/**
|
||||||
* (EXPERIMENTAL) This is called when the addon is activated.
|
* This is called when the addon is activated.
|
||||||
*/
|
*/
|
||||||
activate(terminal: Terminal): void;
|
activate(terminal: Terminal): void;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ module.exports = {
|
|||||||
output: {
|
output: {
|
||||||
filename: 'xterm.js',
|
filename: 'xterm.js',
|
||||||
path: path.resolve('./lib'),
|
path: path.resolve('./lib'),
|
||||||
library: 'Terminal',
|
|
||||||
libraryTarget: 'umd'
|
libraryTarget: 'umd'
|
||||||
},
|
},
|
||||||
mode: 'production'
|
mode: 'production'
|
||||||
|
|||||||
Reference in New Issue
Block a user