jiebi/CodeConvo huggingface dataset:
Code change:
To be able to reach to the files presented in a multi diff text editor the tab model should provide a corresponding TabInput (see ) May be a good idea would be to have a general composite tab input. For the multi diff text editor the elements could then be
When you listen for tab changes the input of the tab is currently .
Not sure if this is or
Related:
Thanks!
Reopening to get API approval. I'm also not sure we will be able to expose the resources in multi diff This will probably complicate your use case. pointed out that the resources can change without changing the input and this is not something any of other inputs do making supporting showing the resources for this input quite difficult.
Can you verify? To verify please ensure that you see a type now for the multi diff text editor and it properly reacts to resource changes

Related discussion:
text: if (editor instanceof MultiDiffEditorInput) { const diffEditors: TextDiffInputDto[] = []; <del> for (const resource of (editor?.initialResources ?? [])) { </del> <ins> for (const resource of (editor?.resources.get() ?? [])) { </ins> if (resource.original && resource.modified) { diffEditors.push({ kind: TabInputKind.TextDiffInput,
Code change:
To be able to reach to the files presented in a multi diff text editor the tab model should provide a corresponding TabInput (see ) May be a good idea would be to have a general composite tab input. For the multi diff text editor the elements could then be
When you listen for tab changes the input of the tab is currently .
Not sure if this is or
Related:
Thanks!
Reopening to get API approval. I'm also not sure we will be able to expose the resources in multi diff This will probably complicate your use case. pointed out that the resources can change without changing the input and this is not something any of other inputs do making supporting showing the resources for this input quite difficult.
Can you verify? To verify please ensure that you see a type now for the multi diff text editor and it properly reacts to resource changes

Related discussion:
text: const tabObject = this._buildTabObject(group, editorInput, editorIndex); tabs.splice(editorIndex, 0, tabObject); // Update lookup <del> this._tabInfoLookup.set(this._generateTabId(editorInput, groupId), { group, editorInput, tab: tabObject }); </del> <ins> const tabId = this._generateTabId(editorInput, groupId); this._tabInfoLookup.set(tabId, { group, editorInput, tab: tabObject }); if (editorInput instanceof MultiDiffEditorInput) { this._multiDiffEditorInputListeners.set(editorInput, Event.fromObservableLight(editorInput.resources)(() => { const tabInfo = this._tabInfoLookup.get(tabId); if (!tabInfo) { return; } tabInfo.tab = this._buildTabObject(group, editorInput, editorIndex); this._proxy.$acceptTabOperation({ groupId, index: editorIndex, tabDto: tabInfo.tab, kind: TabModelOperationKind.TAB_UPDATE }); })); } </ins> this._proxy.$acceptTabOperation({ groupId,
Code change:
To be able to reach to the files presented in a multi diff text editor the tab model should provide a corresponding TabInput (see ) May be a good idea would be to have a general composite tab input. For the multi diff text editor the elements could then be
When you listen for tab changes the input of the tab is currently .
Not sure if this is or
Related:
Thanks!
Reopening to get API approval. I'm also not sure we will be able to expose the resources in multi diff This will probably complicate your use case. pointed out that the resources can change without changing the input and this is not something any of other inputs do making supporting showing the resources for this input quite difficult.
Can you verify? To verify please ensure that you see a type now for the multi diff text editor and it properly reacts to resource changes

Related discussion:
text: // Update lookup this._tabInfoLookup.delete(removedTab[0]?.id ?? ''); <ins> if (removedTab[0]?.input instanceof MultiDiffEditorInput) { this._multiDiffEditorInputListeners.deleteAndDispose(removedTab[0]?.input); } </ins> this._proxy.$acceptTabOperation({ groupId, index: editorIndex,
Code change:
To be able to reach to the files presented in a multi diff text editor the tab model should provide a corresponding TabInput (see ) May be a good idea would be to have a general composite tab input. For the multi diff text editor the elements could then be
When you listen for tab changes the input of the tab is currently .
Not sure if this is or
Related:
Thanks!
Reopening to get API approval. I'm also not sure we will be able to expose the resources in multi diff This will probably complicate your use case. pointed out that the resources can change without changing the input and this is not something any of other inputs do making supporting showing the resources for this input quite difficult.
Can you verify? To verify please ensure that you see a type now for the multi diff text editor and it properly reacts to resource changes

Related discussion:
text: this._register(autorun((reader) => { /** @description Updates name */ <del> const resources = this._resources.read(reader); </del> <ins> const resources = this.resources.read(reader); </ins> const label = this.label ?? localize('name', "Multi Diff Editor"); if (resources) { this._name = label + localize({
Code change:
To be able to reach to the files presented in a multi diff text editor the tab model should provide a corresponding TabInput (see ) May be a good idea would be to have a general composite tab input. For the multi diff text editor the elements could then be
When you listen for tab changes the input of the tab is currently .
Not sure if this is or
Related:
Thanks!
Reopening to get API approval. I'm also not sure we will be able to expose the resources in multi diff This will probably complicate your use case. pointed out that the resources can change without changing the input and this is not something any of other inputs do making supporting showing the resources for this input quite difficult.
Can you verify? To verify please ensure that you see a type now for the multi diff text editor and it properly reacts to resource changes

Related discussion:
text: return false; } <del> private readonly _resources = derived(this, reader => this._resolvedSource.cachedPromiseResult.read(reader)?.data?.resources.read(reader)); private readonly _isDirtyObservables = mapObservableArrayCached(this, this._resources.map(r => r ?? []), res => { </del> <ins> public readonly resources = derived(this, reader => this._resolvedSource.cachedPromiseResult.read(reader)?.data?.resources.read(reader)); private readonly _isDirtyObservables = mapObservableArrayCached(this, this.resources.map(r => r ?? []), res => { </ins> const isModifiedDirty = res.modified ? isUriDirty(this._textFileService, res.modified) : constObservable(false); const isOriginalDirty = res.original ? isUriDirty(this._textFileService, res.original) : constObservable(false); return derived(reader => /** @description modifiedDirty||originalDirty */ isModifiedDirty.read(reader) || isOriginalDirty.read(reader));
Code change:
This error appears in the insiders dev tools all the time (FYI Cannot read properties of undefined (reading 'includes'): TypeError: Cannot read properties of undefined (reading 'includes') at at at at at at at at at at at

Related discussion:
text: }, 500, false, true)(async (markerEvent) => { markerChanged?.dispose(); markerChanged = undefined; <del> if (!markerEvent.includes(modelEvent.uri) || (this.markerService.read({ resource: modelEvent.uri }).length !== 0)) { </del> <ins> if (!markerEvent || !markerEvent.includes(modelEvent.uri) || (this.markerService.read({ resource: modelEvent.uri }).length !== 0)) { </ins> return; } const oldLines = Array.from(this.lines);
Code change:
Type: <bBug</bIn the below image, clicking the link Learn More brings you to However, that section (id) does not exist on The link is most likely supposed to go to ! VS Code version: Code 1.87.2 (, 2024-03-08T15:20:17.278Z) OS version: WindowsNT x64 10.0. Modes: Remote OS version: Linux x64 5.4.0-173-generic <details<summarySystem Info</summary </details<details<summaryExtensions (32)</summaryExtensionVersion ------ yang0.1.3 jupyter-keymap1.1.2 remote-containers0.348.0 remote-ssh0.109.0 remote-ssh-edit0.86.0 remote-wsl0.86.0 vscode-remote-extensionpack0.25.0 remote-explorer0.4.3 remote-server1.5.1 vscode-openapi4.25.1 vscode-fish1.0.38 ruff2024.16.0 vale-vscode0.18.5 vscode-markdownlint0.54.0 gitlens14.9.0 prettier-vscode10.1.0 code-runner0.12.1 go0.41.1 restructuredtext189.3.0 direnv0.17.0 vscode-azureresourcegroups0.8.4 vscode-cosmosdb0.20.1 vscode-docker1.29.0 vscode-kubernetes-tools1.3.15 python2024.2.1 azure-account0.11.6 vscode-yaml1.14.0 code-spell-checker3.0.1 even-better-toml0.19.2 shellcheck0.37.0 simple-rst1.5.4 vscode-proto30.5.5 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --

Related discussion:
text: if (this.extensionManagementServerService.localExtensionManagementServer === this.extension.server) { if (this.extensionManifestPropertiesService.prefersExecuteOnWorkspace(this.extension.local.manifest)) { if (this.extensionManagementServerService.remoteExtensionManagementServer) { <del> message = new MarkdownString(`${localize('Install in remote server to enable', "This extension is disabled in this workspace because it is defined to run in the Remote Extension Host. Please install the extension in '{0}' to enable.", this.extensionManagementServerService.remoteExtensionManagementServer.label)} [${localize('learn more', "Learn More")}](https://aka.ms/vscode-remote/developing-extensions/architecture)`); </del> <ins> message = new MarkdownString(`${localize('Install in remote server to enable', "This extension is disabled in this workspace because it is defined to run in the Remote Extension Host. Please install the extension in '{0}' to enable.", this.extensionManagementServerService.remoteExtensionManagementServer.label)} [${localize('learn more', "Learn More")}](https://code.visualstudio.com/api/advanced-topics/remote-extensions#architecture-and-extension-kinds)`); </ins> } } }
Code change:
Just asked hi: ! Expected: ! Version: 1.88.0-insider (user setup) Commit: Date: 2024-03-25T05:49:32.344Z Electron: 28.2.6 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Windows_NT x64 10.0. GitHub Copilot Chat v0.14. (pre-release)
because of
To verify configure have a very wide view port ask AI to change some code make sure the input widget is full width of the zone widget

Related discussion:
text: // Only allow history navigation when the input is empty. // (If this model change happened as a result of a history navigation, this is canceled out by a call in this.navigateHistory) const model = this._inputEditor.getModel(); <del> const inputHasText = !!model && model.getValueLength() > 0; </del> <ins> const inputHasText = !!model && model.getValue().trim().length > 0; </ins> this.inputEditorHasText.set(inputHasText); // If the user is typing on a history entry, then reset the onHistoryEntry flag so that history navigation can be disabled
Code change:
Just asked hi: ! Expected: ! Version: 1.88.0-insider (user setup) Commit: Date: 2024-03-25T05:49:32.344Z Electron: 28.2.6 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Windows_NT x64 10.0. GitHub Copilot Chat v0.14. (pre-release)
because of
To verify configure have a very wide view port ask AI to change some code make sure the input widget is full width of the zone widget

Related discussion:
text: import { editorBackground, editorForeground, inputBackground } from 'vs/platform/theme/common/colorRegistry'; import { ChatModel } from 'vs/workbench/contrib/chat/common/chatModel'; import { Range } from 'vs/editor/common/core/range'; <ins> import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; </ins> export class InlineChatContentWidget implements IContentWidget {
Code change:
Just asked hi: ! Expected: ! Version: 1.88.0-insider (user setup) Commit: Date: 2024-03-25T05:49:32.344Z Electron: 28.2.6 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Windows_NT x64 10.0. GitHub Copilot Chat v0.14. (pre-release)
because of
To verify configure have a very wide view port ask AI to change some code make sure the input widget is full width of the zone widget

Related discussion:
text: constructor( private readonly _editor: ICodeEditor, @IInstantiationService instaService: IInstantiationService, <ins> @IContextKeyService contextKeyService: IContextKeyService, </ins> ) { this._defaultChatModel = this._store.add(instaService.createInstance(ChatModel, `inlineChatDefaultModel/editorContentWidgetPlaceholder`, undefined)); <del> this._widget = instaService.createInstance( </del> <ins> const scopedInstaService = instaService.createChild( new ServiceCollection([ IContextKeyService, this._store.add(contextKeyService.createScoped(this._domNode)) ]) ); this._widget = scopedInstaService.createInstance( </ins> ChatWidget, ChatAgentLocation.Editor, { resource: true },
Code change:
Just asked hi: ! Expected: ! Version: 1.88.0-insider (user setup) Commit: Date: 2024-03-25T05:49:32.344Z Electron: 28.2.6 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Windows_NT x64 10.0. GitHub Copilot Chat v0.14. (pre-release)
because of
To verify configure have a very wide view port ask AI to change some code make sure the input widget is full width of the zone widget

Related discussion:
text: } return false; }); <del> if (refer && slashCommandLike) { </del> <ins> if (refer && slashCommandLike && !this._session.lastExchange) { </ins> this._log('[IE] seeing refer command, continuing outside editor', this._session.provider.extensionId); // cancel this request
Code change:
Just asked hi: ! Expected: ! Version: 1.88.0-insider (user setup) Commit: Date: 2024-03-25T05:49:32.344Z Electron: 28.2.6 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Windows_NT x64 10.0. GitHub Copilot Chat v0.14. (pre-release)
because of
To verify configure have a very wide view port ask AI to change some code make sure the input widget is full width of the zone widget

Related discussion:
text: // if agent has a refer command, massage the input to include the agent name await this._instaService.invokeFunction(sendRequest, massagedInput); <del> if (!this._session.lastExchange) { // DONE when there wasn't any exchange yet. We used the inline chat only as trampoline return State.ACCEPT; } return State.WAIT_FOR_INPUT; </del> <ins> return State.ACCEPT; </ins> } this._session.addInput(new SessionPrompt(input, this._nextAttempt, this._nextWithIntentDetection));
Code change:
Just asked hi: ! Expected: ! Version: 1.88.0-insider (user setup) Commit: Date: 2024-03-25T05:49:32.344Z Electron: 28.2.6 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Windows_NT x64 10.0. GitHub Copilot Chat v0.14. (pre-release)
because of
To verify configure have a very wide view port ask AI to change some code make sure the input widget is full width of the zone widget

Related discussion:
text: import { IChatService } from 'vs/workbench/contrib/chat/common/chatService'; import { setupCustomHover } from 'vs/base/browser/ui/hover/updatableHoverWidget'; import { getDefaultHoverDelegate } from 'vs/base/browser/ui/hover/hoverDelegateFactory'; <ins> import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; </ins> export interface InlineChatWidgetViewState {
Code change:
Just asked hi: ! Expected: ! Version: 1.88.0-insider (user setup) Commit: Date: 2024-03-25T05:49:32.344Z Electron: 28.2.6 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Windows_NT x64 10.0. GitHub Copilot Chat v0.14. (pre-release)
because of
To verify configure have a very wide view port ask AI to change some code make sure the input widget is full width of the zone widget

Related discussion:
text: this._store.add(this._progressBar); let allowRequests = false; <del> this._chatWidget = _instantiationService.createInstance( </del> <ins> const scopedInstaService = _instantiationService.createChild( new ServiceCollection([ IContextKeyService, this._store.add(_contextKeyService.createScoped(this._elements.chatWidget)) ]) ); this._chatWidget = scopedInstaService.createInstance( </ins> ChatWidget, location, { resource: true },
Code change:
Just asked hi: ! Expected: ! Version: 1.88.0-insider (user setup) Commit: Date: 2024-03-25T05:49:32.344Z Electron: 28.2.6 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Windows_NT x64 10.0. GitHub Copilot Chat v0.14. (pre-release)
because of
To verify configure have a very wide view port ask AI to change some code make sure the input widget is full width of the zone widget

Related discussion:
text: get contentHeight(): number { const data = { followUpsHeight: getTotalHeight(this._elements.followUps), <del> chatWidgetHeight: this._chatWidget.contentHeight, </del> <ins> chatWidgetContentHeight: this._chatWidget.contentHeight, </ins> progressHeight: getTotalHeight(this._elements.progress), statusHeight: getTotalHeight(this._elements.status), extraHeight: this._getExtraHeight() }; <del> const result = data.progressHeight + data.chatWidgetHeight + data.followUpsHeight + data.statusHeight + data.extraHeight; // console.log(`InlineChat#contentHeight ${result}`, data); </del> <ins> const result = data.progressHeight + data.chatWidgetContentHeight + data.followUpsHeight + data.statusHeight + data.extraHeight; </ins> return result; } <ins> get minHeight(): number { // The chat widget is variable height and supports scrolling. It // should be at least 100px high and at most the content height. let value = this.contentHeight; value -= this._chatWidget.contentHeight; value += Math.min(100, this._chatWidget.contentHeight); return value; } </ins> protected _getExtraHeight(): number { return 12 /* padding */ + 2 /*border*/ + 12 /*shadow*/; }
Code change:
Just asked hi: ! Expected: ! Version: 1.88.0-insider (user setup) Commit: Date: 2024-03-25T05:49:32.344Z Electron: 28.2.6 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Windows_NT x64 10.0. GitHub Copilot Chat v0.14. (pre-release)
because of
To verify configure have a very wide view port ask AI to change some code make sure the input widget is full width of the zone widget

Related discussion:
text: const chatContentHeight = this.widget.contentHeight; const editorHeight = this.editor.getLayoutInfo().height; <del> const contentHeight = Math.min(chatContentHeight, editorHeight * 0.42); </del> <ins> const contentHeight = Math.min(chatContentHeight, Math.max(this.widget.minHeight, editorHeight * 0.42)); </ins> const heightInLines = contentHeight / this.editor.getOption(EditorOption.lineHeight); <del> // console.log('ZONE#_computeHeightInLines', { chatContentHeight, editorHeight, contentHeight, heightInLines }); </del> return heightInLines; }
Code change:
Just asked hi: ! Expected: ! Version: 1.88.0-insider (user setup) Commit: Date: 2024-03-25T05:49:32.344Z Electron: 28.2.6 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Windows_NT x64 10.0. GitHub Copilot Chat v0.14. (pre-release)
because of
To verify configure have a very wide view port ask AI to change some code make sure the input widget is full width of the zone widget

Related discussion:
text: z-index: 3; } <ins> .monaco-workbench .zone-widget.inline-chat-widget .interactive-session { max-width: unset; } </ins> .monaco-workbench .zone-widget-container.inside-selection { background-color: var(--vscode-inlineChat-regionHighlight); }
Code change:
Testing ! !
doesn't reproduce in the panel chat
I somehow suffer from this change which explicitly targets some monaco tokens...
This isn't nice but there's actually no other way to override the foreground color of an editor- because typically you have syntax highlighting. We do this for all the other "input box"-style editors. I think I opened a feature request when I did this. We should align this rule with your rule for coloring the decoration so that it can override it properly.
labeling so it gets verified
Thanks
in the latest insider's, still seeing this ! !
There is two separate issues with different steps. There is a difference between rendering of slash command and normal prompt text. the only useful/visible information in the original issue description is slash commands (please use words and not images to describe issues!). For verification you have not used slash commands but normal prompt text which is a different case. Please file a separate issue, use words/steps and don't rely on screen captures with just white on white text
Steps to reproduce/verify use HC light and dark theme open inline chat and type a slash command, e.d make sure the command is readable when selecting its text

Related discussion:
text: background-color: var(--vscode-chat-list-background); } <ins> .interactive-item-container.interactive-request .header .monaco-toolbar { /* Take the partially-transparent background color override for request rows */ background-color: inherit; } </ins> .interactive-item-container .header .monaco-toolbar .checked.action-label, .interactive-item-container .header .monaco-toolbar .checked.action-label:hover { color: var(--vscode-inputOption-activeForeground) !important;
Code change:
Testing ! !
doesn't reproduce in the panel chat
I somehow suffer from this change which explicitly targets some monaco tokens...
This isn't nice but there's actually no other way to override the foreground color of an editor- because typically you have syntax highlighting. We do this for all the other "input box"-style editors. I think I opened a feature request when I did this. We should align this rule with your rule for coloring the decoration so that it can override it properly.
labeling so it gets verified
Thanks
in the latest insider's, still seeing this ! !
There is two separate issues with different steps. There is a difference between rendering of slash command and normal prompt text. the only useful/visible information in the original issue description is slash commands (please use words and not images to describe issues!). For verification you have not used slash commands but normal prompt text which is a different case. Please file a separate issue, use words/steps and don't rely on screen captures with just white on white text
Steps to reproduce/verify use HC light and dark theme open inline chat and type a slash command, e.d make sure the command is readable when selecting its text

Related discussion:
text: background-color: var(--vscode-inlineChat-regionHighlight); } <del> .monaco-workbench .inline-chat-slash-command { </del> <ins> .monaco-workbench .interactive-session .interactive-input-and-execute-toolbar .monaco-editor .inline-chat-slash-command { </ins> background-color: var(--vscode-chat-slashCommandBackground); <del> color: var(--vscode-chat-slashCommandForeground); </del> <ins> color: var(--vscode-chat-slashCommandForeground); /* Overrides the foreground color rule in chat.css */ </ins> border-radius: 4px; padding: 1px; }
Code change:
Testing In the screenshot below, "Chat: Insert at Cursor" should be "Chat: Insert into New File" !

Related discussion:
text: private _getAccessibleViewHelpDialogContent(providerHasSymbols?: boolean): string { const navigationHint = this._getNavigationHint(); const goToSymbolHint = this._getGoToSymbolHint(providerHasSymbols); <del> const toolbarHint = localize('toolbar', "Navigate to the toolbar (Shift+Tab))."); </del> <ins> const toolbarHint = localize('toolbar', "Navigate to the toolbar (Shift+Tab)."); </ins> const chatHints = this._getChatHints(); let hint = localize('intro', "In the accessible view, you can:n");