jiebi/CodeConvo huggingface dataset:
Change:
Couple of milestones ago I have skipped these tests becuase they were failing. I am not sure if I created the issue at the moment but I am doing that now. Sorry if I did not ping sooner. Code pointer
I had to revert this change: I think they cause our browser integration tests to hang/fail:

Discussion:
import 'mocha'; import * as os from 'os'; import * as vscode from 'vscode'; <del> import { closeAllEditors, delay, disposeAll } from '../utils'; </del> <ins> import { closeAllEditors, delay, disposeAll, flakySuite } from '../utils'; </ins> const webviewId = 'myWebview';

const testDocument = workspaceFile('bower.json'); <del> suite.skip('vscode API - webview', () => { </del> <ins> flakySuite('vscode API - webview', () => { </ins> const disposables: vscode.Disposable[] = []; function _register<T extends vscode.Disposable>(disposable: T) {

assert.strictEqual(Math.round(secondResponse.value), 100); }); <del> test('webviews with retainContextWhenHidden should be able to recive messages while hidden', async () => { </del> <ins> test('webviews with retainContextWhenHidden should be able to receive messages while hidden', async () => { </ins> const webview = _register(vscode.window.createWebviewPanel(webviewId, 'title', { viewColumn: vscode.ViewColumn.One }, { enableScripts: true, retainContextWhenHidden: true })); const ready = getMesssage(webview);

*  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <ins> import * as assert from 'assert'; import { Suite } from 'mocha'; </ins> import * as vscode from 'vscode'; import { TestFS } from './memfs'; <del> import * as assert from 'assert'; </del> <ins> export function flakySuite(title: string, fn: (this: Suite) => void): Suite { return suite(title, function () { // Flaky suites need retries and timeout to complete // e.g. because they access the file system which can // be unreliable depending on the environment. this.retries(3); this.timeout(1000 * 20); // Invoke suite ensuring that `this` is // properly wired in. fn.call(this); }); } </ins> export function rndName() { return Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 10);
Change:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Describe the feature you'd like. --I see the grammar at only supports , , and for format options. can there be a option that would transform the match text into camelCase? Thanks for the awesome work!
Just FYI, I believe pascalcase is also supported but undocumented.
The docs were updated to include in
To verify: insert a snippet like below type 'Hello_World' press the second line should become

Discussion:
| '${' var transform '}' transform   ::= '/' regex '/' (format | text)+ '/' options format      ::= '$' int | '${' int '}' <del> | '${' int ':' '/upcase' | '/downcase' | '/capitalize' '}' </del> <ins> | '${' int ':' '/upcase' | '/downcase' | '/capitalize' | '/camelcase' | '/pascalcase' '}' </ins> | '${' int ':+' if '}' | '${' int ':?' if ':' else '}' | '${' int ':-' else '}' | '${' int ':' else '}'

return !value ? '' : (value[0].toLocaleUpperCase() + value.substr(1)); } else if (this.shorthandName === 'pascalcase') { return !value ? '' : this._toPascalCase(value); <ins> } else if (this.shorthandName === 'camelcase') { return !value ? '' : this._toCamelCase(value); </ins> } else if (Boolean(value) && typeof this.ifValue === 'string') { return this.ifValue; } else if (!Boolean(value) && typeof this.elseValue === 'string') {

.join(''); } <ins> private _toCamelCase(value: string): string { const match = value.match(/[a-z0-9]+/gi); if (!match) { return value; } return match.map((word, index) => { if (index === 0) { return word.toLowerCase(); } else { return word.charAt(0).toUpperCase() + word.substr(1).toLowerCase(); } }) .join(''); } </ins> toTextmateString(): string { let value = '${'; value += this.index;

assert.strictEqual(new FormatString(1, 'capitalize').resolve('bar no repeat'), 'Bar no repeat'); assert.strictEqual(new FormatString(1, 'pascalcase').resolve('bar-foo'), 'BarFoo'); assert.strictEqual(new FormatString(1, 'pascalcase').resolve('bar-42-foo'), 'Bar42Foo'); <ins> assert.strictEqual(new FormatString(1, 'camelcase').resolve('bar-foo'), 'barFoo'); assert.strictEqual(new FormatString(1, 'camelcase').resolve('bar-42-foo'), 'bar42Foo'); </ins> assert.strictEqual(new FormatString(1, 'notKnown').resolve('input'), 'input'); // if
Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: --Hitting + with the terminal focused and a process running (i.e. in a React app) does not kill the process. If someone is able to provide a good starting point, I would be willing to take a stab at this. <!-- Use Help Report Issue to prefill these. --- VSCode Version: 1.53.0-insider OS Version: iPadOS 14.1 (18A8395) Commit: Date: 2021-01-07T05:25:51.740Z (16 hrs ago) Browser: Mozilla/5.0 (iPad; CPU OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/87.0.4280.77 Mobile/15E148 Safari/604.1 iPad, open Codespaces environment in Chrome integrated Terminal application (i.e. like a create-react-app - ) terminal and hit + Process () should stop running Terminal receives new line https://user- <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes Related:
Perhaps that is not the right sigint.
One other piece of insight: this may not be limited to VSCode. has a product which includes a terminal in the browser. I’m able to reproduce the same issue (see line breaks at the bottom). !
As a temporary workaround, it works if you manually define the shortcut like so: Command Palette for "Preferences: Open Keyboard Shortcuts (JSON)" this: Source:
I found the root reason was iPad Safari report keyCode of ctrl-c as 13, which is not correct, reference from MDN, keyCode is a deprecated property; The key and code property is right, so I suggest just use key property, not keyCode, on the whole html page not just terminal.
I'm still seeing this in codespace, am I testing the right environment?
fixed w
as another workaround, use shortcut instead of , it will interrupt the process as well

Discussion:
{ "name": "code-oss-dev", <del> "version": "1.55.0", </del> <ins> "version": "1.56.0", </ins> "distro": "c57566e89bbb245d7e1a5d789b9367f5a7b8bc05", "author": { "name": "Microsoft Corporation"
Change:
I can notice this error in .vscode- files whenever I try to remote connect to my Linux machine <pre[01:38:27] [127.0.0.1][][ExtensionHostConnection] New connection established. Unknown option: `-lc' Usage: csh [ -bcdefilmnqstvVxX ] [ argument ... ]. [01:38:27] getUnixShellEnvironment#error Failed to get environment </preThis error has symptoms that I cannot get latest values of environment variables in launch and tasks files
What version of VS Code are you using? Is this different in vscode Insiders vs Stable?
Seems that csh supports but can't be combined with
I using VS Code with following version info: Version: 1.52.1 (system setup) Commit: Date: 2020-12-16T16:34:46.910Z Electron: 9.3.5 Chrome: 83.0.4103.122 12.14.1 V8: 8.3.110.13-electron.0 OS: Windows_NT x64 10.0. Behavior is the same with insiders version
Only way to work around it for now would be to change your default shell to something else (at the OS level, not using a vscode setting)
You own this A little suspicious that this was reported right after my change in but seems to not be related since it reproes in stable. I don't know that the behavior will be 100% correct without but maybe we have to keep a hardcoded map of shells and flags to use with them.
Isn't this a dupe of
No, in that case users aren't able to connect with ssh at all. Here the user was able to connect but probing the environment failed.
Same as but for csh
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
Verification steps: Your linux machine probably has present. Run (note your default shell first so you can put it back Open a vscode window on that machine. A local window or Remote-SSH is fine Previously you would have gotten the popup that complains about failing to determine the environment in your shell. You should not get that error popup now. You can also check the server or main/shared log files and the error shouldn't be there either Use again to restore your preferred shell

Discussion:
} else { command = `'${process.execPath}' ${extraArgs} -p '"${mark}" + JSON.stringify(process.env) + "${mark}"'`; <del> if (name === 'tcsh') { </del> <ins> if (name === 'tcsh' || name === 'csh') { </ins> shellArgs = ['-ic']; } else { shellArgs = ['-i', '-l', '-c'];
Change:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Describe the feature you'd like. --Enable forceConsistentCasingInFileNames . Spend 1 hour to find out the crash:

Discussion:
"noImplicitAny": true, "noImplicitReturns": true, "noUnusedLocals": true, <del> "noUnusedParameters": true </del> <ins> "noUnusedParameters": true, "forceConsistentCasingInFileNames": true </ins> } }
Change:
Open an integrated terminal in a remote window - the extensions viewlet shows that the extension is installed both locally and remote (not sure if that's the expected result) only removes one of the extensions
Calling results in
Sorry, I corrected the description. It's
Note, yesterday I changed that remote CLI only operates on the remote. That means removing a local extension is not possible with the remote CLI. User need to use the local CLI or the extensions viewlet. Removing the milestone as the issue is no longer valid.

Discussion:
for (const extension of extensions) { const id = await getExtensionId(extension); const installed = await this.extensionManagementService.getInstalled(); <del> const extensionToUninstall = installed.find(e => areSameExtensions(e.identifier, { id })); if (!extensionToUninstall) { </del> <ins> const extensionsToUninstall = installed.filter(e => areSameExtensions(e.identifier, { id })); if (!extensionsToUninstall.length) { </ins> throw new Error(`${notInstalled(id)}n${useId}`); } <del> if (extensionToUninstall.type === ExtensionType.System) { output.log(localize('builtin', "Extension '{0}' is a Built-in extension and cannot be installed", id)); </del> <ins> if (extensionsToUninstall.some(e => e.type === ExtensionType.System)) { output.log(localize('builtin', "Extension '{0}' is a Built-in extension and cannot be uninstalled", id)); </ins> return; } <del> if (extensionToUninstall.isBuiltin && !force) { </del> <ins> if (!force && extensionsToUninstall.some(e => e.isBuiltin)) { </ins> output.log(localize('forceUninstall', "Extension '{0}' is marked as a Built-in extension by user. Please use '--force' option to uninstall it.", id)); return; } output.log(localize('uninstalling', "Uninstalling {0}...", id)); <del> await this.extensionManagementService.uninstall(extensionToUninstall); uninstalledExtensions.push(extensionToUninstall); </del> <ins> for (const extensionToUninstall of extensionsToUninstall) { await this.extensionManagementService.uninstall(extensionToUninstall); uninstalledExtensions.push(extensionToUninstall); } </ins> output.log(localize('successUninstall', "Extension '{0}' was successfully uninstalled!", id)); }
Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: --<!-- Use Help Report Issue to prefill these. --- VSCode Version: 1.53.0 OS Version: macOS 11.1 Steps to Reproduce: custom URI class that implements the default URI in the custom URI into and it returns This is a proposed fix for . If a model is created using a custom URI, it will fail the check because it "tries" to check against various possible types, but it will fail at . The side-effect is that behaves a bit weird and shows markers for all resources, not just for a particular resource/URI. Example: <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes
Indeed. Nice find.

Discussion:
&& typeof (<URI>thing).path === 'string' && typeof (<URI>thing).query === 'string' && typeof (<URI>thing).scheme === 'string' <del> && typeof (<URI>thing).fsPath === 'function' </del> <ins> && typeof (<URI>thing).fsPath === 'string' </ins> && typeof (<URI>thing).with === 'function' && typeof (<URI>thing).toString === 'function'; }
Change:
Issue Type: <bBug The following does not indicate that this is from the universal Mac build: VS Code version: Code - Insiders 1.53.0-insider (, 2021-01-26T05:12:23.287Z) OS version: Darwin x64 19.6.0 Remote OS version: Linux x64 5.4.39-linuxkit <details<summarySystem Info</summary </details<details<summaryExtensions (35)</summaryExtensionVersion ------ unique-lines1.0.0 persona0.0.3 regex0.2.0 vscode-eslint2.1.14 ghlink1.2.0 remotehub0.5.0 tsl-problem-matcher0.3.1 EditorConfig0.16.4 vscode-npm-script0.3.13 codespaces0.6.0 vscode-pull-request-github0.22.0 vscode-mocha-test-adapter2.9.1 vscode-test-explorer2.19.5 rest-client0.24.4 graphql-for-vscode1.15.3 template-string-converter0.4.7 git-graph1.28.0 vscode-azureappservice0.20.0 vscode-docker1.9.1 vscode-kubernetes-tools1.2.3 remote-containers0.156.0 remote-ssh0.63.0 remote-ssh-edit0.63.0 remote-wsl0.53.1 azure-account0.9.4 azurecli0.5.0 hexeditor1.3.0 vscode-github-issue-notebooks0.0.60 debugger-for-chrome4.12.11 vscode-versionlens1.0.9 vscode-yaml0.14.0 music-time2.1.0 vscode-open-in-github1.14.0 vscodeintellicode1.2.10 vscode-test-resolver0.0.1 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
To verify. check if the universal apps version information in about dialog as well as issue reporter details have it like <img width="564" alt="Screen Shot 2021-01-27 at 8 32 54 PM" src="https://user-"

Discussion:
}, product: { nameShort: product.nameShort, <del> version: product.version, </del> <ins> version: !!product.darwinUniversalAssetId ? `${product.version} (Universal)` : product.version, </ins> commit: product.commit, date: product.date, reportIssueUrl: product.reportIssueUrl

let version = this.productService.version; if (this.productService.target) { version = `${version} (${this.productService.target} setup)`; <ins> } else if (this.productService.darwinUniversalAssetId) { version = `${version} (Universal)`; </ins> } const osProps = await this.nativeHostService.getOSProperties();
Change:
Testing settings gui and search for workbench.externalUriOpeners "Edit in json" ! Not sure where these values are coming from, but was only able to figure out the formatting of the setting by writing something random and then hovering over it
I believe these are the cross-file word based suggestions. Let me see if I can add a snippet or something to improve this
a visual editor for this setting. I don't think there's a way to fix the json side of things here (although there is a default snippet when you first fill in this setting)
For verification, make sure you can use the settings UI to edit

Discussion:
} function getEnumOptionsFromSchema(schema: IJSONSchema): IObjectEnumOption[] { <ins> if (schema.anyOf) { return arrays.flatten(schema.anyOf.map(getEnumOptionsFromSchema)); } </ins> const enumDescriptions = schema.enumDescriptions ?? []; return (schema.enum ?? []).map((value, idx) => {

} function getObjectValueType(schema: IJSONSchema): ObjectValue['type'] { <ins> if (schema.anyOf) { const subTypes = schema.anyOf.map(getObjectValueType); if (subTypes.some(type => type === 'enum')) { return 'enum'; } return 'string'; } </ins> if (schema.type === 'boolean') { return 'boolean'; } else if (schema.type === 'string' && isDefined(schema.enum) && schema.enum.length > 0) {
Change:
I can reproduce it by running rails server: <img width="452" alt="Screenshot 2021-01-28 at 09 28 37" src="https://user-"It seems that applications can change title and use the space character instead of the null as a delimiter: <img width="1757" alt="Screenshot 2021-01-28 at 09 27 39" src="https://user-"VS Code though assumes that titles of terminals created by a user always paths to executable and drops everything before the last path separator.
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.468 --<!-- potentialduplicatescomment --
Could you clarify by which extension is caused? I think it is caused by how node-pty generates process title and how VS Code takes only basepath of it.
thanks for the info, any suggestions on when we should avoid using ?
One idea is to check whether the given title is an absolute path, i.e. starts with and only then use ? -Not really would help for something like :(
in tmux there is such function: maybe it could be used for inspiration. It seems to drop everything after first space and then use basename only for absolute paths.

Discussion:
} switch (eventSource) { case TitleEventSource.Process: <del> title = path.basename(title); </del> if (platform.isWindows) { // Remove the .exe extension <ins> title = path.basename(title); </ins> title = title.split('.exe')[0]; <ins> } else { const firstSpaceIndex = title.indexOf(' '); if (title.startsWith('/')) { title = path.basename(title); } else if (firstSpaceIndex > -1) { title = title.substring(0, firstSpaceIndex); } </ins> } break; case TitleEventSource.Api:
Change:
Issue Type: <bBug</bIn the past, if the tree item was falsy, the would be used instead on hover. makes it so that if the tree item's is falsy after calling , then instead of following the old behavior and using , it will stick as 'Loading...' forever. Instead, if is falsy, it should fall back to to most closely resemble prior behavior. VS Code version: Code - Insiders 1.53.0-insider (, 2021-01-27T08:59:32.031Z) OS version: WindowsNT x64 10.0. <details<summarySystem Info</summary </details<details<summaryExtensions (11)</summaryExtensionVersion ------ vscode-eslint2.1.14 vscode-docker1.9.1 csharp1.23.8 python2021.1. jupyter2020.12. remote-containers0.156.0 remote-ssh0.63.0 remote-ssh-edit0.63.0 remote-wsl0.53.2 vscode-remote-extensionpack0.20.0 azure-account0.9.5 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
FYI
this fix is out in the latest insiders, can you please let us know when you've verified, thanks
everything seems to be working nicely, thanks!

Discussion:
export interface IHoverDelegate { showHover(options: IHoverDelegateOptions): IDisposable | undefined; <ins> hideHover(): void; </ins> }

}; IconLabel.adjustXAndShowCustomHover(hoverOptions, mouseX, hoverDelegate, isHovering); <del> const resolvedTooltip = await tooltip(tokenSource.token); </del> <ins> const resolvedTooltip = (await tooltip(tokenSource.token)) ?? (!isString(markdownTooltip) ? markdownTooltip.markdownNotSupportedFallback : undefined); </ins> if (resolvedTooltip) { hoverOptions = { text: resolvedTooltip, target, anchorPosition: AnchorPosition.BELOW }; <ins> // awaiting the tooltip could take a while. Make sure we're still hovering. IconLabel.adjustXAndShowCustomHover(hoverOptions, mouseX, hoverDelegate, isHovering); } else { hoverDelegate.hideHover(); </ins> } } <del> // awaiting the tooltip could take a while. Make sure we're still hovering. IconLabel.adjustXAndShowCustomHover(hoverOptions, mouseX, hoverDelegate, isHovering); </del> } mouseMoveDisposable.dispose(); }, hoverDelay);

this._hoverDelegate = { showHover: (options: IHoverDelegateOptions): IDisposable | undefined => { return this.hoverService.showHover(options); <ins> }, hideHover: () => { return this.hoverService.hideHover(); </ins> } }; }

resolve(node.tooltip); }); }, <del> markdownNotSupportedFallback: resource ? undefined : '' // Passing undefined as the fallback for a resource falls back to the old native hover </del> <ins> markdownNotSupportedFallback: resource ? undefined : label ?? '' // Passing undefined as the fallback for a resource falls back to the old native hover </ins> }; }
Change:
We register to both and for historic reasons: With the addition of the new setting, , has potentially different behaviour from , but will always overpower it when it's context expression is true (). This means that even after setting , will still open the search view, unless a separate keybinding is registered to unbind .
Just to confirm that if you are aware that this change will not show the keybinding for Search view anymore at following places: <img width="367" alt="image" src="https://user-"<img width="161" alt="image" src="https://user-"Not sure if it is intended.
Not intended, thanks for the heads up. we could add back the keybinding at a lower priority? Edit: even with lower priority on , or a higher priority on , the keybinding is still missing from menus. Looking for a better approach.
To verify: Set to . Hit (make sure the search view isn't already focused), expect to see a new search editor created.

Discussion:
// Show Search and Find in Files are redundant, but we can't break keybindings by removing one. So it's the same action, same keybinding, registered to different IDs. // Show Search 'when' is redundant but if the two conflict with exactly the same keybinding and 'when' clause, then they can show up as "unbound" - #51780 <del> registry.registerWorkbenchAction(SyncActionDescriptor.from(OpenSearchViewletAction, { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_F }, Constants.SearchViewVisibleKey.toNegated()), 'View: Show Search', CATEGORIES.View.value); </del> <ins> registry.registerWorkbenchAction(SyncActionDescriptor.from(OpenSearchViewletAction), 'View: Show Search', CATEGORIES.View.value); </ins> KeybindingsRegistry.registerCommandAndKeybindingRule({ description: { description: nls.localize('findInFiles.description', "Open the search viewlet"),