jiebi/CodeConvo huggingface dataset:
Change:
progress.report({ message: vscode.l10n.t('Creating first commit'), increment: 25 }); if (!repository) { <del> repository = await gitAPI.init(folder) || undefined; </del> <ins> repository = await gitAPI.init(folder, { defaultBranch: createdGithubRepository.default_branch }) || undefined; </ins> if (!repository) { return;

Discussion:
I would have expected that the command creates a repository with a branch 'main'. I was using the latest insider: This is the repository created using 'Publish to Github'
Related to
In this particular scenario we should honor the default branch setting on GitHub rather than the VS Code setting.
Change:
this._register(this.tocTree.onDidBlur(() => { this.tocRowFocused.set(false); })); <ins> this._register(this.tocTree.onDidDispose(() => { this.tocTreeDisposed = true; })); </ins> } private applyFilter(filter: string) {

Discussion:
Found this in devtools, I played a bit with settings: <img width="1904" alt="image" src="https://user-"
Let me know if you can repro and find out the issue is deep in the list/tree.
Got you repro steps! the workbench window rather small. into 2x2 editor layout, so you get even smaller editors <kbdCmd ,</kbdto open the Settings Editor in one of the editor groups for <kbdCmd W</kbdto close the Settings Editor That exception shows up!
I just closed two other duplicates of this. There are repro steps since June. Let's see if we can drive this to a fix. Let me know if you believe it's deep down in the list/tree.
Change:
// Without formatting we still need to support the separator // as provided in options (https://github.com/microsoft/vscode/issues/130019) if (!formatting && options.separator) { <del> switch (options.separator) { case paths.win32.sep: return paths.win32.normalize(label); case paths.posix.sep: return paths.posix.normalize(label); } </del> <ins> return label.replace(sepRegexp, options.separator); </ins> } return label;

Discussion:
We only respect the setting when a is found: We should always support the separator.
//cc
Went ahead with a fix myself because I figured it is more involved: without formatting we cannot just add the separator so I ended up using the method that matches the config in that case on the relative path.
Thanks for the proper fix! I had couple of attempts but first failed when list of files in with stopped to work (apparently needed ) Second was but it produced different results for and . Haven't thought about using same normalization as in
what are some verification steps for this issue?
thanks for bringing this up. Steps from : different values for "Copy relative path" for some nested filed - separators should match selection (or system separator for ) I've checked latest version in and looks like fix doesn't work at this moment: apparently won't replace with ! Maybe it make sense to use ?
is a valid character in filenames on POSIX so this is a bit tricky... I don't think we should ever convert it to on a POSIX system as that would represent a totally different resource.
Yep, in name is tricky but is it common case? Anyway: Alternative option will be to "force" path formatting which will work with and I'm assume it will always have as separator that later converted to if needed without causing problem with -that might replace from filenames This will be "similar" to missing formatting as would work with it as with path anyway. But then there will be inconsistency with : - relative as expected, expected separator- relative as expected, expected separator- - not expected but return full path (same as current behavior in ) as it's processed with , separator not supported at all. I'm not sure why returns full path but I guess it's incorrect setup for in web playground, as works OK for files in VS Code desktop.
Reopening with verification steps web on windows .copyRelativePathSeparator: a path from the memfs system that it still uses I can take this as I own label service from Going to push out as products are not affected.
It looks like the code that is typically doing this conversion when a formatting is there is this one: Maybe we can do something similar instead of and replace any of or with the separator.
Change:
const actions: Command[] = []; for (const info of response.body) { <ins> // Workaround for https://github.com/Microsoft/TypeScript/issues/19378 if (info.name.startsWith('Install missing ')) { continue; } </ins> if (info.inlineable === false) { actions.push({ title: info.description,

Discussion:
This would enable Microsoft/TypeScript. I am mostly describing changes to in the TypeScript repository here. we discussed this today. The returned in a code action request may include a list of commands. A code action may even have an empty list and consist of only a command. We could choose specify that must an of commands, although I'm not sure if that's worth bothering with. If the code action is accepted, the editor must send the commands back to the language service to actually be carried out. This means needing a new request type, "applyCodeFixCommand". This looks like: The contents of will just be what was sent to the editor. (Typically this will include a "type" field so the language service can dispatch on the type of action.) The language service should send a response when the action is complete. I'm thinking we can just reuse the field for error reporting and for a successful response. (Currently the field is documented to only be used if is false.) We could put that in the body, but then it seems redundant.
This proposed TS API changes seem good to me. I don't see any issues implementing this on our side. We'll just need to figure out how best to surface the success / failure messages to users Let me know when the TS part lands in a nightly build so that I can try prototyping this
If we put this in a nightly build, people will start seeing codefixes that don't work. Could you check out a branch instead?
Sure, sounds good
You can checkout and build the branch from the TypeScript repository. If you include in a file and it is an unused identifier, we'll give you a code fix that comes with a command to write a file . (It also replaces the file content so you can verify that at least that works.)
Thanks I'll open a PR on our side shortly. A few quick notes: Looks like is currently using instead of for the key. The name makes more sense to me Also, I get this error when I try to run the command:
Here's the PR:
I pushed a quick fix of those two issues -- changed the name from "action" to "command" and remembered to write to a file rather than to a directory.
Ok, the fix looks good.

I see the d.ts file being created now
Any reason this couldn't land in nightly so I can experiment with it? Regular users won't see anything until we actually add something in TypeScript master that uses this.
We're getting ready for release currently but I can check this in once we branch off for the September release. This code in its current state won't compile until we pick up a new * file from TypeScript, but we can sprinkle in some casts to work around this until then
Change:
/** * The size in spaces a tab takes. This is used for two purposes: *  - the rendering width of a tab character; <del> *  - the number of spaces to insert when {@link TextEditorOptions.insertSpaces insertSpaces} is true. </del> <ins> *  - the number of spaces to insert when {@link TextEditorOptions.insertSpaces insertSpaces} is true *    and `indentSize` is set to `"tabSize"`. </ins> * * When getting a text editor's options, this property will always be a number (resolved). * When setting a text editor's options, this property is optional and it can be a number or `"auto"`.

Discussion:
This API adds as a property to
Friendly ping! Looks like this issue requires some further steps to be verified. Please provide us with the steps necessary to verify this issue.
To verify, you would need to write an extension which gets or sets the option on the current active editor. Here is the description: (it has an effect only when and defines the number of spaces that make up an indent)
Setting this is not working for me. I run this code in a command and nothing changes. But it works as a getter <img width="84" alt="image" src=""
This works for me: I the following code to the TS built-in extension: I opened a .js file which was configured with insert spaces: true (it said Spaces: 4) after 2 seconds it changes to: <img width="189" alt="image" src=""Note that indentSize can't be set if insertSpaces:false, it only makes sense when insertSpaces:true
aside from turning , to get this working in a file that already uses tabs, I had to run in the file first
Change:
this._disposeAllLenses(undefined, undefined); } })); <del> this._localToDispose.add(this._editor.onMouseUp(e => { </del> <ins> this._localToDispose.add(this._editor.onMouseDown(e => { </ins> if (e.target.type !== MouseTargetType.CONTENT_WIDGET) { return; }

Discussion:
Issue Type: <bBug</bRepro the references code lens for JS/TS a JS/TS file with a references code lens. down and drag to make a selection the mouse while the pointer is over one of the references code lenses Bug This activates the code lens. My expectation is that the code lens would only be activated if I clicked on it, not on mouse up VS Code version: Code - Insiders 1.50.0-insider (, 2020-09-29T09:05:00.729Z) OS version: Darwin x64 19.6.0 <details<summarySystem Info</summary </details<!-- generated by issue reporter --
Hi! I would like to try this issue. Do you think it is beginner friendly? Any ideas where to start?
Great. This is the pointer: There is two ways to fix this: of listening for "mouse up" listen for "mouse down". This is simple but makes code lenses also very eager, alternatively that on "mouse up" you still on the right element. On line 230 there is already a check but it seems to be not enough
Hi! Worked on it a little. I think on mouseup will trigger the tagname == 'A', if the target is a code lens regardless of whether you have selected other text. Is there an editor mouse event that is equivalent to a click, such that it will only trigger if the mouse is pressed up and down on the same target? Because that would be ideal for only having the code lens open on click rather than on accident when other text is being selected.
This is the bug we're trying to fix correct (we don't want the code lens reference to create a pop up in this case)? !
Yeah. So option 1 should fix it, option 2 needs knowledge about what happened in "mouse down"
Cool! Got it : ) I tried both options and I think option 1 looks good. I'm going to create a pull request!
Change:
[CharCode.Space]: '%20', }; <del> function encodeURIComponentFast(uriComponent: string, allowSlash: boolean): string { </del> <ins> function encodeURIComponentFast(uriComponent: string, isPath: boolean, isAuthority: boolean): string { </ins> let res: string | undefined = undefined; let nativeEncodePos = -1;

Discussion:
wrongly encode IPv6 literals ( This is an issue with but if I understand correctly issues should be reported here ) can parse IPv6 literal address fine (examples are using node REPL) but will encode the : This string representation of the URI cannot be used for example by a web browser. This encoding seems to happen here <!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: not applicable <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: main ( ) OS Version: linux Steps to Reproduce: actual: expected:
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.68.1. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
Looks similar to:
Change:
return instantiationService.createInstance(ExtensionHostManager, extensionHost, initialActivationEvents); } <ins> export type ExtensionHostStartupClassification = { time: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' }; action: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' }; kind: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' }; errorName?: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' }; errorMessage?: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' }; errorStack?: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' }; }; export type ExtensionHostStartupEvent = { time: number; action: 'starting' | 'success' | 'error'; kind: string; errorName?: string; errorMessage?: string; errorStack?: string; }; </ins> class ExtensionHostManager extends Disposable implements IExtensionHostManager { public readonly kind: ExtensionHostKind;

Discussion:
<!-- 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. --Add telemetry at the startup of an extension host to know that the startup was begun. Add telemetry when the extension host is successfully started. Add telemetry when the extension host failed to start. This enables determining the success/failure rate of extension host startup as well as grouping of failure reasons to debug issues in the field.
Change:
text-overflow: ellipsis; } <del> .debug-pane .debug-call-stack .thread > .state, .debug-pane .debug-call-stack .session > .state { display: flex; align-items: center; text-align: right; </del> <ins> .debug-pane .debug-call-stack .thread > .state.label, .debug-pane .debug-call-stack .session > .state.label { </ins> overflow: hidden; text-overflow: ellipsis; <del> padding: 0 10px; </del> <ins> margin: 0 10px; </ins> text-transform: uppercase; <ins> align-self: center; font-size: 0.8em; </ins> } <del> .debug-pane .debug-call-stack .monaco-list-row:hover .state { </del> <ins> .debug-pane .debug-call-stack .monaco-list-row:hover .state.label { </ins> display: none; }

Discussion:
Testing Badge should use text ellipsis when there is not enough room to display the full message: !
Good catch. Yes, we should improve this.
Not for endgame since we always behaved like this. Moving out of milestone and opening up for PRs. Code pointer
Change:
if [[ ${IFS+set} ]]; then __vsc_original_ifs="$IFS" fi <del> __vsc_status="$?" </del> if [[ "$__vsc_original_prompt_command" =~ .+;.+ ]]; then IFS=';' else

Discussion:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes/No Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.67.2 OS Version: WSL, 'regular' Linux, Mac Steps to Reproduce: Turn on experimental shell integration () bash as the shell, and have a prompt command that uses "$?" as part of the prompt text. the command 'true' the command 'false' that the prompts should have had '0' and '1' as the replacement. it is always '0' with shell integration. OK. In the function , consider this loop: And perhaps something like this might fix it: is probably a really hacky way to set $? - but it's what I've used over the years. Note: This all goes away if were to be accepted.
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.67.2. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
Since I think we have already actioned this may not be a problem anymore
I suspect it will still be a problem. would only have addressed the issue if were adopted as it goes to great lengths to preserve state variables. Since the fix in was to bascially push/pop the trap DEBUG state, it probably doesn't help the exit $? status retention around the wrapped prompt.
good to know, thanks
to verify: add to your and with shell integration enabled, ensure that it is correct. for ex, run a command which fails (has an exit code). the status should reflect that.
Yes.

This bug, as reported - without a DEBUG trap is fixed. So this can probably be closed. It still seems to be incorrect if there is a DEBUG trap in place. I have details to
Change:
id: '_workbench.experimental.editSessions.actions.continueEditSession', title: { value: localize('continue edit session', "Continue Edit Session..."), original: 'Continue Edit Session...' }, category: EDIT_SESSION_SYNC_CATEGORY, <ins> precondition: WorkspaceFolderCountContext.notEqualsTo('0'), </ins> f1: true }; const openLocalFolderCommand: IAction2Options = {

Discussion:
Steps: some changes on the "continue working on..." command and open in desktop :bug: VS Code opens but nothing loads https://user- Desktop Version: 1.70.0-insider (Universal) Commit: Date: 2022-07-26T05:17:37.262Z Electron: 18.3.5 Chromium: 100.0.4896.160 16.13.2 V8: 10.0.139.17-electron.0 OS: Darwin arm64 21.6.0 Web Version: 1.70.0-insider Commit: Date: 2022-07-26T05:17:04.193Z Browser: Mozilla/5.0 (Macintosh; Intel Mac OS X ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36
This action should be disabled in since we cannot access the local filesystem from the browser.
I'm still able to run the command from insiders vscode dev in Firefox. My Desktop Insiders then opens the repo using remote repositories but on the main branch instead of the branch I was working on. I'm not sure if this is the expected behaviour
I verified that this now works as expected https://user-
Change:
.katex-error { color: var(--vscode-editorError-foreground); } <ins> .katex-block { counter-reset: katexEqnNo mmlEqnNo; } </ins> `; // Put Everything into a template

Discussion:
<img width="667" alt="image" src="https://user-"The source is a notebook with a single cell:
This rendering is handled by core.
I think this might be 's area?
Change:
} const stashChanges = await repository.showStash(stash.index); <del> const stashParentCommit = stash.parents.length > 0 ? stash.parents[0] : `${stash.hash}^`; </del> if (!stashChanges || stashChanges.length === 0) { return; } <ins> // A stash commit can have up to 3 parents: // 1. The first parent is the commit that was HEAD when the stash was created. // 2. The second parent is the commit that represents the index when the stash was created. // 3. The third parent (when present) represents the untracked files when the stash was created. const stashFirstParentCommit = stash.parents.length > 0 ? stash.parents[0] : `${stash.hash}^`; const stashUntrackedFilesParentCommit = stash.parents.length === 3 ? stash.parents[2] : undefined; const stashUntrackedFiles: string[] = []; if (stashUntrackedFilesParentCommit) { const untrackedFiles = await repository.getObjectFiles(stashUntrackedFilesParentCommit); stashUntrackedFiles.push(...untrackedFiles.map(f => path.join(repository.root, f.file))); } </ins> const title = `Git Stash #${stash.index}: ${stash.description}`; const multiDiffSourceUri = toGitUri(Uri.file(repository.root), `stash@{${stash.index}}`, { scheme: 'git-stash' }); const resources: { originalUri: Uri | undefined; modifiedUri: Uri | undefined }[] = []; for (const change of stashChanges) { <del> if (change.status === Status.INDEX_ADDED) { resources.push({ originalUri: undefined, modifiedUri: toGitUri(change.uri, stash.hash) }); } else if (change.status === Status.DELETED) { resources.push({ originalUri: toGitUri(change.uri, stashParentCommit), modifiedUri: undefined }); } else if (change.status === Status.INDEX_RENAMED) { resources.push({ originalUri: toGitUri(change.originalUri, stashParentCommit), modifiedUri: toGitUri(change.uri, stash.hash) }); } else { resources.push({ originalUri: toGitUri(change.uri, stashParentCommit), modifiedUri: toGitUri(change.uri, stash.hash) }); </del> <ins> const isChangeUntracked = !!stashUntrackedFiles.find(f => pathEquals(f, change.uri.fsPath)); const modifiedUriRef = !isChangeUntracked ? stash.hash : stashUntrackedFilesParentCommit ?? stash.hash; switch (change.status) { case Status.INDEX_ADDED: resources.push({ originalUri: undefined, modifiedUri: toGitUri(change.uri, modifiedUriRef) }); break; case Status.DELETED: resources.push({ originalUri: toGitUri(change.uri, stashFirstParentCommit), modifiedUri: undefined }); break; case Status.INDEX_RENAMED: resources.push({ originalUri: toGitUri(change.originalUri, stashFirstParentCommit), modifiedUri: toGitUri(change.uri, modifiedUriRef) }); break; default: resources.push({ originalUri: toGitUri(change.uri, stashFirstParentCommit), modifiedUri: toGitUri(change.uri, modifiedUriRef) }); break; </ins> } }

Discussion:
Verification steps: Open a folder/workspace that contains a git repository Modify an existing file, and save it Add a new file, add some contents to it, and save it Invoke the "Git: Stash (Include Untracked)" command, and create a new stash Invoke the "Git: View Stash", and pick the stash that you have created Confirm that all files from the stash have the correct content
Change:
if (options.modifiedAriaLabel) { result.ariaLabel = options.modifiedAriaLabel; } <ins> result.ariaLabel += ariaNavigationTip; </ins> result.wordWrapOverride1 = this._options.diffWordWrap; result.revealHorizontalRightPadding = EditorOptions.revealHorizontalRightPadding.defaultValue + DiffEditorWidget.ENTIRE_DIFF_OVERVIEW_WIDTH; result.scrollbar!.verticalHasArrows = false;

Discussion:
Diff editor is not accessible unless the user uses the F7 / Shift + F7 experience. We should make this more discoverable to the users. For example the aria label of a diff editor should at the end append "use F7 / shift + F7 to navigate changes" fyi
assigning to you and removing the milestone since this might be a good win and something that is within our reach. Namely the diff editor is not that accessible unless users use the experience to navigate between changes. So we should make this more discoverable by potentially mentioning it in the aria label of the diff editor.
Verify that when you are using a screen reader and enter a diff editor, you're informed about using shift + F7 navigation