jiebi/CodeConvo huggingface dataset:
Change:
private updateBadge(): void { const { errors, warnings, infos } = this.markerService.getStatistics(); const total = errors + warnings + infos; <del> const message = localize('totalProblems', 'Total {0} Problems', total); this.activity.value = this.activityService.showViewActivity(Markers.MARKERS_VIEW_ID, { badge: new NumberBadge(total, () => message) }); </del> <ins> if (total > 0) { const message = localize('totalProblems', 'Total {0} Problems', total); this.activity.value = this.activityService.showViewActivity(Markers.MARKERS_VIEW_ID, { badge: new NumberBadge(total, () => message) }); } else { this.activity.value = undefined; } </ins> } }

Discussion:
Testing I think I can only reproduce when the "problems" pane is in the SCM view. Note that there is no badge: ! I don't know what exactly triggered it to finally update: !
I can repro using the following steps: a folder/workspace that contains a git repository sure that you do not have any pending changes the problems view into the Source Control view container a change to a file, and save the file No badge is being shown the Problems view out of the Source Control view container Badge appears any idea what is going on here?
Change:
}); } <del> // Codes do not interfere assertSingleSequenceElement('x1b[1;3;4;30;31;32;33;34;35;36;37m', (child) => { assert.equal(11, child.classList.length); </del> <ins> // Different codes do not interfere assertSingleSequenceElement('x1b[1;3;4;30;41m', (child) => { assert.equal(5, child.classList.length); </ins> assert(dom.hasClass(child, 'code-bold')); assert(dom.hasClass(child, 'code-italic')); assert(dom.hasClass(child, 'code-underline')); <del> for (let i = 30; i <= 37; i++) { assert(dom.hasClass(child, 'code-foreground-' + i)); } </del> <ins> assert(dom.hasClass(child, 'code-foreground-30')); assert(dom.hasClass(child, 'code-background-41')); }); // New foreground color codes remove old codes assertSingleSequenceElement('x1b[30;31;32;33;34;35;36;37m', (child) => { assert.equal(1, child.classList.length); assert(dom.hasClass(child, 'code-foreground-37')); }); // New background color codes remove old codes assertSingleSequenceElement('x1b[40;41;42;43;44;45;46;47m', (child) => { assert.equal(1, child.classList.length); assert(dom.hasClass(child, 'code-background-47')); }); // New foreground codes don't remove old background codes and vice versa assertSingleSequenceElement('x1b[40;31;42;33m', (child) => { assert.equal(2, child.classList.length); assert(dom.hasClass(child, 'code-background-42')); assert(dom.hasClass(child, 'code-foreground-33')); </ins> }); // Duplicate codes do not change output

Discussion:
Version: 1.33.0-insider (user setup) Commit: Date: 2019-03-13T06:18:20.237Z Electron: 3.1.6 Chrome: 66.0.3359.181 10.2.0 V8: 6.6.346.32 OS: Windows_NT x64 10.0. When coloring debug console output with ANSI escape codes, VSCode will not always properly handle new colors. Instead, it seems to apply a hierarchy of colors where, for example, white will override any other succeeding colors. For example, printing the following string: Results in this output in VSCode: ! Powershell, on the other hand, handles this properly: !
Dup of some of these
I don't see which one it would be a duplicate of. is about a different format, is related to theming and colors, and relate to other locations in the program (not the Debug Console).
How about this one And here's a broader list
is about support for a different format for color codes. This specific bug notes that the colors I am trying to use are supported and rendered, but not handled properly when multiple colors are used in succession. I don't see it in that list either.
Ok, let's reopen this one.
We accept PR's that fix this. Code pointer
I'll work on it, thanks!
Make sure to add tests here
Change:
NameVersion: product.win32NameVersion, ExeBasename: product.nameShort, RegValueName: product.win32RegValueName, <ins> ShellNameShort: product.win32ShellNameShort, </ins> AppMutex: product.win32MutexName, AppId: product.win32AppId, AppUserId: product.win32AppUserModelId,

Discussion:
VSCode Version: 1.7.2 OS Version: Windows Server 2008/2012 Steps to Reproduce: No shortcut (underline) for flie right click context menu. ! Such underline shortcut is very useful to fast open the file with VSCode with keyboard.
Are there any recommendations/specifications as to what the shortcut should be for this?
I think the installer is not in the repo ;)
Change:
private _getActions(): ITerminalStatusHoverAction[] { return [{ <del> label: localize('relaunchTerminalLabel', "Relaunch terminal"), </del> <ins> label: localize('relaunchTerminalLabel', "Relaunch Terminal"), </ins> run: () => this._terminalService.getInstanceFromId(this._terminalId)?.relaunch(), commandId: TerminalCommandId.Relaunch }];

Discussion:
Testing microsoft/vscode-python ! I would use capital casing. Also the links seem cut off on the right
Do you mean the sentence after ? That's meant to be sentence case as it describes what the extension wants to do: <img width="485" alt="Screenshot 2024-06-25 at 7 49 23 AM" src=""
No this: ! I was zoomed in.
I meant for your capital case suggestion. For the zoom I created which was a dupe of
Yeah I felt it should be "Relaunch Terminal", like a button. But maybe there was a discussion against it since its a link?
Moving this to VS Code as this hover is not controlled by python extension.
thoughts?
Seems like we aren't consistent here. But I'd agree that we generally should use capital casing for commands. I think I've seen that pattern used more often than not. ! !
Change:
import { Range } from 'vs/editor/common/core/range'; import { runWithFakedTimers } from 'vs/base/test/common/timeTravelScheduler'; import { SharedInlineCompletionCache } from 'vs/editor/contrib/inlineCompletions/ghostTextModel'; <ins> import { createTextModel } from 'vs/editor/test/common/editorTestUtils'; </ins> suite('Suggest Widget Model', () => { test('Active', async () => {

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 <!-- 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.60.0-insider (user setup) OS Version: Windows_NT x64 10.0. List of extensions: None, all are disabled Steps to Reproduce: a new typescript file. , the suggestions widget opens and the first suggestion is . gray text however, only shows , it's missing the last character. 've attached a gif. Notice how when I type , the gray text displays but when I type , it shows . !
can you please verify todays insider build fixes this?
Yes, it has been fixed!
Change:
import { handleANSIOutput } from 'vs/workbench/contrib/debug/browser/debugANSIHandling'; import { LinkDetector } from 'vs/workbench/contrib/debug/browser/linkDetector'; import { ICellOutputViewModel, IRenderOutput, RenderOutputType } from 'vs/workbench/contrib/notebook/browser/notebookBrowser'; <ins> import { INotebookDelegateForOutput, IOutputTransformContribution as IOutputRendererContribution } from 'vs/workbench/contrib/notebook/browser/view/notebookRenderingCommon'; </ins> import { OutputRendererRegistry } from 'vs/workbench/contrib/notebook/browser/view/output/rendererRegistry'; import { truncatedArrayOfString } from 'vs/workbench/contrib/notebook/browser/view/output/transforms/textHelper'; import { IOutputItemDto, TextOutputLineLimit } from 'vs/workbench/contrib/notebook/common/notebookCommon'; <del> import { INotebookDelegateForOutput, IOutputTransformContribution as IOutputRendererContribution } from 'vs/workbench/contrib/notebook/browser/view/notebookRenderingCommon'; </del> class JavaScriptRendererContrib extends Disposable implements IOutputRendererContribution {

Discussion:
VS Code version: 1.63.0-insider Jupyter Extension version : v2021.10. Python Extension version : v2021.12.-dev OS : Windows 11 Python and/or Anaconda version: 3.9.7 Type of virtual environment used : N/A Jupyter server running: Local Render correctly the Markdown text using the default renderer: ! This is the correct rendering for this: ! a new Jupyter notebook a new cell code with the following Python: Ctrl-Enter to render cell Via "Choose Output Minetype", selecting the "non default" renderer (i.e. the one with "(vscode.markown-language-feature") for Markdown: ! Gives the expected result: ! Also, I could not find a setting allowing me to make the functioning "Output Mimetype" the default... Thanks!
The actual repro attached.
this might be another example of the wrong renderer being chosen.
I get the correct default renderer first time now. text/plain is the only other output option. !
Change:
this.lastNotification?.close(); this.lastShownPort = newTunnel.tunnelRemotePort; this.lastNotification = this.notificationService.prompt(Severity.Info, <del> this.basicMessage(newTunnel) + this.linkMessage(), </del> <ins> await this.basicMessage(newTunnel) + this.linkMessage(), </ins> [this.openBrowserChoice(newTunnel), this.openPreviewChoice(tunnel)], { neverShowAgain: { id: 'remote.tunnelsView.autoForwardNeverShow', isSecondary: true } }); this.lastNotification.onDidClose(() => {

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. --With any port forwarding command, the devcontainer launches the output that looks similar to: <img width="448" alt="Port forwarding notification" src=""Hidden under the "ports" tab is the label associated with the forwarded application, e.g. <img width="609" alt="Example of Port forwarded name" src=""This yields a moment of confusion as to what "your application" is. Thus, it would be great if the name in could be specified in place of . So, the proposal is if the following entry in is present: We would want the notification panel to show the value in the field instead of : <img width="442" alt="Display RStudio name in notification panel associated with port forwarding" src=""
<!-- -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!
I don't know that all labels will make sense as a substitute for "Your application...". I will change it to be "Your application (RStudio)..."
thank you so much for working on the issue and submitting a fix! :)
Change:
const selectedItems = quickPick.selectedItems; if (selectedItems.length === 1) { const selectedItem = selectedItems[0].id!; <del> quickPick.busy = true; </del> const remoteExtension = this.remoteExtensionMetadata.find(value => ExtensionIdentifier.equals(value.id, selectedItem)); if (remoteExtension) { <ins> quickPick.items = []; quickPick.busy = true; </ins> quickPick.placeholder = nls.localize('remote.startActions.installingExtension', 'Installing extension... '); const galleryExtension = (await this.extensionGalleryService.getExtensions([{ id: selectedItem }], CancellationToken.None))[0];

Discussion:
Testing I think I am wrongly being asked to install extensions now, but when I do need to install an extension, it would be nice to show a progress bar somewhere while this runs <img width="642" alt="image" src="https://user-"Or if I am going to be waiting for a bit, you might run the progress in a modal dialog or non-modal notification instead of a quickpick
somewhat related: FWIW I did see a progression bar while the extension was installing on Windows

Testing After you click on e.g. Remote Repositories and you don't have the extension installed, the picker is still displayed with the options while the installation is in progress. Because the options there aren't very responsive during installation, maybe it's worth hiding them and only show the "installing" progress bar? !

Testing to... ! to Tunnel... a Tunnel window reloads the window is connecting to that chosen tunnel, click ! the window connects to the tunnel, click again ! (same as last pic) This is different than if I didn't take Step 4. Observe: to... ! to Tunnel... a Tunnel window reloads the window connects to the tunnel, click ! I think I would expect the 2nd and 3rd images to be this ^ as well.

Testing a OSS build without the marketplace in the welcome screen bug ! I see an empty quick pick
Change:
} } <del> const shellIntegrationString = getShellIntegrationTooltip(instance, true, this._configurationService); </del> <ins> const shellIntegrationString = getShellIntegrationTooltip(instance, true); </ins> const iconId = this._instantiationService.invokeFunction(getIconId, instance); const hasActionbar = !this.shouldHideActionBar(); let label: string = '';

Discussion:
Testing It turns out "Run Recent Command" works both with shell integration disabled and enabled, but I wasn't seeing the shell integration prompt on Windows. I'm using pwsh 7. When I disable shell integration, I see the header that tells me I'm using version 7. When I enable shell integration, I see just the prompt. My profile references the following script:
what do you mean that your profile references that script? could you provide the profile you're using?
also what's the value of your ?
PS1: Init script: Screenshot: ! Edit: I just realized the word prompt isn't what I meant. Changed the issue title.
oh you should see it only on hover of the icon in the tab list.
we changed this so no longer show in the buffer
It doesn't seem to be in the tab list icon hover: !
I think this is working as designed since we hid the message? This is also by design, it's just populating that list that only happens when shell integration is enabled.
Oh it should be on the tab hover though.
not seeing it on mac either
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!
Change:
this._register(this.layoutService.onDidChangePartVisibility(() => this.setYCoordinate())); this._register(browser.PixelRatio.onDidChange(() => this.setYCoordinate())); <ins> const resizeListener = this._register(new MutableDisposable()); this._register(this.layoutService.onDidChangeActiveContainer(() => { this._yRange = undefined; // note: we intentionally don't read the activeContainer before the // `then` clause to avoid any races due to quickly switching windows. this.layoutService.whenActiveContainerStylesLoaded.then(() => { if (this.isBuilt) { this.layoutService.activeContainer.appendChild(this.$el); this.setCoordinates(); } resizeListener.value = this._register(dom.addDisposableListener( dom.getWindow(this.layoutService.activeContainer), dom.EventType.RESIZE, () => this.setYCoordinate())); }); })); </ins> } private storePosition(): void { <del> const left = dom.getComputedStyle(this.$el).left; if (left) { const position = parseFloat(left) / mainWindow.innerWidth; this.storageService.store(DEBUG_TOOLBAR_POSITION_KEY, position, StorageScope.PROFILE, StorageTarget.MACHINE); } if (this.yCoordinate) { </del> <ins> const activeWindow = dom.getWindow(this.layoutService.activeContainer); const isMainWindow = this.layoutService.activeContainer === this.layoutService.mainContainer; const left = this.$el.getBoundingClientRect().left / activeWindow.innerWidth; if (isMainWindow) { this.storageService.store(DEBUG_TOOLBAR_POSITION_KEY, left, StorageScope.PROFILE, StorageTarget.MACHINE); </ins> this.storageService.store(DEBUG_TOOLBAR_Y_KEY, this.yCoordinate, StorageScope.PROFILE, StorageTarget.MACHINE); } else { <del> this.storageService.remove(DEBUG_TOOLBAR_Y_KEY, StorageScope.PROFILE); </del> <ins> this.auxWindowCoordinates.set(activeWindow, { x: left, y: this.yCoordinate }); </ins> } }

Discussion:
So that you know that you are debugging. //cc
I'm not sure on this, personally I would find it kind of annoying to have the toolbar on all windows. Maybe it's a setting, or can be dragged between windows? (Is there reusable cross-window drag logic yet?)
To clarify: not visible on all windows at the same time, but visible on the window that has focus maybe? Otherwise, it will be quite hard to step through a file using mouse in floating windows?
I think having it appear in the active window (when in floating mode) is good.
We solved this issue for quick open where we also want to appear it at the window that has focus. For that, there is which will always be the right container to put global UI elements and is derived from the currently active window. There is a event that can be used to reparent the UI element live.
Thanks!!!
Verification: Start debugging, and drag an editor out to an aux window Make sure the debug toolbar appears on whichever window has focus The debug toolbar should reappear in the same place per-window as you focus it
Change:
assert.equal(typeof env.appName, 'string'); assert.equal(typeof env.machineId, 'string'); assert.equal(typeof env.sessionId, 'string'); <ins> assert.equal(typeof env.shell, 'string'); </ins> }); test('env is readonly', function () {

Discussion:
Provided the Python extension uses the API and it works as expected (), we should finalize it in July.
To verify just do a quick test that it seems to be working as expected on any platform, a more thorough test was done in the June milestone.
Change:
} DOM.append(this.indicatorsContainerElement, indicatorsToShow[indicatorsToShow.length - 1].element); DOM.append(this.indicatorsContainerElement, $('span', undefined, ')')); <ins> this.resetIndicatorNavigationKeyBindings(indicatorsToShow); } } private resetIndicatorNavigationKeyBindings(indicators: SettingIndicator[]) { this.keybindingListeners.clear(); this.indicatorsContainerElement.role = indicators.length >= 1 ? 'toolbar' : 'button'; if (!indicators.length) { return; </ins> } <ins> const firstElement = indicators[0].focusElement ?? indicators[0].element; firstElement.tabIndex = 0; this.keybindingListeners.add(DOM.addDisposableListener(this.indicatorsContainerElement, 'keydown', (e) => { const ev = new StandardKeyboardEvent(e); let handled = true; if (ev.equals(KeyCode.Home)) { this.focusIndicatorAt(indicators, 0); } else if (ev.equals(KeyCode.End)) { this.focusIndicatorAt(indicators, indicators.length - 1); } else if (ev.equals(KeyCode.RightArrow)) { const indexToFocus = (this.focusedIndex + 1) % indicators.length; this.focusIndicatorAt(indicators, indexToFocus); } else if (ev.equals(KeyCode.LeftArrow)) { const indexToFocus = this.focusedIndex ? this.focusedIndex - 1 : indicators.length - 1; this.focusIndicatorAt(indicators, indexToFocus); } else { handled = false; } if (handled) { e.preventDefault(); e.stopPropagation(); } })); } private focusIndicatorAt(indicators: SettingIndicator[], index: number) { if (index === this.focusedIndex) { return; } const indicator = indicators[index]; const elementToFocus = indicator.focusElement ?? indicator.element; elementToFocus.tabIndex = 0; elementToFocus.focus(); const currentlyFocusedIndicator = indicators[this.focusedIndex]; const previousFocusedElement = currentlyFocusedIndicator.focusElement ?? currentlyFocusedIndicator.element; previousFocusedElement.removeAttribute('tabIndex'); this.focusedIndex = index; </ins> } updateWorkspaceTrust(element: SettingsTreeSettingElement) {

Discussion:
Change the key event handling so that the user can tab once into the indicators container, and then use left/right arrows to focus on different indicators.
the Settings editor, search on the setting. tab should focus on the first indicator. again should go to the checkbox. -tabbing twice from there should focus the entire setting again. again to the indicator. The left and right arrow keys, along with the home and end keys should allow the user to focus onto the other indicators. indicators container should keep track of the focused indicator. If the second indicator is focused, and the user tabs to the checkbox and back, the second indicator should be the one focused rather than the first one.
Change:
this.resolveSmartCaseToCaseSensitive(contentPattern); } <del> const query = <ISearchQuery>{ </del> <ins> const query: ISearchQuery = { </ins> type, folderQueries, usingSearchPaths: !!(searchPaths && searchPaths.length), extraFileResources: options.extraFileResources, <del> filePattern: options.filePattern, </del> <ins> filePattern: options.filePattern ? options.filePattern.trim() : options.filePattern, </ins> excludePattern, includePattern, maxResults: options.maxResults,

Discussion:
<!-- Please search existing issues to avoid creating duplicates. --trim file name search <!-- Describe the feature you'd like. --Suppose you're looking for or . If you search them exactly, you'll get the file result. If you prepend and/or append whitepace, e.g. , you won't. It's common to accidentally include spaces when copy & pasting file names from, say, test reports. I'd love to fix this issue if you don't mind!
Assuming leading and trailing whitespace is never relevant to any filePattern in a search, I think the correct spot would be here: A PR would be great!
Change:
{ id: 'application/settingsSync', label: localize('settingsSync', "Settings Sync"), <del> settings: ['settingsSync.*'] </del> <ins> settings: ['settingsSync.*', 'sync.*'] </ins> } ] }

Discussion:
Oh, these are deprecated. Maybe the error only shows up because I have configured them. Anyway I can add a simple change so that they show up (configured deprecated settings will be shown in the settings UI)
Closing this since PR got merged
To verify Open Developer tools console Open Settings editor (UI) make sure above warning is not shown
Change:
return this.open(this.userSettingsResource, options); } <ins> openLanguageSpecificSettings(languageId: string, options: IOpenSettingsOptions = {}): Promise<IEditorPane | undefined> { if (this.shouldOpenJsonByDefault()) { options.query = undefined; options.revealSetting = { key: `[${languageId}]`, edit: true }; } else { options.query = `@lang:${languageId}${options.query ? ` ${options.query}` : ''}`; } options.target = options.target ?? ConfigurationTarget.USER_LOCAL; return this.open(this.userSettingsResource, options); } </ins> private open(settingsResource: URI, options: IOpenSettingsOptions): Promise<IEditorPane | undefined> { options = { ...options,

Discussion:
Steps to Reproduce: command a language Settings file is opened. Settings Editor with language filter shall be opened given that the editor supports it.