jiebi/CodeConvo huggingface dataset:
Code change:
make an inline chat request that changes code select the re-generate action :bug: the previous changes aren't undone

Related discussion:
text: assert.ok(model.getValue().includes('MANUAL')); }); <ins> test('re-run should discard pending edits', async function () { let count = 1; store.add(chatAgentService.registerDynamicAgent({ id: 'testEditorAgent2', ...agentData }, { async invoke(request, progress, history, token) { progress({ kind: 'textEdit', uri: model.uri, edits: [{ range: new Range(1, 1, 1, 1), text: request.message + (count++) }] }); return {}; }, })); ctrl = instaService.createInstance(TestController, editor); const rerun = new RerunAction(); model.setValue(''); const p = ctrl.waitFor([...TestController.INIT_SEQUENCE, State.SHOW_REQUEST, State.SHOW_RESPONSE, State.WAIT_FOR_INPUT]); const r = ctrl.run({ message: 'PROMPT_', autoSend: true }); await p; assert.strictEqual(model.getValue(), 'PROMPT_1'); const p2 = ctrl.waitFor([State.SHOW_REQUEST, State.SHOW_RESPONSE, State.WAIT_FOR_INPUT]); await instaService.invokeFunction(rerun.runInlineChatCommand, ctrl, editor); await p2; assert.strictEqual(model.getValue(), 'PROMPT_2'); ctrl.finishExistingSession(); await r; }); </ins> });
Code change:
My extension provides document links by calling on with a implementation. It provides tooltip, because it always sets the field to the return values of . I confirmed it works (tooltip is shown) by actually running the extension. I wrote an integration test for it. It activates the extension and calls where is the URI of an opened document that our extension supports. It returns the expected objects except those lack the field. Am I missing anything, or is it a bug of the command that it doesn't set the field? Version: 1.89.1 Commit: User Agent: Mozilla/5.0 (X11; CrOS x86_64 .0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Embedder: server-distro <!-- generated by web issue reporter --

Related discussion:
text: // ignore } } <del> return new types.DocumentLink(Range.to(link.range), target); </del> <ins> const result = new types.DocumentLink(Range.to(link.range), target); result.tooltip = link.tooltip; return result; </ins> } }
Code change:
My extension provides document links by calling on with a implementation. It provides tooltip, because it always sets the field to the return values of . I confirmed it works (tooltip is shown) by actually running the extension. I wrote an integration test for it. It activates the extension and calls where is the URI of an opened document that our extension supports. It returns the expected objects except those lack the field. Am I missing anything, or is it a bug of the command that it doesn't set the field? Version: 1.89.1 Commit: User Agent: Mozilla/5.0 (X11; CrOS x86_64 .0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Embedder: server-distro <!-- generated by web issue reporter --

Related discussion:
text: }); <ins> testApiCmd('DocumentLink[] vscode.executeLinkProvider returns lack tooltip #213970', async function () { disposables.push(extHost.registerDocumentLinkProvider(nullExtensionDescription, defaultSelector, <vscode.DocumentLinkProvider>{ provideDocumentLinks(): any { const link = new types.DocumentLink(new types.Range(0, 0, 0, 20), URI.parse('foo:bar')); link.tooltip = 'Link Tooltip'; return [link]; } })); await rpcProtocol.sync(); const links1 = await commands.executeCommand<vscode.DocumentLink[]>('vscode.executeLinkProvider', model.uri); assert.strictEqual(links1.length, 1); assert.strictEqual(links1[0].tooltip, 'Link Tooltip'); }); </ins> test('Color provider', function () {
Code change:
I removed this to move over to using the agent, which required setting . Chatted with and I should add another agent to support the agent in both places, only making it the default for the terminal location. fyi
Verified that is available in panel chat.

Related discussion:
text: const isAllowed = chatAgentNameService.getAgentNameRestriction(agent); let name = `${isAllowed ? agent.name : getFullyQualifiedId(agent)}`; <del> const isDupe = isAllowed && chatAgentService.getAgentsByName(agent.name).length > 1; </del> <ins> const isDupe = isAllowed && chatAgentService.agentHasDupeName(agent.id); </ins> if (isDupe) { name += ` (${agent.publisherDisplayName})`; }
Code change:
I removed this to move over to using the agent, which required setting . Chatted with and I should add another agent to support the agent in both places, only making it the default for the terminal location. fyi
Verified that is available in panel chat.

Related discussion:
text: return { suggestions: agents.map((agent, i): CompletionItem => { <del> const { label: agentLabel, isDupe } = getAgentCompletionDetails(agent, agents, this.chatAgentNameService); </del> <ins> const { label: agentLabel, isDupe } = this.getAgentCompletionDetails(agent); </ins> return { // Leading space is important because detail has no space at the start by design label: isDupe ?
Code change:
I removed this to move over to using the agent, which required setting . Chatted with and I should add another agent to support the agent in both places, only making it the default for the terminal location. fyi
Verified that is available in panel chat.

Related discussion:
text: const justAgents: CompletionItem[] = agents .filter(a => !a.isDefault) .map(agent => { <del> const { label: agentLabel, isDupe } = getAgentCompletionDetails(agent, agents, this.chatAgentNameService); </del> <ins> const { label: agentLabel, isDupe } = this.getAgentCompletionDetails(agent); </ins> const detail = agent.description; return {
Code change:
I removed this to move over to using the agent, which required setting . Chatted with and I should add another agent to support the agent in both places, only making it the default for the terminal location. fyi
Verified that is available in panel chat.

Related discussion:
text: return { suggestions: justAgents.concat( agents.flatMap(agent => agent.slashCommands.map((c, i) => { <del> const { label: agentLabel, isDupe } = getAgentCompletionDetails(agent, agents, this.chatAgentNameService); </del> <ins> const { label: agentLabel, isDupe } = this.getAgentCompletionDetails(agent); </ins> const withSlash = `${chatSubcommandLeader}${c.name}`; return { label: { label: withSlash, description: agentLabel, detail: isDupe ? ` (${agent.publisherDisplayName})` : undefined },
Code change:
I removed this to move over to using the agent, which required setting . Chatted with and I should add another agent to support the agent in both places, only making it the default for the terminal location. fyi
Verified that is available in panel chat.

Related discussion:
text: } })); } <ins> private getAgentCompletionDetails(agent: IChatAgentData): { label: string; isDupe: boolean } { const isAllowed = this.chatAgentNameService.getAgentNameRestriction(agent); const agentLabel = `${chatAgentLeader}${isAllowed ? agent.name : getFullyQualifiedId(agent)}`; const isDupe = isAllowed && this.chatAgentService.agentHasDupeName(agent.id); return { label: agentLabel, isDupe }; } </ins> } Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench).registerWorkbenchContribution(AgentCompletions, LifecyclePhase.Eventually);
Code change:
I removed this to move over to using the agent, which required setting . Chatted with and I should add another agent to support the agent in both places, only making it the default for the terminal location. fyi
Verified that is available in panel chat.

Related discussion:
text: } Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench).registerWorkbenchContribution(VariableCompletions, LifecyclePhase.Eventually); <del> function getAgentCompletionDetails(agent: IChatAgentData, otherAgents: IChatAgentData[], chatAgentNameService: IChatAgentNameService): { label: string; isDupe: boolean } { const isAllowed = chatAgentNameService.getAgentNameRestriction(agent); const agentLabel = `${chatAgentLeader}${isAllowed ? agent.name : getFullyQualifiedId(agent)}`; const isDupe = isAllowed && !!otherAgents.find(other => other.name === agent.name && other.id !== agent.id); return { label: agentLabel, isDupe }; } </del>
Code change:
I removed this to move over to using the agent, which required setting . Chatted with and I should add another agent to support the agent in both places, only making it the default for the terminal location. fyi
Verified that is available in panel chat.

Related discussion:
text: getAgents(): IChatAgentData[]; getActivatedAgents(): Array<IChatAgent>; getAgentsByName(name: string): IChatAgentData[]; <ins> agentHasDupeName(id: string): boolean; </ins> /** * Get the default agent (only if activated)
Code change:
I removed this to move over to using the agent, which required setting . Chatted with and I should add another agent to support the agent in both places, only making it the default for the terminal location. fyi
Verified that is available in panel chat.

Related discussion:
text: return this.getAgents().filter(a => a.name === name); } <ins> agentHasDupeName(id: string): boolean { const agent = this.getAgent(id); if (!agent) { return false; } return this.getAgentsByName(agent.name) .filter(a => a.extensionId.value !== agent.extensionId.value).length > 0; } </ins> async invokeAgent(id: string, request: IChatAgentRequest, progress: (part: IChatProgress) => void, history: IChatAgentHistoryEntry[], token: CancellationToken): Promise<IChatAgentResult> { const data = this._agents.get(id); if (!data?.impl) {
Code change:
I removed this to move over to using the agent, which required setting . Chatted with and I should add another agent to support the agent in both places, only making it the default for the terminal location. fyi
Verified that is available in panel chat.

Related discussion:
text: getAgentByFullyQualifiedId(id: string): IChatAgentData | undefined { throw new Error('Method not implemented.'); } registerAgentCompletionProvider(id: string, provider: (query: string, token: CancellationToken) => Promise<IChatAgentCompletionItem[]>): IDisposable { throw new Error('Method not implemented.'); } getAgentCompletionItems(id: string, query: string, token: CancellationToken): Promise<IChatAgentCompletionItem[]> { throw new Error('Method not implemented.'); } <ins> agentHasDupeName(id: string): boolean { throw new Error('Method not implemented.'); } </ins> } class TestSpeechService implements ISpeechService {
Code change:
See
I think it's related to this line not clearing the quick pick: It's meant to hit backspace:

Related discussion:
text: // Reset await this.code.dispatchKeybinding('Backspace'); } <ins> await this.code.wait(100); </ins> await this.code.dispatchKeybinding(altKey ? 'Alt+Enter' : 'enter'); await this.quickinput.waitForQuickInputClosed(); if (commandId === TerminalCommandIdWithValue.NewWithProfile) {
Code change:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --Add support for --proxy-bypass-list in the file so that we can provide a default proxy bypass list to VS Code users. Setting NO_PROXY doesn't work as a solution because it would either have to be set as a user / system environment variable thus impacting all applications, or we would have to rely on our VS Code users to explicitly pass --proxy-bypass-list as an argument to code on the command line each time they launch. Having the option to set this in would provide us with a way to package this in our default enterprise installation of VS Code so users would get this setting by default, but just for VS Code.
Could we just in . I was not aware that only a subset of our command line arguments can be configured there actually. fyi
Yes we can expose it Yeah the list of chromium commandline flags in quit large and always changes with version updates it would be a nightmare if we are to support all of them in . At this time we only support those on a case by case basis.
Thanks, makes sense! Should I assign this one to you? If you are busy, I am happy to provide a PR in July if you give me a code pointer?
Here is an example of recent flag addition , feel free to send a PR. I can review it. Thanks!
Thanks for that great example. Here's the PR I verified that adding "proxy-bypass-list" does not produce errors in I did not verify if this list actually gets passed to Chrome. We can ask if we get this out to an insiders build.
FYI: There is a PR in progress for adding a setting for the feature:
Thanks. But unlike that PR, I think this flag just needs to be passed to Chromium and it should get handled. i.e. I did not add any code in VS Code that actually handles the flag.
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
This flag doesn't seem to work for me unfortunately. Using mitmproxy I still see the bypassed domains: !
Can confirm, preparing a fix now.
thanks for the quick fix
verification steps: Setup mitmproxy Start the application with proxy server Check the logs to see requests from the application are intercepted, you should see some domains like or Open and set Restart the application with same proxy server Confirm that requests to these hosts are not seen in the intercepted logs anymore

Related discussion:
text: 'force-color-profile', // disable LCD font rendering, a Chromium flag <del> 'disable-lcd-text' </del> <ins> 'disable-lcd-text', // bypass any specified proxy for the given semi-colon-separated list of hosts 'proxy-bypass-list' </ins> ]; if (process.platform === 'linux') {
Code change:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --Add support for --proxy-bypass-list in the file so that we can provide a default proxy bypass list to VS Code users. Setting NO_PROXY doesn't work as a solution because it would either have to be set as a user / system environment variable thus impacting all applications, or we would have to rely on our VS Code users to explicitly pass --proxy-bypass-list as an argument to code on the command line each time they launch. Having the option to set this in would provide us with a way to package this in our default enterprise installation of VS Code so users would get this setting by default, but just for VS Code.
Could we just in . I was not aware that only a subset of our command line arguments can be configured there actually. fyi
Yes we can expose it Yeah the list of chromium commandline flags in quit large and always changes with version updates it would be a nightmare if we are to support all of them in . At this time we only support those on a case by case basis.
Thanks, makes sense! Should I assign this one to you? If you are busy, I am happy to provide a PR in July if you give me a code pointer?
Here is an example of recent flag addition , feel free to send a PR. I can review it. Thanks!
Thanks for that great example. Here's the PR I verified that adding "proxy-bypass-list" does not produce errors in I did not verify if this list actually gets passed to Chrome. We can ask if we get this out to an insiders build.
FYI: There is a PR in progress for adding a setting for the feature:
Thanks. But unlike that PR, I think this flag just needs to be passed to Chromium and it should get handled. i.e. I did not add any code in VS Code that actually handles the flag.
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
This flag doesn't seem to work for me unfortunately. Using mitmproxy I still see the bypassed domains: !
Can confirm, preparing a fix now.
thanks for the quick fix
verification steps: Setup mitmproxy Start the application with proxy server Check the logs to see requests from the application are intercepted, you should see some domains like or Open and set Restart the application with same proxy server Confirm that requests to these hosts are not seen in the intercepted logs anymore

Related discussion:
text: app.commandLine.appendSwitch(argvKey); } } else if (argvValue) { <del> if (argvKey === 'force-color-profile') { // Color profile app.commandLine.appendSwitch(argvKey, argvValue); } else if (argvKey === 'password-store') { </del> <ins> if (argvKey === 'password-store') { </ins> // Password store // TODO@TylerLeonhardt: Remove this migration in 3 months let migratedArgvValue = argvValue;
Code change:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --Add support for --proxy-bypass-list in the file so that we can provide a default proxy bypass list to VS Code users. Setting NO_PROXY doesn't work as a solution because it would either have to be set as a user / system environment variable thus impacting all applications, or we would have to rely on our VS Code users to explicitly pass --proxy-bypass-list as an argument to code on the command line each time they launch. Having the option to set this in would provide us with a way to package this in our default enterprise installation of VS Code so users would get this setting by default, but just for VS Code.
Could we just in . I was not aware that only a subset of our command line arguments can be configured there actually. fyi
Yes we can expose it Yeah the list of chromium commandline flags in quit large and always changes with version updates it would be a nightmare if we are to support all of them in . At this time we only support those on a case by case basis.
Thanks, makes sense! Should I assign this one to you? If you are busy, I am happy to provide a PR in July if you give me a code pointer?
Here is an example of recent flag addition , feel free to send a PR. I can review it. Thanks!
Thanks for that great example. Here's the PR I verified that adding "proxy-bypass-list" does not produce errors in I did not verify if this list actually gets passed to Chrome. We can ask if we get this out to an insiders build.
FYI: There is a PR in progress for adding a setting for the feature:
Thanks. But unlike that PR, I think this flag just needs to be passed to Chromium and it should get handled. i.e. I did not add any code in VS Code that actually handles the flag.
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
This flag doesn't seem to work for me unfortunately. Using mitmproxy I still see the bypassed domains: !
Can confirm, preparing a fix now.
thanks for the quick fix
verification steps: Setup mitmproxy Start the application with proxy server Check the logs to see requests from the application are intercepted, you should see some domains like or Open and set Restart the application with same proxy server Confirm that requests to these hosts are not seen in the intercepted logs anymore

Related discussion:
text: migratedArgvValue = 'gnome-libsecret'; } app.commandLine.appendSwitch(argvKey, migratedArgvValue); <ins> } else { app.commandLine.appendSwitch(argvKey, argvValue); </ins> } } }
Code change:
Testing enable link underline open settings editor and scroll to "Text Editor" section in-text links are underlines but command links aren't unsure if this should be aligned or not? <img width="759" alt="Screenshot 2024-06-25 at 09 50 40" src=""

Related discussion:
text: color: var(--vscode-textLink-foreground); } <ins> .settings-editor > .settings-body .settings-tree-container .setting-item-contents .setting-item-markdown a, .settings-editor > .settings-body .settings-tree-container .setting-item-contents .edit-in-settings-button { text-decoration: var(--text-link-decoration); } </ins> .settings-editor > .settings-body .settings-tree-container .setting-item-contents .setting-item-markdown a:focus, .settings-editor > .settings-body .settings-tree-container .setting-item-contents .edit-in-settings-button:focus { outline: 1px solid -webkit-focus-ring-color;
Code change:
Testing Once again, I'm not sure what the norms are here, but would it be useful to have the actions in the status bar show in the accessibly view? <img width="607" alt="image" src=""
Hi yes that would make sense. Good point!

Related discussion:
text: return new HoverAction(parent, actionOptions, keybindingLabel); } <ins> public readonly actionLabel: string; public readonly actionKeybindingLabel: string | null; </ins> private readonly actionContainer: HTMLElement; private readonly action: HTMLElement; private constructor(parent: HTMLElement, actionOptions: { label: string; iconClass?: string; run: (target: HTMLElement) => void; commandId: string }, keybindingLabel: string | null) { super(); <ins> this.actionLabel = actionOptions.label; this.actionKeybindingLabel = keybindingLabel; </ins> this.actionContainer = dom.append(parent, $('div.action-container')); this.actionContainer.setAttribute('tabindex', '0');
Code change:
Testing Once again, I'm not sure what the norms are here, but would it be useful to have the actions in the status bar show in the accessibly view? <img width="607" alt="image" src=""
Hi yes that would make sense. Good point!

Related discussion:
text: import { localize } from 'vs/nls'; import { InlayHintsHover } from 'vs/editor/contrib/inlayHints/browser/inlayHintsHover'; import { BugIndicatingError } from 'vs/base/common/errors'; <ins> import { HoverAction } from 'vs/base/browser/ui/hover/hoverWidget'; </ins> export class RenderedContentHover extends Disposable {
Code change:
Testing Once again, I'm not sure what the norms are here, but would it be useful to have the actions in the status bar show in the accessibly view? <img width="607" alt="image" src=""
Hi yes that would make sense. Good point!

Related discussion:
text: * The HTML element containing the hover status bar. */ hoverElement: HTMLElement; <ins> /** * The actions of the hover status bar. */ actions: HoverAction[]; </ins> } type IRenderedContentHoverPartOrStatusBar = IRenderedContentHoverPart | IRenderedContentStatusBar;
Code change:
Testing Once again, I'm not sure what the norms are here, but would it be useful to have the actions in the status bar show in the accessibly view? <img width="607" alt="image" src=""
Hi yes that would make sense. Good point!

Related discussion:
text: return this._statusBar.hoverElement; } <ins> get actions(): HoverAction[] { return this._statusBar.actions; } </ins> dispose() { this._statusBar.dispose(); }
Code change:
Testing Once again, I'm not sure what the norms are here, but would it be useful to have the actions in the status bar show in the accessibly view? <img width="607" alt="image" src=""
Hi yes that would make sense. Good point!

Related discussion:
text: this._renderedParts.push({ type: 'statusBar', hoverElement: renderedStatusBar.hoverElement, <ins> actions: renderedStatusBar.actions, </ins> }); } return toDisposable(() => { disposables.dispose(); });