jiebi/CodeConvo huggingface dataset:
Change:
<!-- 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 (all other extensions disabled) <!-- 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. --- Version: 1.89.0 Commit: Date: 2024-05-01T02:09:22.859Z Electron: 28.2.8 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Windows_NT x64 10.0. This is a continuation of I'm in the process of creating a product icon theme and noticed the following icons not being (properly) replaced. They either appear invisible or are unthemed. There may be more icons that suffer from the same problems described below, but I have not been able to find them as of writing this. The icon is invisible after applying the theme. This is due to the following CSS rule overriding the attribute: ! Same as settings editor tab icon, it's invisible for the same CSS rule overriding the attribute. Visible in, for example, output and terminal panel views (left next to close icon), editor tabs more actions (where the 'split editor' action icons is), etc. This doesn't appear to get any overrides at all, so it remains unthemed. The icon is invisible after applying the theme. This is due to the a second attribute always being present and overriding the first attribute that correctly retrieves which value should have. !
To verify: extends the with export it as VSIX, import select the theme verify that the settings editor has now a explorer icon, as well the more icons

Discussion:
} .monaco-workbench .predefined-file-icon[class*='codicon-']::before { <del> font-family: 'codicon'; </del> width: 16px; padding-left: 3px; /* width (16px) - font-size (13px) = padding-left (3px) */ padding-right: 3px; } <ins> .predefined-file-icon::before { /* do add additional specificity to this selector, so it can be overridden by product themes */ font-family: 'codicon'; } </ins> .monaco-workbench:not(.file-icons-enabled) .predefined-file-icon[class*='codicon-']::before { content: unset !important; }

.monaco-workbench .select-container:after { content: var(--vscode-icon-chevron-down-content); font-family: var(--vscode-icon-chevron-down-font-family); <del> font-family: codicon; </del> font-size: 16px; width: 16px; height: 16px;
Change:
Version of VS Code: 1.89.0 ! Your operating system: Windows 11 List of extensions that you have installed: Happens with none installed. Reproducible steps: 1 - Open VsCode. 2 - Hover over the Show Settings Ctrl + , Watermark 3 - Hover over Find in Files Ctrl + Shift + F What you expected to see, versus what you actually saw: When hover on Ctrl + , ! When hover on Ctrl + Shift + F and any other !
This is a regression from
Does the cause some other bug?
I think we need to properly keep track of disposables.

Discussion:
private readonly transientDisposables = this._register(new DisposableStore()); private enabled: boolean = false; private workbenchState: WorkbenchState; <del> private keybindingLabel?: KeybindingLabel; </del> <ins> private keybindingLabels = new Set<KeybindingLabel>(); </ins> constructor( container: HTMLElement,

const update = () => { clearNode(box); <ins> this.keybindingLabels.forEach(label => label.dispose()); this.keybindingLabels.clear(); </ins> for (const entry of selected) { const keys = this.keybindingService.lookupKeybinding(entry.id); if (!keys) {

const dt = append(dl, $('dt')); dt.textContent = entry.text; const dd = append(dl, $('dd')); <del> this.keybindingLabel?.dispose(); this.keybindingLabel = new KeybindingLabel(dd, OS, { renderUnboundKeybindings: true, ...defaultKeybindingLabelStyles }); this.keybindingLabel.set(keys); </del> <ins> const label = new KeybindingLabel(dd, OS, { renderUnboundKeybindings: true, ...defaultKeybindingLabelStyles }); label.set(keys); this.keybindingLabels.add(label); </ins> } };

override dispose(): void { super.dispose(); this.clear(); <del> this.keybindingLabel?.dispose(); </del> <ins> this.keybindingLabels.forEach(label => label.dispose()); </ins> } }
Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.90.0-insider Commit: OS Version: Windows 11 Pro Insider Preview Version: 24H2 OS build: .5000 Steps to Reproduce: a new folder (ex.: ) click on it in Explorer, and select "Properties" the "Customize" tab the "Change icon..." button in the "Folder icons" group at the bottom, and select an icon. (this creates a file within the folder, setting the custom icon): ! Notice the folder now has the read-only attribute checkbox in an "indefinite" state: ! Also the command reports the directory as read-only (shows the flag): ! (AFAIK for the icon from the to show up in explorer) set to in VSCode a file in VSCode via or to save it into the folder via or a file name (with the path in said folder) and press "OK". however, saving this way is &raquo; not working as expected &laquo;, as The SimpleDialog in VSCode reports: ! Notes: Creating a new file - when having the folder in the workspace - by left clicking under the folder in the project explorer and selecting : works as expected Saving into the same folder with set to (ie.: the native save dialog): works as expected Opening, editing and then saving already existing files in the folder: works as expected

Discussion:
} else if (!statDirname.isDirectory) { this.filePickBox.validationMessage = nls.localize('remoteFileDialog.validateNonexistentDir', 'Please enter a path that exists.'); return Promise.resolve(false); <del> } else if (statDirname.readonly || statDirname.locked) { </del> <ins> } else if (statDirname.readonly) { </ins> this.filePickBox.validationMessage = nls.localize('remoteFileDialog.validateReadonlyFolder', 'This folder cannot be used as a save destination. Please choose another folder'); return Promise.resolve(false); }
Change:
Cannot create new cells or remove them (I don't have repro steps; it usually stops working after first time creating a new cell) Version: 1.90.0-insider Commit: Date: 2024-05-13T05:59:57.400Z Electron: 29.3.1 ElectronBuildId: Chromium: 122.0.6261.156 20.9.0 V8: 12.2.281.27-electron.0 OS: Darwin arm64 23.4.0
repro: an empty cell in a notebook and execute it a new code cell, clicking or using keybindings a/b :bug: no new cell is , existing cell's editor is focused

Discussion:
async undo(): Promise<void> { this._pauseableEmitter.pause(); <del> for (let i = this._operations.length - 1; i >= 0; i--) { await this._operations[i].undo(); </del> <ins> try { for (let i = this._operations.length - 1; i >= 0; i--) { await this._operations[i].undo(); } this._postUndoRedo(this._beginAlternativeVersionId); this._pauseableEmitter.fire({ rawEvents: [], synchronous: undefined, versionId: this.textModel.versionId, endSelectionState: this._beginSelectionState }); } finally { this._pauseableEmitter.resume(); </ins> } <del> this._postUndoRedo(this._beginAlternativeVersionId); this._pauseableEmitter.fire({ rawEvents: [], synchronous: undefined, versionId: this.textModel.versionId, endSelectionState: this._beginSelectionState }); this._pauseableEmitter.resume(); </del> } async redo(): Promise<void> { this._pauseableEmitter.pause(); <del> for (let i = 0; i < this._operations.length; i++) { await this._operations[i].redo(); </del> <ins> try { for (let i = 0; i < this._operations.length; i++) { await this._operations[i].redo(); } this._postUndoRedo(this._resultAlternativeVersionId); this._pauseableEmitter.fire({ rawEvents: [], synchronous: undefined, versionId: this.textModel.versionId, endSelectionState: this._resultSelectionState }); } finally { this._pauseableEmitter.resume(); </ins> } <del> this._postUndoRedo(this._resultAlternativeVersionId); this._pauseableEmitter.fire({ rawEvents: [], synchronous: undefined, versionId: this.textModel.versionId, endSelectionState: this._resultSelectionState }); this._pauseableEmitter.resume(); </del> } }

// Broadcast changes this._pauseableEmitter.fire({ rawEvents: [], versionId: this.versionId, synchronous: synchronous, endSelectionState: endSelections }); <del> this._pauseableEmitter.resume(); </del> } <ins> this._pauseableEmitter.resume(); </ins> } }
Change:
Have a response that contains references to code, e.g. : ! Start screen reader and click on the response. Notice how the full URLs are being read out aloud which are very long. Verbatim text: I think this stems from the fact that we just take the response as string here:
Btw I have a similar challenge for the text-to-speech integration where I am thinking about converting the markdown string to a plain text string using : But I did notice that this would remove some text, such as ordered list.
made a good point in our standup today: why are we not leveraging the HTML screen reader support for chat items but use ?
The HTML screen reader support requires users to enter different modes to navigate - browse/focus mode. Feedback from screen reader users suggested this is not user friendly. Users will examine content in detail in the chat accessible view, not here. Providing an overview of the response with aria alert is desired. This is similar to how sighted users see the response streaming in. Screen reader users press escape if they don't wish to hear the content.
I agree it's not good that it's reading the full URLs. A similar problem is here and my solution to that will be to remove those links and provide an alternate way of setting any keybindings which are undefined.
Potential verification found: I asked for the location of some code, and after Copilot finished typing out the response, it announced the entire response, including all the link text and full command IDs.
LGTM now. I might've forgotten to update something.
A screenshot of the text that was announced would help to know if this was fixed or not
nvm. The symbols are good but the URLs still expand !
unclear how this could be happening as I'm using
figured it out
It is still reading the complete path for me.
and the complete path is expected. what's not expected is these chars
going to see if I can repro on windows
does not reproduce for me on windows either . It makes no sense that this would happen - , we literally parse that stuff out. could you pls debug in oss here? !
I believe the issue is fixed now. I notice that when the announcement is read out that the links are now announced correctly. When I click on the response, the links are read with the Markdown formatting again, but I believe that this behaviour is out of scope of the issue.

Discussion:
import { IChatAccessibilityService } from 'vs/workbench/contrib/chat/browser/chat'; import { IChatResponseViewModel } from 'vs/workbench/contrib/chat/common/chatViewModel'; import { renderStringAsPlaintext } from 'vs/base/browser/markdownRenderer'; <ins> import { MarkdownString } from 'vs/base/common/htmlContent'; </ins> const CHAT_RESPONSE_PENDING_ALLOWANCE_MS = 4000; export class ChatAccessibilityService extends Disposable implements IChatAccessibilityService {

return; } const errorDetails = isPanelChat && response.errorDetails ? ` ${response.errorDetails.message}` : ''; <del> status(renderStringAsPlaintext(responseContent) + errorDetails); </del> <ins> const plainTextResponse = renderStringAsPlaintext(new MarkdownString(responseContent)); status(plainTextResponse + errorDetails); </ins> } }
Change:
I have pinned tabs in separate row and click the unpin action: ! The tab does not unpin.

Discussion:
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; }
Change:
several chat requests a chat response screen reader mode, use to open the accessible view the up arrow on the toolbar to go to the previous response see native alert dialog. it should instead be a screen reader aria alert. !

Discussion:
import { AccessibleViewType, AdvancedContentProvider, ExtensionContentProvider } from 'vs/platform/accessibility/browser/accessibleView'; import { ContextKeyExpression } from 'vs/platform/contextkey/common/contextkey'; import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; <ins> import { alert } from 'vs/base/browser/ui/aria/aria'; </ins> export interface IAccessibleViewImplentation { type: AccessibleViewType;

inBlock = true; startLine = i + 1; languageId = line.substring(3).trim(); <del> } else if (inBlock && line.startsWith('```')) { </del> <ins> } else if (inBlock && line.endsWith('```')) { </ins> inBlock = false; const endLine = i; const code = lines.slice(startLine, endLine).join('n');

menu: { ...accessibleViewMenu, <del> when: ContextKeyExpr.and(accessibleViewIsShown, accessibleViewSupportsNavigation), </del> <ins> when: ContextKeyExpr.and(accessibleViewIsShown, accessibleViewContainsCodeBlocks), </ins> }, title: localize('editor.action.accessibleViewNextCodeBlock', "Accessible View: Next Code Block") });

icon: Codicon.arrowLeft, menu: { ...accessibleViewMenu, <del> when: ContextKeyExpr.and(accessibleViewIsShown, accessibleViewSupportsNavigation), </del> <ins> when: ContextKeyExpr.and(accessibleViewIsShown, accessibleViewContainsCodeBlocks), </ins> }, title: localize('editor.action.accessibleViewPreviousCodeBlock', "Accessible View: Previous Code Block") });
Change:
a chat request that produces some code blocks the accessible view in screen reader mode the keyboard shortcuts or left/right arrows in the toolbar to verify that go to next/previous code block actions work sometimes the cursor doesn't move to the code block

Discussion:
import { AccessibleViewType, AdvancedContentProvider, ExtensionContentProvider } from 'vs/platform/accessibility/browser/accessibleView'; import { ContextKeyExpression } from 'vs/platform/contextkey/common/contextkey'; import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; <ins> import { alert } from 'vs/base/browser/ui/aria/aria'; </ins> export interface IAccessibleViewImplentation { type: AccessibleViewType;

inBlock = true; startLine = i + 1; languageId = line.substring(3).trim(); <del> } else if (inBlock && line.startsWith('```')) { </del> <ins> } else if (inBlock && line.endsWith('```')) { </ins> inBlock = false; const endLine = i; const code = lines.slice(startLine, endLine).join('n');

menu: { ...accessibleViewMenu, <del> when: ContextKeyExpr.and(accessibleViewIsShown, accessibleViewSupportsNavigation), </del> <ins> when: ContextKeyExpr.and(accessibleViewIsShown, accessibleViewContainsCodeBlocks), </ins> }, title: localize('editor.action.accessibleViewNextCodeBlock', "Accessible View: Next Code Block") });

icon: Codicon.arrowLeft, menu: { ...accessibleViewMenu, <del> when: ContextKeyExpr.and(accessibleViewIsShown, accessibleViewSupportsNavigation), </del> <ins> when: ContextKeyExpr.and(accessibleViewIsShown, accessibleViewContainsCodeBlocks), </ins> }, title: localize('editor.action.accessibleViewPreviousCodeBlock', "Accessible View: Previous Code Block") });
Change:
create a TS file make sure the file is configured to insert Tabs (from the status bar) place a character in your clipboard paste it at the beginning of the file :bug: observe nothing happens
This seems related to Auto indent. Setting fixes the issue
After investigating, this seems to happen because after pasting a new line character, the code becomes as follows: The method of the is called and it performs automatic re-indentation. In your case, since there is nothing above that line, the indentation level on that line is zero. The inserted indentation is then removed. It is possible to see this in more detail in the following example: I believe this behavior makes sense when the pasted text contains characters other than whitespace characters. Perhaps what I could do is to not trigger the re-indentation when only whitespace characters are pasted. This could be considered then as intended indentation adjustment.

Discussion:
if (!model) { return; } <ins> const containsOnlyWhitespace = this.rangeContainsOnlyWhitespaceCharacters(model, range); if (containsOnlyWhitespace) { return; } </ins> if (isStartOrEndInString(model, range)) { return; }

range: new Range(startLineNumber, 1, startLineNumber, oldIndentation.length + 1), text: newIndent }); <del> firstLineText = newIndent + firstLineText.substr(oldIndentation.length); </del> <ins> firstLineText = newIndent + firstLineText.substring(oldIndentation.length); </ins> } else { const indentMetadata = getIndentMetadata(model, startLineNumber, this._languageConfigurationService);

} } <ins> private rangeContainsOnlyWhitespaceCharacters(model: ITextModel, range: Range): boolean { const lineContainsOnlyWhitespace = (content: string): boolean => { return content.trim().length === 0; }; let containsOnlyWhitespace: boolean = true; if (range.startLineNumber === range.endLineNumber) { const lineContent = model.getLineContent(range.startLineNumber); const linePart = lineContent.substring(range.startColumn - 1, range.endColumn - 1); containsOnlyWhitespace = lineContainsOnlyWhitespace(linePart); } else { for (let i = range.startLineNumber; i <= range.endLineNumber; i++) { const lineContent = model.getLineContent(i); if (i === range.startLineNumber) { const linePart = lineContent.substring(range.startColumn - 1); containsOnlyWhitespace = lineContainsOnlyWhitespace(linePart); } else if (i === range.endLineNumber) { const linePart = lineContent.substring(0, range.endColumn - 1); containsOnlyWhitespace = lineContainsOnlyWhitespace(linePart); } else { containsOnlyWhitespace = model.getLineFirstNonWhitespaceColumn(i) === 0; } if (!containsOnlyWhitespace) { break; } } } return containsOnlyWhitespace; } </ins> private shouldIgnoreLine(model: ITextModel, lineNumber: number): boolean { model.tokenization.forceTokenization(lineNumber); const nonWhitespaceColumn = model.getLineFirstNonWhitespaceColumn(lineNumber);
Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.90.0-insider () OS Version: macOS Sonoma 14.5 Steps to Reproduce: the setting to . "Preferences: Color Theme" in the command palette. a dark theme is enabled, previews for light themes aren't working and vice versa. The preview for the selected theme is shown for a fraction of a second and immediately changed back to the enabled theme (see the video below).

Discussion:
// preferred scheme handling private installPreferredSchemeListener() { <del> this._register(this.hostColorService.onDidChangeColorScheme(() => this.restoreColorTheme())); </del> <ins> this._register(this.hostColorService.onDidChangeColorScheme(() => { if (this.settings.isDetectingColorScheme()) { this.restoreColorTheme(); } })); </ins> } public hasUpdatedDefaultThemes(): boolean {

return undefined; } <ins> public isDetectingColorScheme(): boolean { return this.configurationService.getValue(ThemeSettings.DETECT_COLOR_SCHEME); } </ins> public getColorThemeSettingId(): ThemeSettings { const preferredScheme = this.getPreferredColorScheme(); return preferredScheme ? colorSchemeToPreferred[preferredScheme] : ThemeSettings.COLOR_THEME;
Change:
Type: <bBug</btheme to "Dark High Contrast" to Editor Playground Formatting several dark texts on dark background where Keyboard Shortcuts should be. : search for other places with dark text on dark background in this theme. ! VS Code version: Code 1.89.1 (, 2024-05-07T05:13:33.891Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </detailsExtensions: none<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --

Discussion:
// ------ text preformat export const textPreformatForeground = registerColor('textPreformat.foreground', <del> { light: '#A31515', dark: '#D7BA7D', hcDark: '#000000', hcLight: '#FFFFFF' }, </del> <ins> { light: '#A31515', dark: '#D7BA7D', hcDark: '#FFFFFF', hcLight: '#000000' }, </ins> nls.localize('textPreformatForeground', "Foreground color for preformatted text segments.")); export const textPreformatBackground = registerColor('textPreformat.background',