jiebi/CodeConvo huggingface dataset:
Code change:
Issue Type: <bBug</bmicrosoft/vscode-extension-samples the helloworld-sample folder , build, verift that its contributed "Hello World" command activates the extension and shows a notification. the vscode version references in in two places to use 1.43 minimum. code to activate function in , for example: , run, use "Hello World" command to activate. breakpoint on return line above. a folder. Explorer button or context menu to create a new file. Confirm that the event fires and your breakpoint is hit. from breakpoint. Explorer context menu to copy/paste or use drag/drop with modifier to drip as a copy. :bug: The event callback does not run, despite the API doc stating: Issue also exists in 1.64.2 VS Code version: Code - Insiders 1.65.0-insider (, 2022-02-21T05:15:17.930Z) OS version: Windows_NT x64 10.0. Restricted Mode: No <!-- generated by issue reporter --
cc
the extension host's event is only emitting from 's event, but the explorer is using the 's , which doesn't seem to talk to the working copy service. What do you think the fix here should be? (cc
the bulk edit service is using the for its operations. If you look at , there is a bunch of usages for that service. The working copy file service is a wrapper around the file service that ensures the relevant events are emitted and can be participated on. I suspect that for the copy/paste operation or drag/drop we are possibly not using the bulk edit service but the file service directly? I suggest to make a pass over all explorer code and look for raw usages of to replace with bulk edit service. I think that would even enable undo/redo properly.
My bad, the real bug is that this block: doesn't handle events. cc
Pragmatic fix would probably to treat the same as .

Related discussion:
text: this._onDidDeleteFile.fire(Object.freeze({ files: files.map(f => URI.revive(f.target)) })); break; case FileOperation.CREATE: <ins> case FileOperation.COPY: </ins> this._onDidCreateFile.fire(Object.freeze({ files: files.map(f => URI.revive(f.target)) })); break; default:
Code change:
Issue Type: <bBug</bmicrosoft/vscode-extension-samples the helloworld-sample folder , build, verift that its contributed "Hello World" command activates the extension and shows a notification. the vscode version references in in two places to use 1.43 minimum. code to activate function in , for example: , run, use "Hello World" command to activate. breakpoint on return line above. a folder. Explorer button or context menu to create a new file. Confirm that the event fires and your breakpoint is hit. from breakpoint. Explorer context menu to copy/paste or use drag/drop with modifier to drip as a copy. :bug: The event callback does not run, despite the API doc stating: Issue also exists in 1.64.2 VS Code version: Code - Insiders 1.65.0-insider (, 2022-02-21T05:15:17.930Z) OS version: Windows_NT x64 10.0. Restricted Mode: No <!-- generated by issue reporter --
cc
the extension host's event is only emitting from 's event, but the explorer is using the 's , which doesn't seem to talk to the working copy service. What do you think the fix here should be? (cc
the bulk edit service is using the for its operations. If you look at , there is a bunch of usages for that service. The working copy file service is a wrapper around the file service that ensures the relevant events are emitted and can be participated on. I suspect that for the copy/paste operation or drag/drop we are possibly not using the bulk edit service but the file service directly? I suggest to make a pass over all explorer code and look for raw usages of to replace with bulk edit service. I think that would even enable undo/redo properly.
My bad, the real bug is that this block: doesn't handle events. cc
Pragmatic fix would probably to treat the same as .

Related discussion:
text: case FileOperation.DELETE: return await this._fireWillEvent(this._onWillDeleteFile, { files: files.map(f => URI.revive(f.target)) }, timeout, token); case FileOperation.CREATE: <ins> case FileOperation.COPY: </ins> return await this._fireWillEvent(this._onWillCreateFile, { files: files.map(f => URI.revive(f.target)) }, timeout, token); } return undefined;
Code change:
It seems something odd is appearing in our builds, specifically for our "video" svgs that has a link. The SVG doesn't contain anything crazy: Which throws the following error in the console: The strangest thing is in OSS everything looks fine but in the builds, the image is small and not centered. <img width="1089" alt="CleanShot 2022-02-23 at 09 01 27 src="https://user-"<img width="1024" alt="CleanShot 2022-02-23 at 09 01 14 src="https://user-"cc
Is this new? cc any recent changes to CSP?
I see this in Stable as well, so we likely never caught it
This is happening because the is being stripped out of this svg at some point during build.

Related discussion:
text: <del> <svg width="351" height="225" viewBox="0 0 351 225" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> </del> <ins> <svg viewBox="0 0 351 225" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> </ins> <g clip-path="url(#clip0_1103_9950)"> <rect width="350.625" height="225" fill="#1E1E1E" /> <rect width="350.625" height="225" fill="url(#paint0_radial_1103_9950)" />
Code change:
Just broke again:
Added a timeout to the initialize request which will tell me if that's the part that's timing out, but it's probably not. Any guess
Duplicates

Related discussion:
text: return new Promise((resolve, reject) => { debugAdapter.sendRequest('initialize', { adapterID: 'test' }, (result) => { resolve(result); <del> }); </del> <ins> }, 3000); </ins> }); }
Code change:
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.

Related discussion:
text: readonly executingCommandObject: ITerminalCommand | undefined; /** The current cwd at the cursor's position. */ readonly cwd: string | undefined; <ins> /** * Whether a command is currently being input. If the a command is current not being input or * the state cannot reliably be detected the fallback of undefined will be used. */ readonly hasInput: boolean | undefined; </ins> readonly onCommandStarted: Event<ITerminalCommand>; readonly onCommandFinished: Event<ITerminalCommand>; readonly onCommandInvalidated: Event<ITerminalCommand[]>;
Code change:
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.

Related discussion:
text: return undefined; } get cwd(): string | undefined { return this._cwd; } <ins> private get _isInputting(): boolean { return !!(this._currentCommand.commandStartMarker && !this._currentCommand.commandExecutedMarker); } get hasInput(): boolean | undefined { if (!this._isInputting || !this._currentCommand?.commandStartMarker) { return undefined; } if (this._terminal.buffer.active.baseY + this._terminal.buffer.active.cursorY === this._currentCommand.commandStartMarker?.line) { const line = this._terminal.buffer.active.getLine(this._terminal.buffer.active.cursorY)?.translateToString(true, this._currentCommand.commandStartX); if (line === undefined) { return undefined; } return line.length > 0; } return true; } </ins> private readonly _onCommandStarted = new Emitter<ITerminalCommand>(); readonly onCommandStarted = this._onCommandStarted.event;
Code change:
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.

Related discussion:
text: } 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); }
Code change:
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.

Related discussion:
text: import { showWithPinnedItems } from 'vs/platform/quickinput/browser/quickPickPin'; import { IStorageService } from 'vs/platform/storage/common/storage'; import { IContextKey } from 'vs/platform/contextkey/common/contextkey'; <ins> import { timeout } from 'vs/base/common/async'; </ins> export async function showRunRecentQuickPick( accessor: ServicesAccessor,
Code change:
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.

Related discussion:
text: } else { // command text = result.rawLabel; } <del> instance.sendText(text, !quickPick.keyMods.alt, true); </del> quickPick.hide(); <ins> runCommand(instance, text, !quickPick.keyMods.alt); </ins> if (quickPick.keyMods.alt) { instance.focus(); }
Code change:
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.

Related discussion:
text: }); } <ins> async function runCommand(instance: ITerminalInstance, commandLine: string, addNewLine: boolean): Promise<void> { // Determine whether to send ETX (ctrl+c) before running the command. This should always // happen unless command detection can reliably say that a command is being entered and // there is no content in the prompt if (instance.capabilities.get(TerminalCapability.CommandDetection)?.hasInput !== false) { await instance.sendText('x03', false); // Wait a little before running the command to avoid the sequences being echoed while the ^C // is being evaluated await timeout(100); } // Use bracketed paste mode only when not running the command await instance.sendText(commandLine, addNewLine, !addNewLine); } </ins> class TerminalOutputProvider implements ITextModelContentProvider { static scheme = 'TERMINAL_OUTPUT';
Code change:
Open following url Install dialog is shown asking user to install and open extension <img width="275" alt="image" src="https://user-"- After clicking on install, following prompt is shown <img width="454" alt="image" src="https://user-"Second prompt seems to be unnecessary. It is expected to open the URL after installing

Related discussion:
text: import { IWorkbenchExtensionEnablementService, EnablementState } from 'vs/workbench/services/extensionManagement/common/extensionManagement'; import { areSameExtensions } from 'vs/platform/extensionManagement/common/extensionManagementUtil'; import { createDecorator, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; <del> import { INotificationService, Severity } from 'vs/platform/notification/common/notification'; </del> <ins> import { INotificationService } from 'vs/platform/notification/common/notification'; </ins> import { IStorageService, StorageScope, StorageTarget } from 'vs/platform/storage/common/storage'; import { IURLHandler, IURLService, IOpenURLOptions } from 'vs/platform/url/common/url'; import { IHostService } from 'vs/workbench/services/host/browser/host'; <del> import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; </del> <ins> import { IExtensionService, toExtensionDescription } from 'vs/workbench/services/extensions/common/extensions'; </ins> import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { Registry } from 'vs/platform/registry/common/platform';
Code change:
Open following url Install dialog is shown asking user to install and open extension <img width="275" alt="image" src="https://user-"- After clicking on install, following prompt is shown <img width="454" alt="image" src="https://user-"Second prompt seems to be unnecessary. It is expected to open the URL after installing

Related discussion:
text: const extension = await this.extensionService.getExtension(extensionId); if (!extension) { <del> await this.handleUnhandledURL(uri, { id: extensionId }); </del> <ins> await this.handleUnhandledURL(uri, { id: extensionId }, options); </ins> return true; }
Code change:
Open following url Install dialog is shown asking user to install and open extension <img width="275" alt="image" src="https://user-"- After clicking on install, following prompt is shown <img width="454" alt="image" src="https://user-"Second prompt seems to be unnecessary. It is expected to open the URL after installing

Related discussion:
text: // Install the Extension and reload the window to handle. const result = await this.dialogService.confirm({ <del> message: localize('installAndHandle', "Extension '{0}' is not installed. Would you like to install the extension and reload the window to open this URL?", galleryExtension.displayName || galleryExtension.name), </del> <ins> message: localize('installAndHandle', "Extension '{0}' is not installed. Would you like to install the extension and open this URL?", galleryExtension.displayName || galleryExtension.name), </ins> detail: `${galleryExtension.displayName || galleryExtension.name} (${extensionIdentifier.id}) wants to open a URL:nn${uri.toString()}`, <del> primaryButton: localize('install', "&&Install"), </del> <ins> primaryButton: localize('install and open', "&&Install and Open"), </ins> type: 'question' });
Code change:
System info: macOs, Zsh, shell integration on. to vscode folder and hit tab it autocompletes to Hit tab again to autocomplete the names, it instead creates a big space and adds again. !
Not sure if we're tracking this one yet but I've seen it too in pwsh/Windows.
Works fine in pwsh.
It only occurs for me when shell integration is on. I've had to disable it in the meantime
Maybe I didn't see it on Windows actually. Happens on zsh/mac when pasting followed by enter/left: <img width="418" alt="Screen Shot 2022-03-17 at 10 57 44 am" src="https://user-"
Oh I bet I know what's causing this, we need to wrap "invisible" parts of the prompt in and
Simpler repro: tab <img width="242" alt="Screen Shot 2022-03-17 at 11 08 21 am" src="https://user-"l

Related discussion:
text: update_prompt() { PRIOR_PROMPT="$PS1" IN_COMMAND_EXECUTION="" <del> PS1="$(prompt_start)$PREFIX$PS1$(prompt_end)" PS2="$(continuation_start)$PS2$(continuation_end)" </del> <ins> PS1="[$(prompt_start)]$PREFIX$PS1[$(prompt_end)]" PS2="[$(continuation_start)]$PS2[$(continuation_end)]" </ins> } precmd() {
Code change:
System info: macOs, Zsh, shell integration on. to vscode folder and hit tab it autocompletes to Hit tab again to autocomplete the names, it instead creates a big space and adds again. !
Not sure if we're tracking this one yet but I've seen it too in pwsh/Windows.
Works fine in pwsh.
It only occurs for me when shell integration is on. I've had to disable it in the meantime
Maybe I didn't see it on Windows actually. Happens on zsh/mac when pasting followed by enter/left: <img width="418" alt="Screen Shot 2022-03-17 at 10 57 44 am" src="https://user-"
Oh I bet I know what's causing this, we need to wrap "invisible" parts of the prompt in and
Simpler repro: tab <img width="242" alt="Screen Shot 2022-03-17 at 11 08 21 am" src="https://user-"l

Related discussion:
text: update_prompt() { PRIOR_PROMPT="$PS1" IN_COMMAND_EXECUTION="" <del> PS1="$(prompt_start)$PREFIX$PS1$(prompt_end)" PS2="$(continuation_start)$PS2$(continuation_end)" </del> <ins> PS1="%{$(prompt_start)%}$PREFIX$PS1%{$(prompt_end)%}" PS2="%{$(continuation_start)%}$PS2%{$(continuation_end)%}" </ins> } precmd() {
Code change:
The original issue comes from Comment from Looks like there is some problem with the editor focus when the test message view is peeked out?
I found a way to view test results and work with tests. When the tests are executed, I need to press CTRL+m for tab key to move between elements, then tab until the close button and after that panel with buttons to go to previous and next failure results there will be a tree with test results. That's accessible with NVDA, I am sure it's also accessible with Orca. Thank you for help all!
Thanks for the issue! at the moment we reveal the failed position and then focus the editor. Instead is it preferable to focus within the peek view like the references peeks do?
yeah, it would be better if you focus inside the peek automatically for accessibility reasons. If you want, you can also differentiate if the command is triggered via keybinding, if yes then move focus, otherwise do not. This is what the editor hover does. Though I think it might be a bit confusing in this case, so I suggest to just pass focus inside the peek.
Thank you for such an active feedback! I also think that it would be more convenient if the focus moves directly to the peek instead of moving it to the editor with the selected line that can be easily deleted by accedent. Thank you!
<!-- 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!
how about some verification steps unless resurfaces?
Steps in the original post should still be accurate. Opening test peek output (for a failed test) via should focus and screen-read the peek view, rather than staying in the editor.

Related discussion:
text: this.show(dto.revealLocation.range, TestingOutputPeek.lastHeightInLines || hintMessagePeekHeight(message)); this.editor.revealPositionNearTop(dto.revealLocation.range.getStartPosition(), ScrollType.Smooth); <del> this.editor.focus(); </del> return this.showInPlace(dto); }
Code change:
The original issue comes from Comment from Looks like there is some problem with the editor focus when the test message view is peeked out?
I found a way to view test results and work with tests. When the tests are executed, I need to press CTRL+m for tab key to move between elements, then tab until the close button and after that panel with buttons to go to previous and next failure results there will be a tree with test results. That's accessible with NVDA, I am sure it's also accessible with Orca. Thank you for help all!
Thanks for the issue! at the moment we reveal the failed position and then focus the editor. Instead is it preferable to focus within the peek view like the references peeks do?
yeah, it would be better if you focus inside the peek automatically for accessibility reasons. If you want, you can also differentiate if the command is triggered via keybinding, if yes then move focus, otherwise do not. This is what the editor hover does. Though I think it might be a bit confusing in this case, so I suggest to just pass focus inside the peek.
Thank you for such an active feedback! I also think that it would be more convenient if the focus moves directly to the peek instead of moving it to the editor with the selected line that can be easily deleted by accedent. Thank you!
<!-- 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!
how about some verification steps unless resurfaces?
Steps in the original post should still be accurate. Opening test peek output (for a failed test) via should focus and screen-read the peek view, rather than staying in the editor.

Related discussion:
text: this.tree.setFocus([messageNode]); this.tree.setSelection([messageNode]); <ins> this.tree.domFocus(); </ins> })); this._register(this.tree.onDidOpen(async e => {
Code change:
The fix for at only replaces the first instance of in the string, not all of them. I suspect the regex needs on the end. <img width="1028" alt="Screenshot 2022-03-17 at 14 46 58" src="https://user-" FYI :)
heh, I found that and was going to change it, but GitHub fell over. I can easily add the , but it's not clear to me where/how to write a test against this class (which is actually the part that I get stuck on any time I want to contribute something). I can't find any similar tests in this area to use as a template.
/verified

Related discussion:
text: } } <del> const lineBreakRe = /r?ns*/; </del> <ins> const lineBreakRe = /r?ns*/g; </ins> class TestMessageDecoration implements ITestDecoration { public static readonly inlineClassName = 'test-message-inline-content';
Code change:
Steps to Reproduce: command a language Settings file is opened. Settings Editor with language filter shall be opened given that the editor supports it.

Related discussion:
text: if (pick) { const languageId = this.languageService.getLanguageIdByLanguageName(pick.label); if (typeof languageId === 'string') { <del> return this.preferencesService.openUserSettings({ jsonEditor: true, revealSetting: { key: `[${languageId}]`, edit: true } }); </del> <ins> return this.preferencesService.openLanguageSpecificSettings(languageId); </ins> } } return undefined;
Code change:
Steps to Reproduce: command a language Settings file is opened. Settings Editor with language filter shall be opened given that the editor supports it.

Related discussion:
text: return this.open(this.userSettingsResource, options); } <ins> openLanguageSpecificSettings(languageId: string, options: IOpenSettingsOptions = {}): Promise<IEditorPane | undefined> { if (this.shouldOpenJsonByDefault()) { options.query = undefined; options.revealSetting = { key: `[${languageId}]`, edit: true }; } else { options.query = `@lang:${languageId}${options.query ? ` ${options.query}` : ''}`; } options.target = options.target ?? ConfigurationTarget.USER_LOCAL; return this.open(this.userSettingsResource, options); } </ins> private open(settingsResource: URI, options: IOpenSettingsOptions): Promise<IEditorPane | undefined> { options = { ...options,
Code change:
Steps to Reproduce: command a language Settings file is opened. Settings Editor with language filter shall be opened given that the editor supports it.

Related discussion:
text: openFolderSettings(options: IOpenSettingsOptions & { folderUri: IOpenSettingsOptions['folderUri'] }): Promise<IEditorPane | undefined>; openGlobalKeybindingSettings(textual: boolean, options?: IKeybindingsEditorOptions): Promise<void>; openDefaultKeybindingsFile(): Promise<IEditorPane | undefined>; <ins> openLanguageSpecificSettings(language: string, options?: IOpenSettingsOptions): Promise<IEditorPane | undefined>; </ins> getEditableSettingsURI(configurationTarget: ConfigurationTarget, resource?: URI): Promise<URI | null>; createSplitJsonEditorInput(configurationTarget: ConfigurationTarget, resource: URI): EditorInput;