jiebi/CodeConvo huggingface dataset:
Change:
export function hasChildProcesses(processId: number | undefined): Promise<boolean> { if (processId) { // if shell has at least one child process, assume that shell is busy if (platform.isWindows) { <del> return spawnAsPromised('wmic', ['process', 'get', 'ParentProcessId']).then(stdout => { const pids = stdout.split('rn'); return pids.some(p => parseInt(p) === processId); }, error => { return true; </del> <ins> return new Promise<boolean>(async (resolve) => { // See #123296 const windowsProcessTree = await import('windows-process-tree'); windowsProcessTree.getProcessTree(processId, (processTree) => { resolve(processTree.children.length > 0); }); </ins> }); } else { return spawnAsPromised('/usr/bin/pgrep', ['-lP', String(processId)]).then(stdout => {

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. --WMIC is deprecated and has been for some time. Currently it is used for determining if any integrated terminal instances have any child processes. There are PowerShell commands that can return the count of child processes given a parent process ID, but I'm not sure what the performance hit for using PowerShell would be.
Windows doesn't maintain strong parent/child process relationships, so the design here needs some more thinking. If you're feeling gangster, you can call with and dig out the undocumented member. But I wouldn't bother, because you then need to consider and now points to something else entirely.
Thanks for all the help !
Change:
const latestCell = this.notebookEditor.getCellByInfo(resolvedResult.cellInfo); if (latestCell) { latestCell.outputIsFocused = true; <del> this.notebookEditor.focusNotebookCell(latestCell, 'output', { skipReveal: true }); </del> <ins> this.notebookEditor.focusNotebookCell(latestCell, 'output', { skipReveal: true, outputWebviewFocused: true }); </ins> } } break;

Discussion:
a cell with the code the input field in the cell's output :bug: the cell output container will sometimes steal output from the input field !
Change:
}); }); <del> test('collapseDeepestExpandedLevel', () => { return model.setInput(SAMPLE.DEEP2).then(() => { return model.expand(SAMPLE.DEEP2.children[0]).then(() => { return model.expand(SAMPLE.DEEP2.children[0].children[0]).then(() => { assert(model.isExpanded(SAMPLE.DEEP2.children[0])); assert(model.isExpanded(SAMPLE.DEEP2.children[0].children[0])); return model.collapseDeepestExpandedLevel().then(() => { assert(model.isExpanded(SAMPLE.DEEP2.children[0])); assert(!model.isExpanded(SAMPLE.DEEP2.children[0].children[0])); }); }); }); }); }); </del> test('auto expand single child folders', () => { return model.setInput(SAMPLE.DEEP).then(() => { return model.expand(SAMPLE.DEEP.children[0]).then(() => {

Discussion:
introduced a  API to the tree via I'm pretty sure that method's implementation can be achieved outside the tree itself. There are , and methods on it. If so, please remove the API method and implement on the search usage side.
This was to the tree with the idea in mind that it would be useful elsewhere like the file explorer. And in fact I'd really like to have the same behavior on the file explorer. So moving it into search code is not the right thing to do but it could go into some TreeHelper class outside of the tree itself.
No need to overload with classes. A simple util function would do.
I don't think this is actually achievable outside the tree itself with the current tree API. It needs to calculate the tree depth to collapse to, and the navigator from just returns elements of the tree without the context of where they are in the tree. IMO, it makes sense for this method to stay on the tree since it's coupled with the tree's data
Good point. But this is really only used for search. I don't really buy into the generic usefulness of this as an API call, which needs to be maintained for the entire tree's lifecycle. As far as I am aware, search trees can only go 2/3 levels deep, depending on whether there are multiple folders in the workspace or not. That knowledge is kept in the search's tree user; the same entity knows exactly what it should collapse or otherwise. Can't it just call the right calls?
Change:
const onDidChangeActionButton = () => { this.actionBar.clear(); <del> const defaultProvider = this.scmService.getDefaultInputValueProvider(input.repository); </del> <ins> const actionCount = this.toolbarContextKeyService.getContextKeyValue<number>(SCMInputContextKeys.ActionCount.key) ?? 0; </ins> <del> if (input.actionButton && defaultProvider === undefined) { </del> <ins> if (input.actionButton && actionCount === 0) { </ins> const action = new Action( input.actionButton.command.id, input.actionButton.command.title,

Discussion:
<img width="419" alt="image" src=""
While the SCM view is refreshing itself, I still sometimes see the sparkle move outside of the input box, then back in on the next layout
could you verify this again? With the latest Insiders the sparkle should not appear outside the input box.
LGTM now, thank you for the fix!
Change:
{ <del> // Use IntelliSense to learn about possible Node.js debug attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "extensionHost", "request": "launch", "name": "Launch Extension", "runtimeExecutable": "${execPath}", "args": [ "--extensionDevelopmentPath=${workspaceFolder}" ], "sourceMaps": true, "outFiles": [ "${workspaceFolder}/out/**/*.js" ] } ] } </del>  No newline at end of file <ins> // Use IntelliSense to learn about possible Node.js debug attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "extensionHost", "request": "launch", "name": "Launch Extension", "runtimeExecutable": "${execPath}", "args": ["--extensionDevelopmentPath=${workspaceFolder}"], "sourceMaps": true, "outFiles": ["${workspaceFolder}/out/**/*.js"] }, { "type": "extensionHost", "request": "launch", "name": "Launch Tests", "runtimeExecutable": "${execPath}", "args": [ "--extensionDevelopmentPath=${workspaceFolder}", "--extensionTestsPath=${workspaceFolder}/out/test", "--disable-extensions", "--skip-getting-started", ], "sourceMaps": true, "outFiles": ["${workspaceFolder}/out/**/*.js"] } ] } </ins>

Discussion:
Issue Type: <bFeature Request</bI'm not talking about the editor's horizontal scroll is a very thin scroll bar between the tabs and editor,that's what i'm talking about. When you open too many tabs,some tabs are invisible so you need scrolling horizontally. There's a scrollbar to scroll the tabs,but it's too thin. Of course,this wasn't a big bug or what,and I can use "Ctrl+Tab" to switch tabs. maybe this bar should be bigger or even disappear considering it's not helpful. VS Code version: Code 1.32.3 (, 2019-03-14T23:43:35.476Z) OS version: Windows_NT x64 10.0. <!-- generated by issue reporter --
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.49 --<!-- potentialduplicatescomment --
Duplicate of
Oops, tagged wrong issue.
Change:
} focusSelected(): void { <del> const selection = this._list.getSelection(); if (selection.length === 1) { this._list.setFocus([selection[0]]); </del> <ins> if (this._list.length > 0) { this._list.setFocus([0]); </ins> } }

Discussion:
VS Code Insiders, macOS user profile any typescript file. For example -exception in the dev tools console
I can only reproduce with
Thanks for fixing. Somehow that setting was still applied even though I was using a new profile...
Change:
async init(repository: string, options: InitOptions = {}): Promise<void> { const args = ['init']; <del> if (options.defaultBranch && options.defaultBranch !== '') { </del> <ins> if (options.defaultBranch && options.defaultBranch !== '' && this.compareGitVersionTo('2.28.0') !== -1) { </ins> args.push('-b', options.defaultBranch); }

Discussion:
Type: <bBug</bGo to 'Source control' and click 'Initialize Repository'. An error message shows "Git:unknown switch 'b'". VS Code version: Code 1.79.2 (, 2023-06-14T08:57:04.379Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (1)</summaryExtensionVersion ------ LiveServer5.7.9 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Having the same issue after a recent update this morning. Version: 1.79.2 Date: 2023-06-14T08:58:52.392Z (1 day ago) Electron: 22.5.7 Chromium: 108.0.5359.215 16.17.1 V8: 10.8.168.25-electron.0 OS: Darwin x64 22.5.0
Could you please share the contents of the ? Thanks!
I encountered the same issue.... Output from GIT: 2023-06-16 10:31:06.946 [info] git init -b main [4ms] 2023-06-16 10:31:06.946 [info] error: unknown switch `b' usage: git init [-q | --quiet] [--bare] [--template=<template-directory] [--shared[=<permissions]] [<directory] --template <template-directorydirectory from which templates will be used --bare create a bare repository --shared[=<permissions] specify that the git repository is to be shared amongst several users -q, --quiet be quiet --separate-git-dir <gitdirseparate git dir from working tree 2023-06-16 10:33:13.422 [info] git rev-parse --show-toplevel [1ms] 2023-06-16 10:33:13.422 [info] fatal: not a git repository (or any of the parent directories): .git
Yes, that's the exact same Output received.
Could you please share the version of git that you are using? Thank you!
!
Change:
} this.refreshScheduler.schedule(noDelay ? 0 : undefined); <ins> this.filterState.filterStats = this.computeFilterStats(); </ins> } }

Discussion:
Testing Just another feature request. It would be useful to see how many debug console items are filtered out. Especially if I see this number going up, then I know I am missing new messages.
Yeah great idea. I think this could be shown in the filter area. This could be a shared experience also in the Problems view I am opening this up for PRs. Code pointer
FYI, problems view already show this like below <img width="458" alt="image" src="https://user-"
Great! Then we should just copy what Problems is doing Assigning to September so I tackle then if no PR's arrive
Hi I can take a look into this if no one else is assigned.
sounds great. We should just have the exact same functionality as the Problems view, so checking how it is done there is a good start.
friendly ping regarding this, since if you are not looking into it I might take a look next week...
Hi sorry, I didn't have time last week. I've just started looking into the issue. I hope to have something ready for next week if it's ok with you. I'll keep you updated. Thanks.
great thanks. Since you are already on this I will remove the label
Thanks to we now have this. Adding verification needed so we get this verified: Start debugging and verify when using the debug filter that the filter shows what is the number of hidden items
Change:
} const errorDetails = isPanelChat && response.errorDetails ? ` ${response.errorDetails.message}` : ''; const plainTextResponse = renderStringAsPlaintext(new MarkdownString(responseContent)); <del> status(plainTextResponse + errorDetails); </del> <ins> if (this._configurationService.getValue(AccessibilityVoiceSettingId.AutoSynthesize) !== 'on') { status(plainTextResponse + errorDetails); } </ins> } }

Discussion:
Type: <bFeature Request</bCC setting is ignored when accessibility mode is on. While screen reader's TTS can auto-announce Chat response, some users may want to use this new synthesizer. so, we may want to turn off aria-live when this setting is on. Another consideration is that some low-vision users, who don't necessarily use SR, have turned on the a11y mode and they still want to benefit from this auto-synthesize setting. VS Code version: Code - Insiders 1.91.0-insider (, 2024-06-10T05:48:36.787Z) OS version: Windows_NT x64 10.0. Modes: <!-- generated by issue reporter --
Makes sense cc
<!-- -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!
would you, yourself, enable this? I worry about turning off regions.
I don’t know whether I would turn this on permanently, but would like to try this out definitely to see if it gives me any new experience. I may be able to manage to listen to two different TTS simultaneously (one for Copilot; SR TTS for my own drive).
That makes sense. It would be great if you could try it out. You can do this now by using the action in the toolbar,
Yes, I have tried this, but this is a manual trigger which does not give me the same experience as the auto-read-aloud.
do you mute NVDA speech and use a braille device when you want to use voice input? or do you use a separate speaker/headphones? When testing this experience, the screen reader's speech is getting recorded by the mic and used as chat input for me unless I mute VoiceOver speech.
That happens when microphone is too sensitive. SR users need to mute their speech synthesizer or they need to use a different sound card or headset.
I use a separate sound card for my screen reader.
what are some verification steps for this issue?

enable screen reader mode, adjust the setting to on, run a chat request, (make sure volume is up), hear the response
I am still unsure what to test and what I should hear. I followed the steps and didn't hear the chat response. I only heard it when talking to chat in the first place.
Sorry - in order to hear the response, I forgot that you have to use voice input to the chat. So pls try that with screen reader mode enabled and that setting on.
Change:
let canCollapseFileMatchLevel = false; let canCollapseFirstLevel = false; <del> if (node instanceof FolderMatch) { </del> <ins> if (node instanceof FolderMatchWorkspaceRoot) { </ins> while (node = navigator.next()) { if (node instanceof Match) { canCollapseFileMatchLevel = true; break; } if (searchView.isTreeLayoutViewVisible && !canCollapseFirstLevel) { <del> const immediateParent = node.parent(); </del> <ins> let nodeToTest = node; if (node instanceof FolderMatch) { nodeToTest = node.compressionStartParent ?? node; } const immediateParent = nodeToTest.parent(); </ins> if (!(immediateParent instanceof FolderMatchWorkspaceRoot || immediateParent instanceof FolderMatchNoRoot || immediateParent instanceof SearchResult)) { canCollapseFirstLevel = true; }

Discussion:
Testing Open in VS Code Insiders Search for "containers" Exploring results and collapsing/uncollapsing works for a while :bug: Then "Collapse All" does nothing !
It seems I'm able to repro by: Reload window from above state Search for "containers" again, works correctly "Collapse All," works correctly Uncollapse, works correctly Try "Collapse All" again, stuck in unresponsive state above
Actually seems I misread the button - I guess it's always "Collapse All" and doesn't become an option to uncollapse. I was confused since hitting collapse two times in a row changes the search results, so I assumed it was collapsing and then uncollapsing. Not sure if this is expected: ! I've renamed the issue to be reflective of what I actually experienced. If this is expected, please feel free to close. Sorry for confusion!
No, that's totally a bug , it shouldn't get stuck like that. Thanks for catching that!
Change:
new Separator(), this._instantiationService.createInstance(CopySettingIdAction), this._instantiationService.createInstance(CopySettingAsJSONAction), <ins> this._instantiationService.createInstance(CopySettingAsURLAction), </ins> ]; const actionFactory = (setting: ISetting, settingTarget: SettingsTarget) => this.getActionsForSetting(setting, settingTarget);

Discussion:
Now that we can handle settings URLs, we could have a "Copy URL" command in the settings editor: ! From
FYI.
Thanks for the ping! "Copy URL" sounds vague. I'd prefer "Copy URL to Setting". Also, is it just the URL that's copied over, or the entire anchor element?
Since we have "Copy Setting as JSON" maybe "Copy Setting as URL". Which would yield (or if copied from insiders)
To verify: Open the settings editor In an individual setting's menu, choose the "Copy Setting as URL" action Verify that a URL to the setting is copied Verify that if you close VS Code and open the URL that VS Code is opened to the setting
Verified. I've used this a ton recently!
Change:
/** * The icon path or {@link ThemeIcon} for the terminal. */ <del> readonly iconPath?: Uri | { light: Uri; dark: Uri } | { id: string, color?: { id: string } }; </del> <ins> readonly iconPath?: Uri | { light: Uri; dark: Uri } | ThemeIcon; </ins> } export interface ExtensionTerminalOptions { /** * A themeIcon, Uri, or light and dark Uris to use as the terminal tab icon */ <del> readonly iconPath?: Uri | { light: Uri; dark: Uri } | { id: string, color?: { id: string } }; </del> <ins> readonly iconPath?: Uri | { light: Uri; dark: Uri } | ThemeIcon; </ins> } //#endregion

Discussion:
Testing Ran into this verifying a different issue, the API says that ThemeIcons are assignable in the TerminalOptions but they are not !
Change:
all.push(...await this.workbenchExtensionManagementService.getInstalledWorkspaceExtensions(true)); } <del> // dedup user and system extensions by giving priority to user extensions. </del> <ins> // dedup workspace, user and system extensions by giving priority to workspace first and then to user extension. </ins> const installed = groupByExtension(all, r => r.identifier).reduce((result, extensions) => { <del> const extension = extensions.length === 1 ? extensions[0] : extensions.find(e => e.type === ExtensionType.User) || extensions.find(e => e.type === ExtensionType.System); result.push(extension!); </del> <ins> if (extensions.length === 1) { result.push(extensions[0]); } else { let workspaceExtension: ILocalExtension | undefined, userExtension: ILocalExtension | undefined, systemExtension: ILocalExtension | undefined; for (const extension of extensions) { if (extension.isWorkspaceScoped) { workspaceExtension = extension; } else if (extension.type === ExtensionType.User) { userExtension = extension; } else { systemExtension = extension; } } const extension = workspaceExtension ?? userExtension ?? systemExtension; if (extension) { result.push(extension); } } </ins> return result; }, []);

Discussion:
This extension wants me to install it, also has a reload, and has a restart button. The restart button doesn't do anything. This is just in the VS Code repo <img width="476" alt="image" src=""
Can you please share the following file F1 Open Extensions Folder Share file
What do you see in Installed Extensions view? Also What version of that extension is running in Running Extensions editor - F1 Show Running Extensions? Is there a message when you hover on Restart Extensions button?
Installed <img width="470" alt="image" src=""Running view <img width="917" alt="image" src=""Hover of restart <img width="470" alt="image" src=""Ok, so it does appear I have this extension installed. And it wants me to restart it to uninstall it? And then to install it as a workspace extension? Clicking the restart button doesn't do anything and I didn't request the extension be uninstalled
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!
Change:
export function getCommandsContext(accessor: ServicesAccessor, resourceOrContext?: URI | IEditorCommandsContext, context?: IEditorCommandsContext): IEditorCommandsContext | undefined { const isUri = URI.isUri(resourceOrContext); <del> const editorCommandsContext = isUri ? context : resourceOrContext; </del> <ins> const editorCommandsContext = isUri ? context : resourceOrContext ? resourceOrContext : context; </ins> if (editorCommandsContext && typeof editorCommandsContext.groupId === 'number') { return editorCommandsContext; }

Discussion:
I have pinned tabs in separate row and click the unpin action: ! The tab does not unpin.
Change:
return terminalPicks; } <del> private _createPick(terminal: ITerminalInstance, terminalIndex: number, filter: string, groupIndex?: number): IPickerQuickAccessItem | undefined { </del> <ins> private _createPick(terminal: ITerminalInstance, terminalIndex: number, filter: string, groupInfo?: { groupIndex: number; groupSize: number }): IPickerQuickAccessItem | undefined { </ins> const iconId = getIconId(terminal); <del> const label = groupIndex ? `$(${iconId}) ${groupIndex + 1}.${terminalIndex + 1}: ${terminal.title}` : `$(${iconId}) ${terminalIndex + 1}: ${terminal.title}`; </del> <ins> const index = groupInfo ? (groupInfo.groupSize > 1 ? `${groupInfo.groupIndex + 1}.${terminalIndex + 1}` : `${groupInfo.groupIndex + 1}`) : `${terminalIndex + 1}`; const label = `$(${iconId}) ${index}: ${terminal.title}`; </ins> const iconClasses: string[] = []; const colorClass = getColorClass(terminal); if (colorClass) {

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:
padding: 0 4px; } <ins> /* split commit button */ .scm-view .button-container > .monaco-button-dropdown > .monaco-dropdown-button.codicon-drop-down-button { border-radius: 0 2px 2px 0; } .scm-view .button-container > .monaco-button-dropdown > .monaco-button.monaco-text-button { border-radius: 2px 0 0 2px; } </ins> .scm-view .scm-editor.hidden { display: none; }

Discussion:
Looking at ways to make VS Code feel ever so slightly more approachable. A subtle 2px border radius on our common input components could be one way to make the UI feel more inviting and less harsh: <img width="361" alt="CleanShot 2022-04-08 at 14 48 52 src="https://user-"<img width="522" alt="CleanShot 2022-04-08 at 14 55 52 src="https://user-"<img width="494" alt="CleanShot 2022-04-08 at 14 58 01 src="https://user-"<img width="437" alt="CleanShot 2022-04-08 at 14 49 46 src="https://user-"<img width="500" alt="CleanShot 2022-04-08 at 15 01 55 src="https://user-"! FWIW, we already use a border radius on our icon buttons: <img width="300" alt="CleanShot 2022-04-08 at 15 03 36 src="https://user-"cc
I like this idea for buttons. I am not so sure about input/combo boxes.
I'm a +1 on this one, I think the inputs might need a bit of spacing from the side to feel more natural. We should also make sure that our labels are distinguishable as they start looking similar. Maybe we update the labels to be more pill-like?
As in padding L/R? I think they are indeed a bit different from our dropdowns if memory serves. Good call on the labels/tags.
Border-radius on buttons was merged but inputs is still under discussion so I'll keep this one open.
Good job