jiebi/CodeConvo huggingface dataset:
Code change:
const range = match.range(); const matchText = match.text().substr(0, range.endColumn + 150); if (replace) { <del> return nls.localize('replacePreviewResultAria', "Replace '{0}' with '{1}' at column {2} in line {3}", matchString, match.replaceString, range.startColumn + 1, matchText); </del> <ins> return nls.localize('replacePreviewResultAria', "Replace '{0}' with '{1}' in line '{2}' at column {3}", matchString, match.replaceString, matchText, range.startColumn + 1); </ins> } <del> return nls.localize('searchResultAria', "Found '{0}' at column {1} in line '{2}'", matchString, range.startColumn + 1, matchText); </del> <ins> return nls.localize('searchResultAria', "Found '{0}' in line '{1}' at column {2}", matchString, matchText, range.startColumn + 1); </ins> } return null; }

Related discussion:
text: reported by the aria label for search results should read content first then location IE line/column info ! cc for historical context
Makes good sense, and should be an easy fix.
Interesting - this works as expected on macOS
When replace is disabled, we have a label that looks like Otherwise, if replace is enabled, we have: Would you rather see something like for non-replace and for replace? Not too sure why this would be different on mac. What does the aria say on your machine?
Thanks for looking into this. I have not tried on Windows, but when shared his screen (on Windows), the announcement read the line/column info before the actual content. Do you know where that would be coming from?
should be fixed in
I just tried on Windows and cannot reproduce the behavior that demoed - in which the line/col info was presented before the actual content. We will need to hear from him if it still happens and if so, how to reproduce.
Did you just try on insiders? I just changed the functionality
and Note: is redundant b/c that's the user input search term and users already know what they are looking for, and it takes longer time for screen reader users to hear the actual content.
thanks for clarifying. Re The reason for was to distinguish between that and a . Do you think that we should keep the part of or get rid of both given they require the user's action to get into that state? Another option would be to append to the end of the message.
The reason that we state the match again is for regex users. If they have a fairly general regex, they might want to know what actually caused it to match. Although we could also argue that the line context is more commonly valued by search users, since many people don't use regex.
Thanks for that context I agree that we should optimize for the most common case here.
-- I recommend taking out redundant prefix, including 'Replace'. This is similar to one of the recommended best practices creating alt text. We recommend avoiding any redundant words, such as "Image of " or "Graphics of " b/c users know what they are interacting with.
Using the example from before, we could probably do something like 'VSCode is cool' found in match 'VSCode' in line at column 15 when replace is not active. What do you think the replace case should look like?
Code change:
const range = match.range(); const matchText = match.text().substr(0, range.endColumn + 150); if (replace) { <del> return nls.localize('replacePreviewResultAria', "Replace '{0}' with '{1}' at column {2} in line {3}", matchString, match.replaceString, range.startColumn + 1, matchText); </del> <ins> return nls.localize('replacePreviewResultAria', "Replace '{0}' with '{1}' in line '{2}' at column {3}", matchString, match.replaceString, matchText, range.startColumn + 1); </ins> } <del> return nls.localize('searchResultAria', "Found '{0}' at column {1} in line '{2}'", matchString, range.startColumn + 1, matchText); </del> <ins> return nls.localize('searchResultAria', "Found '{0}' in line '{1}' at column {2}", matchString, matchText, range.startColumn + 1); </ins> } return null; }

Related discussion:
text: The user will know if they're triggering a or , so the idea is to remove both of those terms. So, for search: for replace:
Since the replace hasn't occurred at this point yet, wouldn't be past tense in the results. We can say, instead, but is that too wordy? Also, I feel that the match string is still useful here for those who search for regex, so perhaps that could go at the end? Or we could just read it if they have regex search enabled.
fyi, 'm going to move this to that may iteration because I will be offline for the rest of the April iteration.
I might fix it for you
It sounds like line number is still expected from the comments here, but only the column number is stated. e.g. 'matched context' at column 34 found (1) 1 of 1 Also, finding a match in the first column will state that it was found at column 2
I see why you were confused but is text not a line number there. So this is working as designed.
not sure what you mean by this
created since it seems like a different issue
Code change:
getAnchor: () => this._editorContainer, render: (container) => { return this._render(provider, container); <del> }, onHide: () => { provider.onClose(); this._keyListener?.dispose(); </del> } }; this._contextViewService.showContextView(delegate);

Related discussion:
text: run voice over open terminal start accessibility help via while it start reading select :bug: the reading continues all way to the end
I'm not sure we can / should prevent this from happening. Screen reader users have a way to abort the reading of certain contents. or might have insight here
This is very strange. The behavior is as if Voiceover wasn't detecting the change of context. In other words, upon pressing Escape, Voiceover is not detecting that focus is moving from one control to a different one. This is often related to focus events that are not happening. I have a question. Is the terminal accessible help somehow being removed from the DOM or hidden from accessibility without removing focus first? When debugging with NVDA, the first thing that happens after pressing Escape is an exception, as if the screen reader had lost access to something that should be there (DEBUGWARNING - NVDAObjects.IAccessible.IAccessible.getIAccessibleRole (15:05:00.655) - MainThread (5320): accRole failed: (-, 'Unspecified error', (None, None, None, 0, None)) ). Voiceover not stopping upon closing the accessibility help not only happens in the terminal. It also happens in the editor, the copilot chat and anywhere we call the accessibility help. Another thing I have observed is that, if I press f1 from the editor, I hear the name terminal accessibility help even though the terminal is not in focus and the content is related to the editor. This happens in both Windows and macOs. Finally, I have also observed that the command Open accessibility help doesn't show up in the command palette on the mac side for me, although pressing Option +F1 opens it.
Thanks for your findings You hear terminal accessibility help because I accidentally had that as the aria label. Fixed here I will comment on the others in a bit
This wasn't showing up there 2 days ago - are you on the latest insider's?
accRole failed: (-, 'Unspecified error', (None, None, None, 0, None)) Yep, we were closing the context view before calling , which is the function that focuses the other element. Will fix
Hm, that didn't fix it. What fixes it is after pressing escape, moving my cursor in the editor.
Code change:
getAnchor: () => this._editorContainer, render: (container) => { return this._render(provider, container); <del> }, onHide: () => { provider.onClose(); this._keyListener?.dispose(); </del> } }; this._contextViewService.showContextView(delegate);

Related discussion:
text: is correct though
It says you are currently on a application, inside of web content. When the editor is focused. !
Right. From the VO perspective, VS Code is a website.
Hovers use the context view service as well - they handle this correctly though when escape is used. that is done here. we probably need something similar
I clearly had not updated when I thought I had done so. I'm in the latest now and the command is showing up.
Great, thanks for the debugging. This issue should be fixed shortly.
That didn't work either, going to keep trying.
Ok so hiding the context view sets to and the element's display to . but for some reason, the screen reader continues to focus on that
Figured something out - when I use , then it works. So this is a timing issue
This seemed to work correctly for me... though my ESC button is a part of the touchbar so I have to do extra steps when VoiceOver is on to actually trigger ESC.
Code change:
const result = { primary, secondary, menu }; createAndFillInContextMenuActions(menu, { shouldForwardArgs: true }, result, 'inline'); if (i === 0) { <del> for (const action of result.primary) { allowedPrimary.set(action.id, action); } for (const action of result.secondary) { allowedSecondary.set(action.id, action); } </del> <ins> primaryGroups = this.createGroups(result.primary); secondaryGroups = this.createGroups(result.secondary); </ins> } else { <del> const primaryKeys = allowedPrimary.keys(); for (const key of primaryKeys) { if (!result.primary.some(action => action.id === key)) { allowedPrimary.delete(key); } } const secondaryKeys = allowedSecondary.keys(); for (const key of secondaryKeys) { if (!result.secondary.some(action => action.id === key)) { allowedSecondary.delete(key); } } </del> <ins> this.filterNonUniversalActions(primaryGroups, result.primary); this.filterNonUniversalActions(secondaryGroups, result.secondary); </ins> } if (listen && elements.length === 1) { listen.add(menu.onDidChange(() => this._onDidChange.fire(element)));

Related discussion:
text: <!-- 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?: No, issue is with extension contributed context menus. <!-- 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.89.0-insider OS Version: Mac OS X (ARM) Steps to Reproduce: a context menu in Stable and compare it to the same menu in Insiders. I verified the issue reproduces for multiple extensions including GitLens. Stable: <img width="424" alt="image" src=""Insiders: <img width="420" alt="image" src=""
If this is a confirmed regression, it would help to know which change caused it. We maintain a based CLI tool  that automatically downloads and runs previous VS Code insiders and asks for each build if the issue reproduces. It takes up to 8 steps to find exactly the build that caused the regression. Steps: install (if not yet done) follow the instructions until you found the offending build (its fine to leave the commit empty) report back the commit range in this issue Thanks!
Bisect points to My money would be on Reproduces by looking at the context menu of "Commits" when GitLens is installed: !
Code change:
this._instance.focus(); this._instance.sendText(text, false); })); <ins> this.add(this._instance.onWillPaste(() => addon.isPasting = true)); this.add(this._instance.onDidPaste(() => { // Delay this slightly as synchronizing the prompt input is debounced setTimeout(() => addon.isPasting = false, 100); })); </ins> // If completions are requested, pause and queue input events until completions are // received. This fixing some problems in PowerShell, particularly enter not executing

Related discussion:
text: Steps to Reproduce: text into PowerShell (with Terminal suggest enabled) see batched pasting behavior
maybe related to
Haha, I think this is it triggering completions while the pasted text is being send then kicking in. Pastes should never trigger completions so let's track that here.
When verifying make sure you're on macOS.
Code change:
return symbolPicks; } <del> private async openSymbol(provider: IWorkspaceSymbolProvider, symbol: IWorkspaceSymbol, token: CancellationToken, options: { keyMods: IKeyMods, forceOpenSideBySide?: boolean, preserveFocus?: boolean }): Promise<void> { </del> <ins> private async openSymbol(provider: IWorkspaceSymbolProvider, symbol: IWorkspaceSymbol, token: CancellationToken, options: { keyMods: IKeyMods, forceOpenSideBySide?: boolean, preserveFocus?: boolean, forcePinned?: boolean }): Promise<void> { </ins> // Resolve actual symbol to open for providers that can resolve let symbolToOpen = symbol;

Related discussion:
text: <!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: --Description: As of 1.44, I am not able to open multiple files from "Go to file..." menu (ctrl + p shortcut) when middle mouse clicked on them. I used it when opening similiar/dependent files (ts, html and css for component, etc.) As of 1.44 middle mouse click only opens last file clicked. Steps to Reproduce: dependented files (.html, .ts and .css) with same name. for that name in "Go to file..." (ctrl+p shortcut). mouse click on multiple files. <!-- Use Help Report Issue to prefill these. --- VSCode Version: 1.44 OS Version: Windows_NT x64 10.0.
I found that holding alt + middle mouse button does open multiple files in 1.44. If it is not regression please fill free to close it.
Workaround: configure in settings.
Code change:
templateData.value.appendChild(result); templateData.value.classList.add((element.severity === severity.Warning) ? 'warn' : (element.severity === severity.Error) ? 'error' : (element.severity === severity.Ignore) ? 'ignore' : 'info'); <del> templateData.source.textContent = element.sourceData ? `${element.sourceData.source.name}:${element.sourceData.lineNumber}` : ''; </del> <ins> templateData.source.textContent = element.sourceData ? `${basename(element.sourceData.source.name)}:${element.sourceData.lineNumber}` : ''; </ins> templateData.source.title = element.sourceData ? `${this.labelService.getUriLabel(element.sourceData.source.uri)}:${element.sourceData.lineNumber}` : ''; templateData.getReplElementSource = () => element.sourceData; }

Related discussion:
text: <img width="1792" alt="image" src="https://user-"Hi, like visible on the screenshot, more than half of the terminal width in vertical mode is taken to display the path of the file where the log originated. I think this is not relevant to many of us since the path will point to the logger file At some point it gets really hard to read the logs Just to have an option to display path in cli would be enought for me. My screen resolution is 3072x1920 and my zoom level is -0.5 (at 0 it is even worst)
This has always been a bit off- I think only showing the file name would be sufficient
To be honest, who even needs the filename? When debugging I know what my messages mean and where they are generated. If I don't, a simple clickable elipsis will save space and perform the same function by bringing me directly to the line of code.
Code change:
border-radius: 6px; } <del> .monaco-dialog-box .dialog-message-row .dialog-message-container { padding-left: 0px; } </del> .monaco-dialog-box .dialog-message-row .dialog-message-container .dialog-message-text { font-size: 25px; <del> width: max-content; } .monaco-dialog-box .dialog-message-row .dialog-message-container .dialog-message-body .dialog-message { display: flex; padding: 20px; min-height: auto; color: var(--vscode-descriptionForeground); border-radius: 6px; overflow: hidden; margin-bottom: 12px; background: var(--vscode-welcomePage-tileHoverBackground); align-items: center; } .monaco-dialog-box .dialog-message-row .dialog-message-container .dialog-message-body>.dialog-message { grid-area: title; align-self: flex-end; } .monaco-dialog-box .dialog-message-row .dialog-message-container .dialog-message-body .dialog-message hr { border-color: var(--vscode-descriptionForeground); margin-bottom: 12px; border-width: thin; </del> <ins> min-width: max-content; </ins> } <del> .monaco-dialog-box .dialog-message-row .dialog-message-container .dialog-message-body .dialog-message .icon-widget { </del> <ins> #monaco-dialog-message-body > div > p > .codicon[class*='codicon-']::before{ </ins> padding-right: 8px; max-width: 30px; max-height: 30px;

Related discussion:
text: Related: ! A better user experience for blocking/deferring subsequent modal dialogs needs to be implemented.
Code change:
} this._currentCommand.commandStartX = this._terminal.buffer.active.cursorX; this._currentCommand.commandStartMarker = options?.marker || this._terminal.registerMarker(0); <ins> // Clear executed as it must happen after command start this._currentCommand.commandExecutedMarker?.dispose(); this._currentCommand.commandExecutedMarker = undefined; this._currentCommand.commandExecutedX = undefined; for (const m of this._commandMarkers) { m.dispose(); } this._commandMarkers.length = 0; </ins> this._onCommandStarted.fire({ marker: options?.marker || this._currentCommand.commandStartMarker, markProperties: options?.markProperties } as ITerminalCommand); this._logService.debug('CommandDetectionCapability#handleCommandStart', this._currentCommand.commandStartX, this._currentCommand.commandStartMarker?.line); }

Related discussion:
text: Repro: in a terminal and select something ! We should hit ctrl+c beforehand () which should work properly on all shells
We should also do this when is clicked in the decoration's context menu
I attempted this in but it was more complicated than I originally anticipated. Moving to backlog.
Code change:
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src data: ${cspSource}; media-src ${cspSource}; script-src 'nonce-${nonce}'; style-src ${cspSource} 'nonce-${nonce}';"> <meta id="settings" data-settings="${escapeAttribute(JSON.stringify(settings))}"> </head> <del> <body class="container loading"> </del> <ins> <body class="container loading" data-vscode-context='{ "preventDefaultContextMenuItems": true }'> </ins> <div class="loading-indicator"></div> <div class="loading-error"> <p>${vscode.l10n.t("An error occurred while loading the audio file.")}</p>

Related discussion:
text: <!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes/No <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: Version: 1.74.3 (on ) OS Version: Linux, Gnome, Chrome Steps to Reproduce: an image in the media-preview extension click on the image and select copy to paste the image somewhere Nothing happens. Also note that Cut and Paste make no sense here as menu items. I assume that these are just the default context menu options from - perhaps these should be removed entirely from the preview extension and we could manually implement copy?
Hey I would like to work on this issue.
assign this to me
Are these the correct steps to reproduce the issue? I'm unable to verify it on my mac. Can you provide more information? I previewed the image and then copied and pasted it. <img width="950" alt="image" src="https://user-"
I would like to wokr on this issue.
I would like to try solving this issue.
You right-click an image and select "copy", then you click a folder in VSCode's explorer and select "paste". The image should be pasted into that folder but it doesn't.
I would like to work on this issuse. here, I tried to copy and paste (Ctrl+v) it. But it doesn't work. https://user-
After a day of researching, I think I can explain why this issue happens.
Code change:
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src data: ${cspSource}; media-src ${cspSource}; script-src 'nonce-${nonce}'; style-src ${cspSource} 'nonce-${nonce}';"> <meta id="settings" data-settings="${escapeAttribute(JSON.stringify(settings))}"> </head> <del> <body class="container loading"> </del> <ins> <body class="container loading" data-vscode-context='{ "preventDefaultContextMenuItems": true }'> </ins> <div class="loading-indicator"></div> <div class="loading-error"> <p>${vscode.l10n.t("An error occurred while loading the audio file.")}</p>

Related discussion:
text: Basically in the core webview module (see ), three default context menu actions (cut, copy and paste) are to the menu, which are accessible throughout all webviews, and happens to be one of them, so after you right-click anywhere in a image previewer, you will be able to see these three actions. After you clicks one of these actions, the editor will post an message to the image previewer, telling it to cut, copy or paste. If there is a correspondent listener for this perpose, the image will be actually cut, copied, pasted, but unfortunately there is no such listeners defined. This problem has existed for quite a bit of time. The original modification that cause this problem is from here . It is origianlly meant to allow users to copy selected text within an extension's README page. There is also a closed issue that describe such issue in . Personally I think providing action cut, copy and paste for all webviews is a little bit hasty, since there are not universally required for each webview, and even some of them need, the subject to be copied may vary from different webviews, or even different places in a same webview. I can solve it by disabling the default actions first (there is a option to achieve this), then let image previewer to implement its own copy and cut functionality, but I think this is rather a quick and sloppy solution. There should be another better way to solve this issue.
What about adding a handler :
Here's what I tried VSC insiders without any extensions Open a folder with a .png file Open the png file in vscode Right click and select Paste into folder in vscode = does not work Paste into markdown cell in vscode = does not work What am i doing wrong?
Pasting image data into folders isn't supported by VS Code. Pasting into a notebook cells works fine for me though. To verify though you can also paste into an external image editor