diff --git a/demo/server.js b/demo/server.js index 8a8c5d1139..748546d9b0 100644 --- a/demo/server.js +++ b/demo/server.js @@ -59,13 +59,16 @@ function startServer() { } const cols = parseInt(req.query.cols); const rows = parseInt(req.query.rows); - const term = pty.spawn(process.platform === 'win32' ? 'pwsh.exe' : 'bash', [], { + const isWindows = process.platform === 'win32'; + const term = pty.spawn(isWindows ? 'pwsh.exe' : 'bash', [], { name: 'xterm-256color', cols: cols ?? 80, rows: rows ?? 24, - cwd: process.platform === 'win32' ? undefined : env.PWD, + cwd: isWindows ? undefined : env.PWD, env, - encoding: USE_BINARY ? null : 'utf8' + encoding: USE_BINARY ? null : 'utf8', + useConpty: isWindows, + useConptyDll: isWindows, }); console.log('Created terminal with PID: ' + term.pid); diff --git a/package.json b/package.json index 479d9dc613..6b3f6910a3 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "jsdom": "^18.0.1", "mocha": "^10.1.0", "mustache": "^4.2.0", - "node-pty": "1.1.0-beta5", + "node-pty": "1.1.0-beta19", "nyc": "^15.1.0", "source-map-loader": "^3.0.0", "source-map-support": "^0.5.20", diff --git a/src/browser/Viewport.ts b/src/browser/Viewport.ts index 6a8e155f43..241f4df431 100644 --- a/src/browser/Viewport.ts +++ b/src/browser/Viewport.ts @@ -76,7 +76,7 @@ export class Viewport extends Disposable { element.appendChild(this._scrollableElement.getDomNode()); this._register(toDisposable(() => this._scrollableElement.getDomNode().remove())); - this._styleElement = coreBrowserService.window.document.createElement('style'); + this._styleElement = coreBrowserService.mainDocument.createElement('style'); screenElement.appendChild(this._styleElement); this._register(toDisposable(() => this._styleElement.remove())); this._register(Event.runAndSubscribe(themeService.onChangeColors, () => { diff --git a/src/browser/renderer/dom/DomRendererRowFactory.ts b/src/browser/renderer/dom/DomRendererRowFactory.ts index d71edeb96f..9328043579 100644 --- a/src/browser/renderer/dom/DomRendererRowFactory.ts +++ b/src/browser/renderer/dom/DomRendererRowFactory.ts @@ -24,6 +24,7 @@ export const enum RowCss { UNDERLINE_CLASS = 'xterm-underline', OVERLINE_CLASS = 'xterm-overline', STRIKETHROUGH_CLASS = 'xterm-strikethrough', + BLINK_CLASS = 'xterm-blink', CURSOR_CLASS = 'xterm-cursor', CURSOR_BLINK_CLASS = 'xterm-cursor-blink', CURSOR_STYLE_BLOCK_CLASS = 'xterm-cursor-block', @@ -300,6 +301,10 @@ export class DomRendererRowFactory { classes.push(RowCss.STRIKETHROUGH_CLASS); } + if (cell.isBlink()) { + classes.push(RowCss.BLINK_CLASS); + } + // apply link hover underline late, effectively overrides any previous text-decoration // settings if (isLinkHover) { diff --git a/yarn.lock b/yarn.lock index 5925b86dae..82f5dee877 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3190,11 +3190,6 @@ mustache@^4.2.0: resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== -nan@^2.17.0: - version "2.18.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554" - integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== - nanoid@3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" @@ -3220,6 +3215,11 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +node-addon-api@^7.1.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558" + integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== + node-preload@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/node-preload/-/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301" @@ -3227,12 +3227,12 @@ node-preload@^0.2.1: dependencies: process-on-spawn "^1.0.0" -node-pty@1.1.0-beta5: - version "1.1.0-beta5" - resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-1.1.0-beta5.tgz#364386b7058a93070234064f13164ec1ef914993" - integrity sha512-j3QdgFHnLY0JWxztrvM3g67RaQLOGvytv+C6mFu0PqD+JILlzqfwuoyqRqVxdZZjoOTUXPfSRj1qPVCaCH+eOw== +node-pty@1.1.0-beta19: + version "1.1.0-beta19" + resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-1.1.0-beta19.tgz#a74dc04429903c5ac49ee81a15a24590da67d4f3" + integrity sha512-/p4Zu56EYDdXjjaLWzrIlFyrBnND11LQGP0/L6GEVGURfCNkAlHc3Twg/2I4NPxghimHXgvDlwp7Z2GtvDIh8A== dependencies: - nan "^2.17.0" + node-addon-api "^7.1.0" node-releases@^2.0.12: version "2.0.13"