jiebi/CodeConvo huggingface dataset:
Change:
testing Version 1.15.0-insider Commit Date 2017-08-01T05:10:12.703Z Shell 1.6.6 Renderer 56.0.2924.87 Node 7.4.0 Architecture x64 Linux Testing "Rename some terminals through the gear icon on the right." Start VS Code Open a new terminal with ctrl+backtick Press , then type in Click on the gear, you can rename Delete the terminal Open a new terminal with ctrl+backtick Press , type in Click on the gear Result: Can no longer rename.

Discussion:
createInstance(shell?: IShellLaunchConfig, wasNewTerminalAction?: boolean): ITerminalInstance; getInstanceFromId(terminalId: number): ITerminalInstance; <ins> getInstanceFromIndex(terminalIndex: number): ITerminalInstance; </ins> getInstanceLabels(): string[]; getActiveInstance(): ITerminalInstance; setActiveInstance(terminalInstance: ITerminalInstance): void;

return this.terminalInstances[this._getIndexFromId(terminalId)]; } <ins> public getInstanceFromIndex(terminalIndex: number): ITerminalInstance { return this.terminalInstances[terminalIndex]; } </ins> public setActiveInstance(terminalInstance: ITerminalInstance): void { this.setActiveInstanceByIndex(this._getIndexFromId(terminalInstance.id)); }

} public run(terminal?: TerminalEntry): TPromise<any> { <del> const terminalInstance = terminal ? this.terminalService.getInstanceFromId(parseInt(terminal.getLabel().split(':')[0], 10)) : this.terminalService.getActiveInstance(); </del> <ins> const terminalInstance = terminal ? this.terminalService.getInstanceFromIndex(parseInt(terminal.getLabel().split(':')[0], 10) - 1) : this.terminalService.getActiveInstance(); </ins> if (!terminalInstance) { return TPromise.as(void 0); }
Change:
Steps to reproduce: and kill terminal very quickly This can likely happen when the terminal is killed during a call.
I can still repro this with the same stack, I don't think the PR fixes the right issue. It fails on this line, because is null: A null xterm object is passed into the constructor, which implies that the terminal instance was disposed, so I think the problem is the terminalInstance being disposed while is running:

Discussion:
} public dispose(): void { <ins> if (this._windowsShellHelper) { this._windowsShellHelper.dispose(); } </ins> if (this._linkHandler) { this._linkHandler.dispose(); }

export class WindowsShellHelper { private _childProcessIdStack: number[]; private _onCheckShell: Emitter<TPromise<string>>; <ins> private _wmicProcess: cp.ChildProcess; private _isDisposed: boolean; </ins> public constructor( private _rootProcessId: number,

} this._childProcessIdStack = [this._rootProcessId]; <ins> this._isDisposed = false; </ins> this._onCheckShell = new Emitter<TPromise<string>>(); // The debounce is necessary to prevent multiple processes from spawning when // the enter key or output is spammed

private checkShell(): void { if (platform.isWindows && this._terminalInstance.isTitleSetByProcess) { <del> this.getShellName().then(title => this._terminalInstance.setTitle(title, true)); </del> <ins> this.getShellName().then(title => { if (!this._isDisposed) { this._terminalInstance.setTitle(title, true); } }); </ins> } } private getChildProcessDetails(pid: number): TPromise<{ executable: string, pid: number }[]> { return new TPromise((resolve, reject) => { <del> cp.execFile('wmic.exe', ['process', 'where', `parentProcessId=${pid}`, 'get', 'ExecutablePath,ProcessId'], (err, stdout, stderr) => { </del> <ins> this._wmicProcess = cp.execFile('wmic.exe', ['process', 'where', `parentProcessId=${pid}`, 'get', 'ExecutablePath,ProcessId'], (err, stdout, stderr) => { this._wmicProcess = null; if (this._isDisposed) { reject(null); } </ins> if (err) { reject(err); } else if (stderr.length > 0) {

// Save the pid in the stack and keep looking for children of that child this._childProcessIdStack.push(result[0].pid); return this.refreshShellProcessTree(result[0].pid, result[0].executable); <del> }, error => { return error; }); </del> <ins> }, error => { if (!this._isDisposed) { return error; } }); } public dispose(): void { this._isDisposed = true; if (this._wmicProcess) { this._wmicProcess.kill(); } </ins> } /**
Change:
Steps to reproduce: and kill terminal very quickly This can likely happen when the terminal is killed during a call.
I can still repro this with the same stack, I don't think the PR fixes the right issue. It fails on this line, because is null: A null xterm object is passed into the constructor, which implies that the terminal instance was disposed, so I think the problem is the terminalInstance being disposed while is running:

Discussion:
this._createXterm(); if (platform.isWindows) { <del> this._processReady.then(() => this._windowsShellHelper = new WindowsShellHelper(this._processId, this._shellLaunchConfig.executable, this, this._xterm)); </del> <ins> this._processReady.then(() => { if (!this._isDisposed) { this._windowsShellHelper = new WindowsShellHelper(this._processId, this._shellLaunchConfig.executable, this, this._xterm); } }); </ins> } // Only attach xterm.js to the DOM if the terminal panel has been opened before.
Change:
This is to track all the issues surrounding the terminal switcher for the August iteration. [x] move keyboard focus [x] add create new terminal option [x] add kill terminal actionbar item to entries and [x] fix tab focus for action items [x] fix focus on arrow keys [x] fix spacing between actionbar icons

Discussion:
} .monaco-tree .monaco-tree-row > .content.actions > .primary-action-bar .action-label { <del> margin-right: 0.2em; </del> <ins> margin-right: 0.4em; </ins> margin-top: 4px; background-repeat: no-repeat; width: 16px;
Change:
VSCode Version: Code 1.15.0 (, 2017-08-09T20:16:06.988Z) OS Version: Windows_NT ia32 10.0. Extensions: ExtensionVersion ------ html-snippets0.1.0 vscode-javascript-snippet-pack0.1.5 path-intellisense1.4.2 vscode-weapp-api0.1.8 vscode-wxml0.1.9 githistory0.2.3 vscode-html-css0.1.7 vue-snippets0.1.2 beautify1.1.1 output-colorizer0.1.2 path-autocomplete1.6.1 vue0.1.5 vetur0.9.3 vue-beautify2.0.4 java0.8.0 code-settings-sync2.8.2 stylelint0.28.0 JavaScriptSnippets1.4.1
Does this issue occur when launching VS Code with extensions disabled () ?
My extensions are enable. I had recorded the steps with screenshots. , the cursor in line 480 ! , the curson in line 177 ! , I click and the cursor in the previous line 480, but the scroll bar had not scroll. !
And the don't support cross editor tab
cursorUndo is designed to not cross-tab. Go Back/Go Forward will cross tabs, but it will omit small selection changes.

Discussion:
import { editorCommand, ServicesAccessor, EditorCommand } from 'vs/editor/common/editorCommonExtensions'; import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; import { Disposable } from 'vs/base/common/lifecycle'; <del> import { ICommonCodeEditor, IEditorContribution } from 'vs/editor/common/editorCommon'; </del> <ins> import { ICommonCodeEditor, IEditorContribution, ScrollType } from 'vs/editor/common/editorCommon'; </ins> import { EditorContextKeys } from 'vs/editor/common/editorContextKeys'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { editorContribution } from 'vs/editor/browser/editorBrowserExtensions';

this._undoStack.push(this._prevState); if (this._undoStack.length > 50) { // keep the cursor undo stack bounded <del> this._undoStack = this._undoStack.splice(0, this._undoStack.length - 50); </del> <ins> this._undoStack.shift(); </ins> } }

if (!prevState.equals(currState)) { this._isCursorUndo = true; this._editor.setSelections(prevState.selections); <ins> this._editor.revealRangeInCenterIfOutsideViewport(prevState.selections[0], ScrollType.Smooth); </ins> this._isCursorUndo = false; return; }
Change:
VSCode Version: Code 1.15.0 (, 2017-08-09T20:06:21.685Z) OS Version: Darwin x64 16.7.0 Extensions: ExtensionVersion ------ vscode-generate-getter-setter0.4.2 bazel-code0.1.8 path-intellisense1.4.2 vscode-svgviewer1.4.2 vscode-eslint1.2.11 gitlens4.3.3 tslint0.17.0 git-project-manager1.3.2 auto-rename-tag0.0.14 docthis0.4.7 contextualduplicate0.2.0 debugger-for-chrome3.1.7 vscode-subword-navigation1.1.5 Align0.2.0 rewrap1.4.2 clang-format1.5.0 vscode-proto30.1.2 (3 theme extensions excluded) Steps to Reproduce: an extension to its Contributions tab to copy its command, e.g. Expected Results: Adding keybindings for an extension should be really easy; at the very least, copy/paste should work. Actual Results: I can't select text, so I can't copy it.

Discussion:
height: calc(100% - 36px); position: relative; overflow: hidden; <ins> user-select: text; </ins> } .extension-editor > .body > .content.loading {
Change:
Upstream issue: Please verify this on Linux by opening tmux in mouse mode and ensuring regular mouse selection triggers "tmux selection" and shift+mouse selection triggers the regular terminal selection.
I thought I verified this last month?
this was Mac only last month, needs verification on Linux.

Discussion:
"resolved": "https://registry.npmjs.org/winreg/-/winreg-1.2.0.tgz" }, "xterm": { <del> "version": "2.8.1", "from": "Tyriar/xterm.js#vscode-release/1.15", "resolved": "git+https://github.com/Tyriar/xterm.js.git#75ffea5ebd5510ad0478b017c3946cb8d504855f" </del> <ins> "version": "2.9.1", "from": "Tyriar/xterm.js#vscode-release/1.16", "resolved": "git+https://github.com/Tyriar/xterm.js.git#74fde417c97962730a5fbbc8e8e7dcd47e1b897b" </ins> }, "yauzl": { "version": "2.8.0",

"vscode-ripgrep": "0.0.25", "vscode-textmate": "^3.1.5", "winreg": "1.2.0", <del> "xterm": "Tyriar/xterm.js#vscode-release/1.15", </del> <ins> "xterm": "Tyriar/xterm.js#vscode-release/1.16", </ins> "yauzl": "2.8.0" }, "devDependencies": {

declare module 'xterm' { type LinkMatcherHandler = (event: MouseEvent, uri: string) => boolean | void; <del> class Terminal { </del> <ins> export class Terminal { </ins> cols: number; rows: number; ydisp: number;

*/ static loadAddon(addon: string): void; } <del> export = Terminal; </del> }  No newline at end of file

import Event, { Emitter } from 'vs/base/common/event'; import Uri from 'vs/base/common/uri'; import { WindowsShellHelper } from 'vs/workbench/parts/terminal/electron-browser/windowsShellHelper'; <del> import XTermTerminal = require('xterm'); </del> <ins> import { Terminal as XTermTerminal } from 'xterm'; </ins> import { Dimension } from 'vs/base/browser/builder'; import { IContextKeyService, IContextKey } from 'vs/platform/contextkey/common/contextkey'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';

import { TPromise } from 'vs/base/common/winjs.base'; import { Emitter, debounceEvent } from 'vs/base/common/event'; import { ITerminalInstance } from 'vs/workbench/parts/terminal/common/terminal'; <del> import XTermTerminal = require('xterm'); </del> <ins> import { Terminal as XTermTerminal } from 'xterm'; </ins> const SHELL_EXECUTABLES = ['cmd.exe', 'powershell.exe', 'bash.exe'];
Change:
Press ctrl+tab, hold ctrl Use arrow keys The selection moves down two rows on each press ! Probably not related to your change but can you check if your new arrow key handler is involved somehow?
Looks like this is indeed my new arrow key handler's problem. I thought that the would prevent things like this from happening though?
It will keep it from bubbling up to other elements but I don't think it should prevent it from calling other handlers on the same element. So I think the other listener must actually be on the same element.

Discussion:
// Allows focus to switch to next/previous entry after tab into an actionbar item DOM.addDisposableListener(this.treeContainer.getHTMLElement(), DOM.EventType.KEY_DOWN, (e: KeyboardEvent) => { const keyboardEvent: StandardKeyboardEvent = new StandardKeyboardEvent(e); <ins> // Only handle when not in quick navigation mode if (this.quickNavigateConfiguration) { return; } </ins> if (keyboardEvent.keyCode === KeyCode.DownArrow || keyboardEvent.keyCode === KeyCode.UpArrow || keyboardEvent.keyCode === KeyCode.PageDown || keyboardEvent.keyCode === KeyCode.PageUp) { DOM.EventHelper.stop(e, true); this.navigateInTree(keyboardEvent.keyCode, keyboardEvent.shiftKey);
Change:
VSCode Version: Code 1.15.1 (, 2017-08-16T17:15:57.756Z) OS Version: Darwin x64 16.3.0 (macOS) Extensions: --disable-extensions Steps to Reproduce: any file. on an IME such as macOS standard IME or Google Japanese IME. some texts with the IME. . Expected: Delete the last character on the IME just like backspace. ]() (in CotEditor) Actual: Delete the last character on the IME and the character before the IME input. ]() In the same way, ctrl-A, ctrl-F, and ctrl-B don't work correctly. I think this is because key down event propagation is not stopped even if the IME is enabled. and are related to this issue. <!-- Launch with to check. --Reproduces without extensions: Yes
Fixed via PR

Discussion:
this._nextCommand = ReadFromTextArea.Type; this._register(dom.addStandardDisposableListener(textArea.domNode, 'keydown', (e: IKeyboardEvent) => { <del> if (this._isDoingComposition && e.equals(KeyCode.KEY_IN_COMPOSITION)) { </del> <ins> if (this._isDoingComposition && e.keyCode === KeyCode.KEY_IN_COMPOSITION) { </ins> // Stop propagation for keyDown events if the IME is processing key input e.stopPropagation(); }
Change:
VSCode Version: Code - Insiders 1.17.0-insider (, 2017-09-08T10:13:13.694Z) OS Version: Darwin x64 16.7.0 Extensions: Extensions are disabled Steps to Reproduce: a workspace file with the following order of root folders in the multi root workspace is not as expected: ! With more root folders, the order is completely unpredictable, but always consistent. Reproduces without extensions: Yes
This appears to be an issue with how v8 implements as an unstable sort. Preliminary fix at

Discussion:
private sortOrder: SortOrder; constructor( <del> @IConfigurationService private configurationService: IConfigurationService </del> <ins> @IConfigurationService private configurationService: IConfigurationService, @IWorkspaceContextService private contextService: IWorkspaceContextService </ins> ) { this.toDispose = [];

// Do not sort roots if (statA.isRoot) { <ins> if (statB.isRoot) { const ws = this.contextService.getWorkspace(); return ws.roots.indexOf(statA.resource) - ws.roots.indexOf(statB.resource); } </ins> return -1; } if (statB.isRoot) {
Change:
Disabled in
In order to fix a VS Code crash caused by a regex catastrophic backtracking case, I changed the unix link link regex (). I had to disable some of the terminal link line/column Unix cases ( in ) as I don't totally understand what's happening. For some reason doesn't seem to work for all the anymore, specifically these ones: See this change which gets 2/4 cases working: Any insights would be great :smiley:
just saw this issue and fix. will have a detailed look in this on weekend, will update you on any findings.
did you get a chance to look at this?
got new machine, i have just started setup. Will update soon.
I tried running test from terminal using , but it seems to be stuck, shows nothing on terminal. Is there any way to run specific test or something i am missing. Thanks
Hmm... I'm sure there is a way as it uses mocha, I'm not sure what it is though as the tests always run so fast for me.
I have updated the tests and ts file, now tests are working fine. Please review. Thanks

Discussion:
// Changing any regex may effect this value, hence changes this as well if required. const winLineAndColumnMatchIndex = 12; <del> const unixLineAndColumnMatchIndex = 23; </del> <ins> const unixLineAndColumnMatchIndex = 11; </ins> // Each line and column clause have 6 groups (ie no. of expressions in round brackets) const lineAndColumnClauseGroupCount = 6;

const supportedLinkFormats: LinkFormatInfo[] = [ { urlFormat: '{0}' }, <del> // { urlFormat: '{0} on line {1}', line: '5' }, // { urlFormat: '{0} on line {1}, column {2}', line: '5', column: '3' }, // { urlFormat: '{0}:line {1}', line: '5' }, // { urlFormat: '{0}:line {1}, column {2}', line: '5', column: '3' }, </del> <ins> { urlFormat: '{0} on line {1}', line: '5' }, { urlFormat: '{0} on line {1}, column {2}', line: '5', column: '3' }, { urlFormat: '{0}:line {1}', line: '5' }, { urlFormat: '{0}:line {1}, column {2}', line: '5', column: '3' }, </ins> { urlFormat: '{0}({1})', line: '5' }, { urlFormat: '{0} ({1})', line: '5' }, { urlFormat: '{0}({1},{2})', line: '5', column: '3' },
Change:
Testing save this file as UTF8 with bom (I think it is already) configure run run Obseve: the scrollbar slider becomes very small and it is difficult to grab it with the mouse It would be nice if the mouse cursor would not be an or if it would give hover feedback: !
I'd like to pick this up, if possible.

Discussion:
} .monaco-workbench .panel.integrated-terminal .xterm-viewport::-webkit-scrollbar-thumb { <ins> min-height: 20px; </ins> background-color: inherit; }
Change:
VSCode Version: Code - Insiders 1.17.0-insider (, 2017-09-26T05:24:48.911Z) OS Version: Windows_NT x64 10.0. Extensions: none Testing Steps to Reproduce: some change Staged (Amend) I'm asked for a new commit message without the existing one as the default. I usually want to keep the existing one.
yeah may be we can add an option to keep the older message. I mean prefill the text box with the latest commit message..
I'm assuming this is not in version 1.18.1. Can I expect this in 1.18.2? Because I'm looking for this to amend the commit properly (both the diff and the message). I keep having to go back to the command line and issue because VSCode's Commit Staged (Amend) option shows a blank message.
No, this will be in 1.19.
I upgrade to 1.19, and this works, however we use gerrit which has a Change-Id in the commit message, and the newline is removed when to the commit message box. Which means when I upload the change to gerrit, it becomes a new patchset. Can this please not remove the newlines.
I see... I created this to track that issue:

Discussion:
return message; } <ins> const getPreviousCommitMessage = async () => { //Only return the previous commit message if it's an amend commit and the repo already has a commit if (opts && opts.amend && repository.HEAD && repository.HEAD.commit) { return (await repository.getCommit('HEAD')).message; } }; </ins> return await window.showInputBox({ placeHolder: localize('commit message', "Commit message"), prompt: localize('provide commit message', "Please provide a commit message"), <ins> value: await getPreviousCommitMessage(), </ins> ignoreFocusOut: true }); };
Change:
VSCode Version: Code - Insiders 1.17.0-insider (, 2017-09-26T05:24:48.911Z) OS Version: Windows_NT x64 10.0. Extensions: none Testing Steps to Reproduce: some change Staged (Amend) I'm asked for a new commit message without the existing one as the default. I usually want to keep the existing one.
yeah may be we can add an option to keep the older message. I mean prefill the text box with the latest commit message..
I'm assuming this is not in version 1.18.1. Can I expect this in 1.18.2? Because I'm looking for this to amend the commit properly (both the diff and the message). I keep having to go back to the command line and issue because VSCode's Commit Staged (Amend) option shows a blank message.
No, this will be in 1.19.
I upgrade to 1.19, and this works, however we use gerrit which has a Change-Id in the commit message, and the newline is removed when to the commit message box. Which means when I upload the change to gerrit, it becomes a new patchset. Can this please not remove the newlines.
I see... I created this to track that issue:

Discussion:
} return await window.showInputBox({ <ins> value: opts && opts.defaultMsg, </ins> placeHolder: localize('commit message', "Commit message"), prompt: localize('provide commit message', "Please provide a commit message"), ignoreFocusOut: true

@command('git.commitStagedAmend', { repository: true }) async commitStagedAmend(repository: Repository): Promise<void> { <del> await this.commitWithAnyInput(repository, { all: false, amend: true }); </del> <ins> let msg; if (repository.HEAD) { if (repository.HEAD.commit) { let id = repository.HEAD.commit; let commit = await repository.getCommit(id); msg = commit.message; } } await this.commitWithAnyInput(repository, { all: false, amend: true, defaultMsg: msg }); </ins> } @command('git.commitAll', { repository: true })

amend?: boolean; signoff?: boolean; signCommit?: boolean; <ins> defaultMsg?: string; </ins> } export interface GitResourceGroup extends SourceControlResourceGroup {
Change:
VSCode Version: Code - Insiders 1.17.0-insider (, 2017-09-26T05:24:48.911Z) OS Version: Windows_NT x64 10.0. Extensions: none Testing Steps to Reproduce: some unstaged changes, none staged Staged (Amend) asks if I want to stage the changes Yes Message telling me that there are no changes to commit
Hi, I'm working on it. The PR will be ready shortly!
For repro: make sure you have .

Discussion:
if (!opts) { opts = { all: noStagedChanges }; <ins> } else if ((opts.all === false) && noStagedChanges) { opts = { ...opts, all: noStagedChanges }; </ins> } // enable signing of commits if configurated
Change:
From In a markdown file: Does not detect as a link
Did you mean auto]save?
Added a merge request with some tweaks to the regex that is used to detect links. With the fix it should now correctly detect links with "]" in their names.

Discussion:
} export default class LinkProvider implements vscode.DocumentLinkProvider { <del> private readonly linkPattern = /([((![[^]]*?](s*)([^s()]+?)s*)]|[^]]*])(s*)(([^s()]|(S*?))+)s*(".*?")?)/g; private readonly referenceLinkPattern = /([([^]]+)][s*?)([^s]]*?)]/g; private readonly definitionPattern = /^([t ]*[([^]]+)]:s*)(S+)/gm; </del> <ins> private readonly linkPattern = /([((![[^]]*?](s*)([^s()]+?)s*)]|(?:]|[^]])*])(s*)(([^s()]|(S*?))+)s*(".*?")?)/g; private readonly referenceLinkPattern = /([((?:]|[^]])+)][s*?)([^s]]*?)]/g; private readonly definitionPattern = /^([t ]*[((?:]|[^]])+)]:s*)(S+)/gm; </ins> public provideDocumentLinks( document: vscode.TextDocument,

assertRangeEqual(link.range, new vscode.Range(0, 6, 0, 25)); }); <ins> // #35245 test('Should handle links with escaped characters in name', () => { const links = getLinksForFile('a [b]](./file)'); assert.strictEqual(links.length, 1); const [link] = links; assertRangeEqual(link.range, new vscode.Range(0, 8, 0, 14)); }); </ins> test('Should handle links with balanced parens', () => { {
Change:
String Text: Show the name of the file. When tabs are enabled and two files have the same name in one group the distinguinshing sections of each file's path is . When tabs are disabled, the path relative to workspace root is shown if the editor is active. Context src/vs/workbench/electron-browser/main.contribution:English (en) Resource vs_workbench Query: Typo in source string. distinguinshing-distinguishing. Should'nt it be "the distinguinshing sections of each file's path are " and not is? Reference: $/?issue=yes

Discussion:
'type': 'string', 'enum': ['default', 'short', 'medium', 'long'], 'enumDescriptions': [ <del> nls.localize('workbench.editor.labelFormat.default', "Show the name of the file. When tabs are enabled and two files have the same name in one group the distinguinshing sections of each file's path are added. When tabs are disabled, the path relative to the workspace folder is shown if the editor is active."), nls.localize('workbench.editor.labelFormat.short', "Show the name of the file followed by it's directory name."), nls.localize('workbench.editor.labelFormat.medium', "Show the name of the file followed by it's path relative to the workspace folder."), nls.localize('workbench.editor.labelFormat.long', "Show the name of the file followed by it's absolute path.") </del> <ins> nls.localize('workbench.editor.labelFormat.default', "Show the name of the file. When tabs are enabled and two files have the same name in one group the distinguishing sections of each file's path are added. When tabs are disabled, the path relative to the workspace folder is shown if the editor is active."), nls.localize('workbench.editor.labelFormat.short', "Show the name of the file followed by its directory name."), nls.localize('workbench.editor.labelFormat.medium', "Show the name of the file followed by its path relative to the workspace folder."), nls.localize('workbench.editor.labelFormat.long', "Show the name of the file followed by its absolute path.") </ins> ], 'default': 'default', 'description': nls.localize({