Delay registration of command start marker

Fixes #143798
This commit is contained in:
Daniel Imms 2022-02-23 14:10:11 -08:00
parent 430cf5b4cc
commit b593e59f5c
7 changed files with 36 additions and 27 deletions

View file

@ -85,12 +85,12 @@
"vscode-proxy-agent": "^0.12.0",
"vscode-regexpp": "^3.1.0",
"vscode-textmate": "6.0.0",
"xterm": "4.18.0-beta.10",
"xterm": "4.18.0-beta.11",
"xterm-addon-search": "0.9.0-beta.10",
"xterm-addon-serialize": "0.7.0-beta.9",
"xterm-addon-unicode11": "0.4.0-beta.3",
"xterm-addon-webgl": "0.12.0-beta.24",
"xterm-headless": "4.18.0-beta.10",
"xterm-headless": "4.18.0-beta.11",
"yauzl": "^2.9.2",
"yazl": "^2.4.3"
},

View file

@ -24,12 +24,12 @@
"vscode-proxy-agent": "^0.12.0",
"vscode-regexpp": "^3.1.0",
"vscode-textmate": "6.0.0",
"xterm": "4.18.0-beta.10",
"xterm": "4.18.0-beta.11",
"xterm-addon-search": "0.9.0-beta.10",
"xterm-addon-serialize": "0.7.0-beta.9",
"xterm-addon-unicode11": "0.4.0-beta.3",
"xterm-addon-webgl": "0.12.0-beta.24",
"xterm-headless": "4.18.0-beta.10",
"xterm-headless": "4.18.0-beta.11",
"yauzl": "^2.9.2",
"yazl": "^2.4.3"
},

View file

@ -10,7 +10,7 @@
"tas-client-umd": "0.1.4",
"vscode-oniguruma": "1.6.1",
"vscode-textmate": "6.0.0",
"xterm": "4.18.0-beta.10",
"xterm": "4.18.0-beta.11",
"xterm-addon-search": "0.9.0-beta.10",
"xterm-addon-unicode11": "0.4.0-beta.3",
"xterm-addon-webgl": "0.12.0-beta.24"

View file

@ -128,7 +128,7 @@ xterm-addon-webgl@0.12.0-beta.24:
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.12.0-beta.24.tgz#5c17256933991856554c95c9bd1eaab42e9727a0"
integrity sha512-+wZxKReEOlfN9JRHyikoffA6Do61/THR7QY35ajkQo0lLutKr6hTd/TLTuZh0PhFVelgTgudpXqlP++Lc0WFIA==
xterm@4.18.0-beta.10:
version "4.18.0-beta.10"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.18.0-beta.10.tgz#a13cfeaca183e34302e1b524c98a40e4d66250c8"
integrity sha512-DPSx+M5hPni0bqJeGfSZ3Ba3V7QHtjix9kvVnIZdzeUPbMLH1A4p1YeXbA1mBMT2OERzyni18j0tONcJwTiyDg==
xterm@4.18.0-beta.11:
version "4.18.0-beta.11"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.18.0-beta.11.tgz#e0a92cb2917fcd5d122d6e64c2cf189123f009c1"
integrity sha512-7VrM7tTuHWzcNM3wSaYmju2O+Rab4xwZPpZZckCI0SiMdLBlU4Rq3xm9FI4v5WqWb0Bor7spDF1+tENSszxhdQ==

View file

@ -947,15 +947,15 @@ xterm-addon-webgl@0.12.0-beta.24:
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.12.0-beta.24.tgz#5c17256933991856554c95c9bd1eaab42e9727a0"
integrity sha512-+wZxKReEOlfN9JRHyikoffA6Do61/THR7QY35ajkQo0lLutKr6hTd/TLTuZh0PhFVelgTgudpXqlP++Lc0WFIA==
xterm-headless@4.18.0-beta.10:
version "4.18.0-beta.10"
resolved "https://registry.yarnpkg.com/xterm-headless/-/xterm-headless-4.18.0-beta.10.tgz#51aa072b84f5deb52ff5cea90f2c71649d843c12"
integrity sha512-mptl6m7Z2pKFWmS70ElsZHtkMDd2H1SIf5faMWmh9tMmPIzb7ohW9dRMqtD/7Q0G92remSpnO8jcTyjh7veI/g==
xterm-headless@4.18.0-beta.11:
version "4.18.0-beta.11"
resolved "https://registry.yarnpkg.com/xterm-headless/-/xterm-headless-4.18.0-beta.11.tgz#d93fce9eb91605f11a028d7a29bd16c6d77830da"
integrity sha512-5Jb/hhSp02CWkEeSfmiSaSaXBZslGekR8pLHTN8oJzTyV0P7U6X3ZfJWoNJp/ZPAOvDN33LcRRNr7mq0w/90Sw==
xterm@4.18.0-beta.10:
version "4.18.0-beta.10"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.18.0-beta.10.tgz#a13cfeaca183e34302e1b524c98a40e4d66250c8"
integrity sha512-DPSx+M5hPni0bqJeGfSZ3Ba3V7QHtjix9kvVnIZdzeUPbMLH1A4p1YeXbA1mBMT2OERzyni18j0tONcJwTiyDg==
xterm@4.18.0-beta.11:
version "4.18.0-beta.11"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.18.0-beta.11.tgz#e0a92cb2917fcd5d122d6e64c2cf189123f009c1"
integrity sha512-7VrM7tTuHWzcNM3wSaYmju2O+Rab4xwZPpZZckCI0SiMdLBlU4Rq3xm9FI4v5WqWb0Bor7spDF1+tENSszxhdQ==
yallist@^4.0.0:
version "4.0.0"

View file

@ -3,6 +3,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { timeout } from 'vs/base/common/async';
import { Emitter } from 'vs/base/common/event';
import { ILogService } from 'vs/platform/log/common/log';
import { ICommandDetectionCapability, TerminalCapability, ITerminalCommand } from 'vs/workbench/contrib/terminal/common/capabilities/capabilities';
@ -95,8 +96,6 @@ export class CommandDetectionCapability implements ICommandDetectionCapability {
handleCommandStart(): void {
this._currentCommand.commandStartX = this._terminal.buffer.active.cursorX;
this._currentCommand.commandStartMarker = this._terminal.registerMarker(0);
this._onCommandStarted.fire({ marker: this._currentCommand.commandStartMarker } as ITerminalCommand);
// On Windows track all cursor movements after the command start sequence
if (this._isWindowsPty) {
@ -109,6 +108,16 @@ export class CommandDetectionCapability implements ICommandDetectionCapability {
}
}
});
// HACK: Fire command started on the following frame on Windows to allow the cursor
// position to update as conpty often prints the sequence on a different line to the
// actual line the command started on.
timeout(0).then(() => {
this._currentCommand.commandStartMarker = this._terminal.registerMarker(0);
this._onCommandStarted.fire({ marker: this._currentCommand.commandStartMarker } as ITerminalCommand);
});
} else {
this._currentCommand.commandStartMarker = this._terminal.registerMarker(0);
this._onCommandStarted.fire({ marker: this._currentCommand.commandStartMarker } as ITerminalCommand);
}
this._logService.debug('CommandDetectionCapability#handleCommandStart', this._currentCommand.commandStartX, this._currentCommand.commandStartMarker?.line);
}

View file

@ -12367,15 +12367,15 @@ xterm-addon-webgl@0.12.0-beta.24:
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.12.0-beta.24.tgz#5c17256933991856554c95c9bd1eaab42e9727a0"
integrity sha512-+wZxKReEOlfN9JRHyikoffA6Do61/THR7QY35ajkQo0lLutKr6hTd/TLTuZh0PhFVelgTgudpXqlP++Lc0WFIA==
xterm-headless@4.18.0-beta.10:
version "4.18.0-beta.10"
resolved "https://registry.yarnpkg.com/xterm-headless/-/xterm-headless-4.18.0-beta.10.tgz#51aa072b84f5deb52ff5cea90f2c71649d843c12"
integrity sha512-mptl6m7Z2pKFWmS70ElsZHtkMDd2H1SIf5faMWmh9tMmPIzb7ohW9dRMqtD/7Q0G92remSpnO8jcTyjh7veI/g==
xterm-headless@4.18.0-beta.11:
version "4.18.0-beta.11"
resolved "https://registry.yarnpkg.com/xterm-headless/-/xterm-headless-4.18.0-beta.11.tgz#d93fce9eb91605f11a028d7a29bd16c6d77830da"
integrity sha512-5Jb/hhSp02CWkEeSfmiSaSaXBZslGekR8pLHTN8oJzTyV0P7U6X3ZfJWoNJp/ZPAOvDN33LcRRNr7mq0w/90Sw==
xterm@4.18.0-beta.10:
version "4.18.0-beta.10"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.18.0-beta.10.tgz#a13cfeaca183e34302e1b524c98a40e4d66250c8"
integrity sha512-DPSx+M5hPni0bqJeGfSZ3Ba3V7QHtjix9kvVnIZdzeUPbMLH1A4p1YeXbA1mBMT2OERzyni18j0tONcJwTiyDg==
xterm@4.18.0-beta.11:
version "4.18.0-beta.11"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.18.0-beta.11.tgz#e0a92cb2917fcd5d122d6e64c2cf189123f009c1"
integrity sha512-7VrM7tTuHWzcNM3wSaYmju2O+Rab4xwZPpZZckCI0SiMdLBlU4Rq3xm9FI4v5WqWb0Bor7spDF1+tENSszxhdQ==
y18n@^3.2.1:
version "3.2.2"