jiebi/CodeConvo huggingface dataset:
Change:
"when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0" }, { <ins> "command": "git.rebaseAbort", "when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitRebaseInProgress" }, { </ins> "command": "git.commitNoVerify", "when": "config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0" },

Discussion:
Testing Currently the command is always in the command palette. I would expect it to appear only when I am in the middle of a rebase. Not sure if we could introduce some context keys which would be true when we are in the middle of the rebase. And then use those context keys as part of the commands clause
Since triggering it outside of a rebase produces this expected error. Do we polish the message, since it looks a bit strange with the double !
Verification steps: Launch VS Code and close existing folder if needed Verify that command is not available in the command palette Open a Git repository Verify that command is not available in the command palette Switch to the SCM viewlet, and click on --- Verify that an information notification is displayed noting that there is no rebase in progress Use the steps from to rebase a topic branch on top of the main branch Verify that command is available in the command palette Invoke the command from the command palette Verify that command is available in the command palette
Change:
} protected _showNotEnoughSpaceToast(): void { <del> this._notificationService.warn(nls.localize('terminal.minWidth', "Not enough space to split terminal.")); </del> <ins> this._notificationService.info(nls.localize('terminal.minWidth', "Not enough space to split terminal.")); </ins> } public setContainers(panelContainer: HTMLElement, terminalContainer: HTMLElement): void {

Discussion:
re Keep pressing the split button At one point the warning shows I think we can do better than that... Why don't we disable the action instead of showing the warning? Also, why is this a warning and not an information message? <img width="618" alt="screen shot 2018-09-25 at 11 10 18" src="https://user-"
Yeah also found this a bit weird. Fyi we do not prevent splitting of editors in the grid widget and have not heard complaints so far. So I am not sure why we need it here (cc
We had one complaint about infinite splitting which is why I this. I agree that behavior should generally be consistent between editor and terminal for splitting but at the same time allowing the user to put their terminal into a broken state isn't great either. I was concerned that simply disabling the split operation wouldn't make why it's disabled clear, but it is more intrusive than just disabling it! This issue has already gotten more thumbs ups than the original (), so clearly something needs to be done let me know what you think!
I think disabling the split action when we think it should be prevented is the best solution.
I guess we could watch for when the panel resizes and disable/enable if there's room.
I've created PR for changing the warn to info. The disable/enable for split is more complicated so it would be better to do during the next milestone. Issue tracks that!
Change:
import { basename, isEqual, joinPath } from 'vs/base/common/resources'; import * as semver from 'vs/base/common/semver/semver'; import Severity from 'vs/base/common/severity'; <del> import { isEmptyObject, isObject, isString } from 'vs/base/common/types'; </del> <ins> import { isEmptyObject } from 'vs/base/common/types'; </ins> import { URI } from 'vs/base/common/uri'; import { localize } from 'vs/nls'; import { IEnvironmentService } from 'vs/platform/environment/common/environment';

Discussion:
Testing in Firefox with de-ch (Swiss German) set. Open command palette and search for Remote Repositories commands :bug: The first command has a partly English, partly de-ch line under it ( and in English, seems to be de-ch translated) !
Hmm yeah it should look like this (Desktop screenshot) with the English strings next to the German strings. I think this is a bug in how I'm applying the translations... !
Just found out about these functions on the desktop side: Which seems to go through the manifest and turn some s into s. I followed up with to understand how this works.
This code was originally written by so I would ask him to know how this works.
Not quite, it was originally written by , but I'm happy to try and help. My understanding is that the code is taking a JSON object that looks like this: Together with another JSON object that looks like this: And produces a JSON object that looks like this by substituting all string values of the shape with their corresponding value:
I still see this on firefox: ! The first option's english translation still looks wrong? (tested on )
The first one is still wrong because of so we'll track that there. However, the rest now have the English string underneath which they use to not have, which means this is fixed and verified
Change:
} const uncommittedChanges = [...repository.state.workingTreeChanges, ...repository.state.indexChanges]; <del> if (uncommittedChanges.find((c) => c.uri.toString() === file.toString())) { </del> <ins> if (uncommittedChanges.find((c) => c.uri.toString() === file.toString()) && !repository.state.HEAD?.ahead && !repository.state.HEAD?.behind) { </ins> const commitChanges = vscode.l10n.t('Commit Changes'); const copyAnyway = vscode.l10n.t('Copy Anyway'); const selection = await vscode.window.showWarningMessage(

Discussion:
Testing I am currently one commit behind the remote branch and I am able to successfully create a link without seeing any dialog. The way the test plan item is written it implies that in this scenario, I should see a dialog. Is that the case or did I misunderstood the test plan item?
Testing with while being a few commits behind, I get the following dialog: <img width="264" alt="image" src=""When I Cancel, I don't get a link. When I Pull & Copy I get a link that is seemingly unaffected by the pull. Why then require the pull? (I tested with incoming commits affecting the file I copy a link from.)
The link that is copied might point to a range that is invalidated by incoming commits, so we notify in order to avoid you copying a link that points to a different area in the file. But perhaps we should also offer a Copy Anyway option here.

Testing When one tries to copy a link on a branch that has not been published we display a dialog asking the user whether they want to publish the branch. Based on my tests, the branch is getting published and the linked is being copied to the clipboard. I think that it makes sense to be explicit about what happens and change the label of the button to "Publish Branch & Copy Link". I also noticed that when trying to create a link for uncommited changes, the dialog contains an action to "Copy Anyways". I think actions should be consistent so we should add that action to this dialog as well.
Change:
this.view.ariaLabel = value; } <ins> get selectionSize() { return this.selection.getNodes().length; } </ins> domFocus(): void { this.view.domFocus(); }

Discussion:
Testing microsoft/vscode-python some tests in the test explorer. the play button on one of the tests to run the selected tests. Expected result: The tests stay selected. Actual result: Only one of the tests is selected after.
You ca choose alternate sorting methods here. Ordering by location sounds like what you want: <img width="259" alt="image" src="https://user-"
I think what is talking about is this behavior but please correct me if I'm wrong, thanks! https://user-
Oh, sorry, misread. I think it's sensible that if multiple elements are selected, we don't touch it
Wrong
Change:
}; } } <del> ); </del> <ins> )); </ins> // Register a resource formatter for terminal URIs <del> labelService.registerFormatter({ </del> <ins> this._register(labelService.registerFormatter({ </ins> scheme: Schemas.vscodeTerminal, formatting: { label: '${path}', separator: '' } <del> }); embedderTerminalService.onDidCreateTerminal(async embedderTerminal => { const terminal = await terminalService.createTerminal({ config: embedderTerminal, location: TerminalLocation.Panel }); terminalService.setActiveInstance(terminal); await terminalService.revealActiveTerminal(); }); </del> <ins> })); </ins> } }

Discussion:
changed to move to but this caused a feature for Codespaces to stop working where the terminal will start streaming in the init logs before the workbench has fully loaded. Ideally we would start it up on Starting only on remote, if we can't do that we need to move it back to Starting in the meantime. cc
We know if we are connected to a remote from the environment service via probing for .
We don't have access to services at workbench contrib registration do we?
no, but you could have 1 eager workbench contrib that depends on the environment service to decide if a second thing should get instantiated or not.
Marked verified, only can properly verify it
this seems to still be failing, the terminal does not show up until the codespace is fully created and the workbench initialized
Verified by
Change:
* Submitting pull requests ## Related Projects <del> Many of the core components and extensions to Code live in their own repositories on GitHub. For example, the [node debug adapter](https://github.com/microsoft/vscode-node-debug), the [mono debug adapter](https://github.com/microsoft/vscode-mono-debug). </del> <ins> Many of the core components and extensions to Code live in their own repositories on GitHub. For example, the [node debug adapter](https://github.com/microsoft/vscode-node-debug) and the [mono debug adapter](https://github.com/microsoft/vscode-mono-debug). </ins> For a complete list, please see the [Related Projects](https://github.com/Microsoft/vscode/wiki/Related-Projects) page on our wiki.

Discussion:
Issue Type: <bBug</bMarkdown's auto-links for emails show differently if the email domain has capital letters in it. See example below. I noticed that the regex used in vscode is not the same as the one mentioned in the commonmark spec. (This is cosmetic only. In the preview, both show the same formatting) /^? (?:.?)$/ VS Code: Screenshot: ! VS Code version: Code 1.51.1 (, 2020-11-10T23:34:32.027Z) OS version: WindowsNT x64 10.0. (Confirmed with all extensions disabled) <details<summarySystem Info</summary </detailsExtensions: none <!-- generated by issue reporter --
For anyone interested in contributing a fix, here's where the grammar live: Make sure to fix it in the file, which generates the file

<!-- 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. --- VS Code Version: n/a OS Version: macOS 10.15.7, npm 7.5.0 Steps to Reproduce: to the and read the instructions in the "Integrate" section: a terminal and run the command as indicated: . Expected outcome: installs the freestanding JSON language server. Actual outcome: reports the following: I have attached the cited log file. <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: n/a <!-- 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 direct to the extension publisher. The 'Help Report Issue' dialog can assist with this. --
Sorry, that was a typo in the README. Please try
Successfully installed using , thank you very much!
Change:
white-space: nowrap; } <ins> .extension-editor > .header > .details > .title > .name.deprecated { text-decoration: line-through; } </ins> .extension-editor > .header > .details > .title > .version { margin-left: 10px; user-select: text;

Discussion:
Testing When I run a search for "deprecated" I see a large list of extensions that are being deprecated. I also see that each extension uses it's own ways to indicate that the extension is deprecated: prefix prefix sufix sufix Given that we control the list of deprecated extensions, and we have several established UI elements I am wondering if we could create a more unified and consistent look for all the deprecated extensions: In the extensions list, add a visual indicator in the upper left hand corner of the icon (similar to pre-release) In the extension details page, have a "deprecated" pill/badge after the name (similar to the pre-release and preview)
Another idea would be strike out the title just like we strike out in code editor.
any suggestions?
I like the strike-through on the title idea, it's simple (even though we already use the warning icon): <img width="1138" alt="CleanShot 2022-05-31 at 12 40 26 src="https://user-"
<img width="1378" alt="image" src="https://user-"
FYI
looks nice :)
Change:
const success = await this.installExtension(themeItem.galleryExtension); if (success) { selectTheme(themeItem.theme, true); <ins> } else { selectTheme(currentTheme, true); </ins> } } });

Discussion:
Pre-req: Settings Sync on brand new empty profile a theme Settings sync asks this strange question: ! Additionally: this dialog Theme is still applied but not installed
I tried and can't repro. Are there any specific steps you followed?
were there specific steps to repro this?
I can verify that cancelling the dialog no longer leaves the theme applied, thanks I can still reproduce the main issue though. Why would I not want to synchronize the theme I just picked for my brand new profile, given the profile is being synced?
I think is using the general extension install command that will ask user to sync or not before installing. If it is in core, one can use the API directly to install.
I think we still want an install confirmation dialog, but I agree that there should be no question about syncing.
Change:
import { getUriForLinkWithKnownExternalScheme } from './util/links'; const FrontMatterRegex = /^---s*[^]*?(-{3}|.{3})s*/; export class MarkdownEngine { private md?: MarkdownIt; private firstLine?: number; private currentDocument?: vscode.Uri; private _slugCount = new Map<string, number>(); <ins> private cachedTokens = new Map<vscode.Uri, Token[]>(); </ins> public constructor( private readonly extensionPreviewResourceProvider: MarkdownContributions,

Discussion:
<!-- 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: Windows 7 & Mac 10.14 (Only these 2 Tested) A user of my extension reports duplicate html elements in export markdown, I debug & find this issue as described in header. It doesn't affect the preview rendering, so I cannot tell the step to reproduce. But I can tell, it's reproducible when all extension (except mine) is disabled, and the issue is gone in extension debugging environment. Please find more details here: PS: My extension uses VSCode Markdown render instance to provide WYSIWYG export
Is is causing any use facing problems?
Not really, copy HTML used most in copy & paste to rich text editors, as I know, which could still render right result. Only matters if user cares about the excessive codes, or performance worries (for running many times)
We have two calls to markdown it: Render the markdown to html parse the markdown to a set of tokens Markdown it has an internal render method that takes a list of tokens instead: We could cache the tokens and use this api instead. Marking as help wanted. Here's where the two calls are:
, I am trying this one :)
Change:
export async function getLink(gitAPI: GitAPI, useSelection: boolean, shouldEnsurePublished: boolean, hostPrefix?: string, linkType: 'permalink' | 'headlink' = 'permalink', context?: LinkContext, useRange?: boolean): Promise<string | undefined> { hostPrefix = hostPrefix ?? 'https://github.com'; const fileAndPosition = getFileAndPosition(context); <del> if (!fileAndPosition) { return; } const uri = fileAndPosition.uri; </del> <ins> const fileUri = fileAndPosition?.uri; </ins> // Use the first repo if we cannot determine a repo from the uri. <del> const gitRepo = (uri ? getRepositoryForFile(gitAPI, uri) : gitAPI.repositories[0]) ?? gitAPI.repositories[0]; </del> <ins> const githubRepository = gitAPI.repositories.find(repo => repositoryHasGitHubRemote(repo)); const gitRepo = (fileUri ? getRepositoryForFile(gitAPI, fileUri) : githubRepository) ?? githubRepository; </ins> if (!gitRepo) { return; } <del> if (shouldEnsurePublished) { await ensurePublished(gitRepo, uri); </del> <ins> if (shouldEnsurePublished && fileUri) { await ensurePublished(gitRepo, fileUri); </ins> } let repo: { owner: string; repo: string } | undefined;

Discussion:
Testing Steps: disable Remote Repos, GitHub Repos, Azure Repos. Then I Continue Working in shows up so I picked it nothing happens This might be but I see the same behavior when I disable Codespaces so it might be a different issue.
Ooh I just reproed this in OSS, log says
Change:
assert.equal((first.range as any).insert.endColumn, 9); assert.equal((first.range as any).replace.endColumn, 9); }); <ins> test('Snippet will replace auto-closing pair if specified in prefix', async function () { disposableStore.add(LanguageConfigurationRegistry.register(modeService.getLanguageIdentifier('fooLang')!, { brackets: [ ['{', '}'], ['[', ']'], ['(', ')'], ] })); snippetService = new SimpleSnippetService([new Snippet( ['fooLang'], 'PSCustomObject', '[PSCustomObject]', '', '[PSCustomObject] @{ Key = Value }', '', SnippetSource.User )]); const provider = new SnippetCompletionProvider(modeService, snippetService); let model = createTextModel('[psc]', undefined, modeService.getLanguageIdentifier('fooLang')); let result = await provider.provideCompletionItems(model, new Position(1, 5), context)!; assert.strictEqual(result.suggestions.length, 1); let [first] = result.suggestions; assert.strictEqual((first.range as any).insert.endColumn, 5); // This is 6 because it should eat the `]` at the end of the text even if cursor is before it assert.strictEqual((first.range as any).replace.endColumn, 6); }); </ins> });

Discussion:
<!-- 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. --Version: 1.49.0-insider Commit: Date: 2020-08-17T17:11:16.078Z (1 day ago) Electron: 9.2.0 Chrome: 83.0.4103.122 12.14.1 V8: 8.3.110.13-electron.0 OS: Darwin x64 19.6.0 Steps to Reproduce: Add the following python snippet: or PowerShell snippet: : which will cause auto-closing pair... (at this point you have where is the cursor) add a or and hit TAB or ENTER on the intellisense item NOTE THE TRAILING . Snippets and auto-closing pairs should play nice together so that the whole experience generates valid code. <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes
Here's a javascript example for array destructuring: which gets you: when you type:
better example! A javascript example for : which gets you: when you type:
for verification, this: should get you: on insert mode replace (default is SHIFT + ENTER)
I'll note that it works fine in non-json files, but is reversed in a json file (as are the insert/replace hints in the suggestion box). W10
that seems like a separate issue not related to this fix. Can you open a new issue?
Yes, I'll open another issue.
Change:
this.globalState = globalState; this.pathSeparator = path.sep; <del> let p = new Promise<void>((resolve, reject) => { this._onReady = { promise: Promise.reject<void>(null), resolve, reject }; </del> <ins> const p = new Promise<void>((resolve, reject) => { this._onReady = { promise: p, resolve, reject }; </ins> }); this._onReady.promise = p;

Discussion:
VSCode Version: latest insiders OS Version: macOS Steps to Reproduce: any TS or JS file =! /cc fyi (might be TS lint or JS lint update related?) though I also see this when running out of sources without extensions and I only see it since maybe a couple of days.
I have also seen this message, it caused my pull request build to fail I think: https://travis-
I just spent 30 minutes thinking this was me, and I still don't know where it comes from. I kept refreshing the workbench, while a JS file was open and saw it always. We need two fixes here: Fix the rejected promise problem Improve this specific error reporting to be able to catch the culprit...
This message means that a promise got rejected and no-one has attached a reject-handler to it.
Yeah but where does it come from? Could we somehow do a better job figuring that out?
Comes from here:
Yesterday I spent quite some time trying to figure out if my new git code was the culprit. Having found this out, I figured it wasn't. suspects it is somewhere in TypeScript code. Yet, no one knows for sure, it is speculation. Rephrasing my previous question: can we, as Code, provide a better message to indicate where that promise came from?
No, you cannot and that is in the nature of a promise/async code. In contrast to ing an error a promise can be rejected anytime without a meaningful stack trace. Worst, that in this case the promise is rejected without a 
And then a very complex search revealed this:
Change:
const terminalGroup = terminalGroups[groupIndex]; for (let terminalIndex = 0; terminalIndex < terminalGroup.terminalInstances.length; terminalIndex++) { const terminal = terminalGroup.terminalInstances[terminalIndex]; <del> const pick = this._createPick(terminal, terminalIndex, filter, groupIndex); </del> <ins> const pick = this._createPick(terminal, terminalIndex, filter, { groupIndex, groupSize: terminalGroup.terminalInstances.length }); </ins> if (pick) { terminalPicks.push(pick); }

Discussion:
VS Code Version: stable and from sources Terminals within a terminal group of size 1 should not show a subindex like the terminal in the first group !
Hey can I work on this issue if it's still open ?
Sorry but I already fixed it in this PR
Change:
"update-grammar": "node ../node_modules/vscode-grammar-updater/bin dotnet/csharp-tmLanguage grammars/csharp.tmLanguage ./syntaxes/csharp.tmLanguage.json" }, "contributes": { <ins> "configurationDefaults": { "[csharp]": { "editor.maxTokenizationLineLength": 2500 } }, </ins> "languages": [ { "id": "csharp",

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 <!-- 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: Version: 1.72.1 (Universal) Commit: OS Version: macOS 12.6. Steps to Reproduce: this file: sure it has a extension. all current instances of VS Code it with VS Code with all extensions disabled: around. In a few seconds the editor will lock up. This file has some extremely long lines, around ~65,000. I was under the impression though that VS Code stopped rendering at some cutoff, however. It appears the issue is the syntax highlighting for C#. If I open it as plain text, then I can no longer reproduce the behavior.
Here is a reduced repro: By using the command, I could find that the oniguruma regex engine gets stuck trying to match the regex: which comes from As a workaround, you can reduce the limit for C# files from 20k to something smaller e.g.: We also have the option of reducing C#'s default. We already did that for javascript to 2500.