jiebi/CodeConvo huggingface dataset:
Code change:
if (!isUndefined(e.enabled)) { button.enabled = action.enabled; } <ins> if (!isUndefined(e.label)) { button.label = action.label; } </ins> })); disposables.add(profileElement.onDidChange(e => { if (e.message) {

Related discussion:
text: <!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --when you import a profile file, vscode will create a new profile but not overwrite current one or merge it to current one Actually I don't need so many profiles, the default profile is enough for me. sometimes I just want to import a keybinding settings from some one, and keep my other settings after I import it, WHAT HAPPEND!!!, all my other settings and extension are gone!!! This is unreasonable! what vscode should do is merging(or overwriting) new keybinding to my old one!! <!-- Describe the feature you'd like. --
Can I have a try on this? I'm new to contributing to this repo but want to try out stuff and get along with starting out at the same time..
Edit: Ignore this, I misread this with other issue
Just wondering is not this same as Can you please distinguish your ask from the other?
partially like But I request more flexibility: Suppose current profile is profile X (X can be default or user profile) when I import A profile, that will be: A.keybinding, A.UI, A.extensions ..... and I choose A.keybindings only to import what I expect: there are 2 options for user when importing: option 1 - merge to current profile, (so X profile's keybindings overwritten but other part of settings kept) option 2 - or create a new profile partially basing on what imported (this is what VSCode currently does )
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
<!-- -c9e0-7adb-d31b- --:slightlysmilingface: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our . Happy Coding!
?
Code change:
if (!isUndefined(e.enabled)) { button.enabled = action.enabled; } <ins> if (!isUndefined(e.label)) { button.label = action.label; } </ins> })); disposables.add(profileElement.onDidChange(e => { if (e.message) {

Related discussion:
text: I would think this is not a good one to start at and recommend to look for issues labelled with or
I really want to try out.. just to experience and I think I would be able to do it. Even if it's not a good first issue I have contributed to other open source repos. Can I?
Sure, here is the starting point
Thanks a lot for this I was checking your PR with the user-profile feature implementation.. For now I'm just figuring out stuff that is already present. Just a single doubt that I had was about the merging of profiles.. would the editor be like a merge editor that opens whenever we get a merge conflict on git..? Or something else with checkboxes on which settings to get imported from each of the sides(current and imported one)? I'll try my best
For the sake of simplicity, during conflicts, I would simply override with the new one.
Also
Note to self: see for manual workaround.
You can now import and replace any existing profile (including Default profile) from new Profiles Editor UI
To verify: Create a profile A and configure with some settings and extensions Export the profile A to the disk Change some settings and extensions in the profile Import the profile A You should be able to import the profile with name A replacing the existing profile
When I export the profile, install some new extensions, then import the profile with the same name, I would expect the installed extensions to disappear from my extensions list, but that doesn't seem to be the case
It is working for me, ie., I only see the extension from the imported profile. After importing, extensions are getting replaced. Can you please share the exact steps to repro?
Using vscode 1.92.2, I can't figure out how to get to that UI. Where do I find it?
search settings for "profiles experimental"
Thank you!
Code change:
return false; } <del> async createProfileFromShellAndShellArgs(shell?: unknown, shellArgs?: unknown): Promise<ITerminalProfile | undefined> { const detectedProfile = this._terminalService.availableProfiles?.find(p => p.path === shell); </del> <ins> async createProfileFromShellAndShellArgs(shell?: unknown, shellArgs?: unknown): Promise<ITerminalProfile | string> { const detectedProfile = this._terminalService.availableProfiles?.find(p => { if (p.path !== shell) { return false; } if (p.args === undefined || typeof p.args === 'string') { return p.args === shellArgs; } return p.path === shell && equals(p.args, (shellArgs || []) as string[]); }); </ins> const fallbackProfile = (await this.getDefaultProfile({ remoteAuthority: this._remoteAgentService.getConnection()?.remoteAuthority, os: this._primaryBackendOs! })); <ins> fallbackProfile.profileName = `${fallbackProfile.path} (migrated)`; </ins> const profile = detectedProfile || fallbackProfile; const args = this._isValidShellArgs(shellArgs, this._primaryBackendOs!) ? shellArgs : profile.args; const createdProfile = {

Related discussion:
text: you should see a migration message. migrated from shell/shellArgs...
I wonder if this could be the issue
Hmmm I don't see
The fix here is probably:
Even better is marking the type as readonly too:
We might be able to catch this in the future with
I don't understand what's going wrong here though - if userValue is undefined, profiles get set to already
I'd think making it readonly would be even worse since then we can't add properties to it - such as the newly created profile
Which works fine, the failure case was when had profiles set. The there just corrects the type we're receiving from the config service
ok, should this be a candidate or moved to June?
I think it meets the candidate bar, we really want migration to be solid
Code change:
} update(): void { <del> this.enabled = !!this.extension && !this.extension.isBuiltin && !!this.extension.gallery && !!this.extension.local && !!this.extension.server && this.extension.state === ExtensionState.Installed; </del> <ins> this.enabled = !!this.extension && !this.extension.isBuiltin && !!this.extension.gallery && !!this.extension.local && !!this.extension.server && this.extension.state === ExtensionState.Installed && !this.extension.deprecationInfo; </ins> } override async run(): Promise<any> {

Related discussion:
text: Code, search for "bracket pair colorizer" how it is nicely rendered as deprecated on install -notice dialog The dialog should offer a third button to configure built-in settings instead. Same if an extension had an alternative extension. Example: ! fyi
I assume you want the extra button to replicate this link in the hover tip, right? ! As an aside, any doc yet about how an extension gets tagged as deprecated?
yes, a button that will replicate that behaviour correct. No docs yet written. I plan to add them soon. The process is to write an email to us or to ping us on GitHub. In the future we will have a more straightforward approach when MP adds UI.
I feel, the third option would be a general options like More Information... clicking on this shall open the extension editor. This will be consistent and useful so that user will get enough info before taking an action
"More Information..." might work, but in order to have one less hop we could render: "Install EXTENSION_NAME Instead" "Enable Native Settings Instead" That would just do the action right straight away. I am not sure if those button names are too long. So just a suggestion. Whatever you prefer...
Yah I see your point, but going to extension editor gives user more information and an opportunity to look at the alternative extension before installing. And also I do not like that this button changes with extension. More Information... would be consistent.
That's fair. We can start with your proposal and see how it goes. My only concern with "More Information" is that the user might think it is more information about the deprecation. While we actually want to guide the user to a solution. So it is something like "More about the alternative". I am not sure if there is a good button label to represent this.
<img width="308" alt="image (1)" src="https://user-"
Changed the second button as follows ! !
Awesome!!
Code change:
class ContentHitTestResult { readonly type = HitTestResultType.Content; <ins> get hitTarget(): HTMLElement { return this.spanNode; } </ins> constructor( readonly position: Position, readonly spanNode: HTMLElement,

Related discussion:
text: <!-- 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 <!-- 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.88.0-insider in Safari OS Version: macOS Steps to Reproduce: Safari open a file with: to the right of any the cursor goes to the beginning of the line not the end This does not repro in stable
I didn't do any changes the last couple of milestones that could (easily) explain this. Can you reproduce this in the monaco editor? If so, can you do a bisect?
I bisected it to this commit: (the commit before it) does not repro the issue. This wasn't in Monaco editor, I just used run code web:
This commit is just a rename refactoring. It is very unlikely it causes this... This does not reproduce in chrome, right?
The bug does not reproduce in Edge on macOS, but it repros in Safari.
Unfortunately, I don't have access to Safari. Can you double check that this is caused by that commit? Can you locally rename the class back to the original name and see if it still happens? It does not make any sense that this commit would cause this behavior only on Safari.
Ok and I paired a bit on this and are really stumped. Bad news: That commit I called out seems to be a red herring. Good news: we can repro in the Monaco Editor Playground.
Code change:
class ContentHitTestResult { readonly type = HitTestResultType.Content; <ins> get hitTarget(): HTMLElement { return this.spanNode; } </ins> constructor( readonly position: Position, readonly spanNode: HTMLElement,

Related discussion:
text: Here's a side by side of two versions of the dev build: <img width="1680" alt="image" src=""You can see when I click to the right of a line, the older (working) build has the correct position here, while the newer broken build has column 1. Here are the links to these versions: Working: Broken: I believe this is out of both of our depths at this point so I'm passing to you This is a regression so I think it should be fixed before we release (assuming I'm not the only one to repro)
Did a bisect using and it points to
In that case, it is most likely .
Code change:
resource ); this._disposables.push(disposables.add(ref.object.notebook.onDidChangeContent(e => { <del> if (result && e.rawEvents.some(event => event.kind === NotebookCellsChangeType.ChangeCellMetadata && event.index === cellIndex)) { </del> <ins> if (result && e.rawEvents.some(event => (event.kind === NotebookCellsChangeType.ChangeCellMetadata || event.kind === NotebookCellsChangeType.ChangeCellLanguage) && event.index === cellIndex)) { </ins> const value = getFormattedMetadataJSON(ref.object.notebook, cell.metadata, cell.language); if (result.getValue() !== value) { result.setValue(getFormattedMetadataJSON(ref.object.notebook, cell.metadata, cell.language));

Related discussion:
text: Testing Before reverting metadata ! After reverting ! language remains . If I try to revert, nothing happens.
I was expecting the revert will revert the content to the version on the left side if the diff editor is opened from the timeline view, but it seems reverting to something different.
I think this can be fixed next month.
Thats a duplicate of Marking as as metadta gets reverted
Yes, the plan is to fix next month, I have a PR, but do not want to merge it just yet Its a slightly convoluted issue,
Code change:
} export const config = { <del> version: product.electronRepository ? '22.4.5' : util.getElectronVersion(), </del> <ins> version: product.electronRepository ? '22.4.6' : util.getElectronVersion(), </ins> productAppName: product.nameLong, companyName: 'Microsoft Corporation', copyright: 'Copyright (C) 2023 Microsoft. All rights reserved',

Related discussion:
text: This works on web e.g. but does not work in desktop, either with a desktop git clone or with RemoteHub. The last time this happened it was due to a regression in the list of enabled codecs for our Electron builds.
Sorry for the breakage, the changes from has not been to Electron = 22 versions yet. It will be addressed in new builds this week.
Addressed in
Reopening because of
Code change:
"when": "config.git.enabled && scmProvider == git && gitState == idle" }, { <ins> "command": "git.pullFrom", "when": "config.git.enabled && scmProvider == git && gitState == idle" }, { </ins> "command": "git.push", "when": "config.git.enabled && scmProvider == git && gitState == idle" },

Related discussion:
text: We have the ability to select which branch to push to in the source control, could we please have a pull from option? To target specific branches. Unless it exists already? I have only recently started using VS Code and i love it!
This is an easy contribution, care to submit a PR? PS: You currently have the ability to select which remote to push to, not which branch.
I'll take on this. Is it correct that branch names are not stored anywhere? I've checked in and cannot find anywhere they could be stored. If there is nothing, I'll just take a user input using showInputBox.
I created a pull request for this: Please take a look when you have the chance.
merge conflict is fixed.
Merging with
Code change:
"when": "config.git.enabled && scmProvider == git && gitState == idle" }, { <ins> "command": "git.pullFrom", "when": "config.git.enabled && scmProvider == git && gitState == idle" }, { </ins> "command": "git.push", "when": "config.git.enabled && scmProvider == git && gitState == idle" },

Related discussion:
text: In VS Code we able to push git repos to different places with "git push to" and choosing the remote server to push. I'll be nice if we can be able to choose from the repo to pull files, and manage the default remote, today the first remote repo is the default isn't possible to change that via VS Code
Thanks for all your contributions. You all created a PR to solve the same issue; all in a surprisingly similar way. I wanted to keep the record of all your work so I did an octopus merge with git, thus keeping your names in history. Thanks once again!
Code change:
return Promise.resolve(null); } if (debugService.getConfigurationManager().canSetBreakpointsIn(widget.getModel())) { <del> return debugService.addBreakpoints(modelUri, [{ lineNumber: position.lineNumber, column: position.column > 1 ? position.column : undefined }]); </del> <ins> return debugService.addBreakpoints(modelUri, [{ lineNumber: position.lineNumber, column: position.column > 1 ? position.column : undefined }], 'debugCommands.inlineBreakpointCommand'); </ins> } }

Related discussion:
text: When going over our telemetry for debug actions we have the ability to track usage counts of debug actions triggered from keyboard shortcuts and commands, as they execute commands which we emit telemetry for, but we don't seem to have telemetry in place for breakpoints set in the gutter (click or context menu). This is unfortunate as my hypothesis is that the majority of breakpoints are set this way. Ask Add ability to track breakpoint toggles (add/remove/change) from Gutter click Add ability to track breakpoint toggles from gutter context menu
would you like to contribute a PR for this? It shuold be fairly simple and you already have the nice code pointers.
I'd be happy too, but we should land on an agreement on how to implement it. What's the best approach? 1) Add telemetry directly to the gutter actions 2) Re-wire the gutter actions to execute a command instead?
for the best approach let's first see what you want to get exactly? total amount of all breakpoints set (including the gutter) grained events for breakpoint setting based on the way the user initated that aciton In case of 1 we should just add a telemetry ping in the  since everyone should go through there In case of 2 depends on how fine grained you want it, if for every place then we should add an argument or something like that in the addBreakpoints method and then also report that to telemetry.
I'd like us to be able to contribute a source/initiator to given breakpoint, so we can get an UI usage distributions, etc.
I suggest the following Add a third argument In the implementation of that method use the telemetry service to report the appropriate event with the context. And you should nicely get all the errors of all the callers of , simply pass different string context for each caller and you shuold be good to go. Let me know if you have any questions
Cool, I'l see what I can get cooking!
Removing my assignment for this. feel free to assign me back if you do not have time to tackle this and if we need this for August
hey, would you still like this? If yes I can also look into it in October
I'd still like to do this to get my hands dirty.
cool, unasigning myself and let's leave it for October
Verified by code review, adding verified label
Code change:
title: 'Debug', icon: Codicon.debug, order: 1, <del> when: ContextKeyExpr.and(CONTEXT_DEBUG_STATE.notEqualsTo('inactive'), ContextKeyExpr.equals('config.debug.toolBarLocation', 'commandCenter')) </del> <ins> when: ContextKeyExpr.and(CONTEXT_IN_DEBUG_MODE, ContextKeyExpr.equals('config.debug.toolBarLocation', 'commandCenter')) </ins> }); registerDebugToolBarItem(CONTINUE_ID, CONTINUE_LABEL, 10, icons.debugContinue, CONTEXT_DEBUG_STATE.isEqualTo('stopped'));

Related discussion:
text: vscode window (given you have setting to put debug controls in the command center notice how the command center includes debug controls and then right away disappear See:
Code change:
Config = '5_config' } <del> export const enum TerminalTabContextMenuGroup { Default = '1_create_default', Profile = '2_create_profile', Configure = '3_configure' } </del> export const enum TerminalMenuBarGroup { Create = '1_create', Run = '2_run',

Related discussion:
text: Could look like this, but have and/or tasks entries as well as a one. Hiding it by default is a good way to avoid cluttering the action bar - so people only see it if they want to <img width="285" alt="Screen Shot 2022-09-30 at 12 56 57 PM" src="https://user-"
cc
Talked w Kai and we're thinking to instead add a action to the terminal dropdown which aligns with the menu and will aid in discoverability !
Code change:
static readonly ID: string = 'workbench.explorer.emptyView'; static readonly NAME = nls.localize('noWorkspace', "No Folder Opened"); <ins> private _disposed: boolean = false; </ins> constructor( options: IViewletViewOptions,

Related discussion:
text: This is a valid bug. To repro: Open an empty window Open the explorer view. Make sure you have welcome page opened in the editor. Click on link the empty view Select a folder to open You will see above error trace in the console
No Folder Opened view () is removed when folder is opened. When removed this view is disposed. Following listener is getting invoked even after view is disposed It is because, view is being removed/disposed by listening to the same event It seems, once an event is fired all its listeners are invoked even if one of the listeners is disposed in the middle. This is causing the listener to be called even if it is disposed. Assigning to you also because it is related welcome view.
What link should I click? !
You have to make sure welcome page is opened <img width="955" alt="image" src="https://user-"
Code change:
} } <ins> // If any candidates end with special characters that are likely to not be part of the // link, add a candidate excluding them. const specialEndCharRegex = /[[]]$/; const trimRangeMap: Map<string, number> = new Map(); const specialEndLinkCandidates: string[] = []; for (const candidate of linkCandidates) { let previous = candidate; let removed = previous.replace(specialEndCharRegex, ''); let trimRange = 0; while (removed !== previous) { trimRange++; specialEndLinkCandidates.push(removed); trimRangeMap.set(removed, trimRange); previous = removed; removed = removed.replace(specialEndCharRegex, ''); } } linkCandidates.push(...specialEndLinkCandidates); </ins> const linkStat = await this._validateLinkCandidates(linkCandidates); // Create the link if validated

Related discussion:
text: <!-- 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: 1.71.0-insider OS Version: macOS Big Sur 11.6 Steps to Reproduce: a link in terminal containing "[" or "]" characters (ex. ) to cmd+click the link, observe that it is split on those characters. For example, links to , , , , and . In reality this is one valid path (nextjs uses "[ ]" to identify parameters in URLs) <img width="526" alt="Screen Shot 2022-09-22 at 5 12 00 PM" src="https://user-"
This works for urls: ! Not local paths: !
reported that it does (kind of) work: ! We would need to review all link detectors for this.
This happens with local links because [] are currently excluded chars: