jiebi/CodeConvo huggingface dataset:
Change:
It looks like the smoke test had a generic startup error caused by a TLS stream (maybe a https request?)
This is from using the module to download VSCode: did you see this before?
One idea would be to wrap is a , similar to this call: But I am not 100% sure that method can be just retried like that.
If we depend on a library and that fails, I suggest the retry logic be in the library itself.
Added retry logic, but would be nice to get this from natively.

Discussion:
let lastProgressMessage: string | undefined = undefined; let lastProgressReportedAt = 0; <del> const stableCodeExecutable = await measureAndLog(vscodetest.download({ cachePath: path.join(os.tmpdir(), 'vscode-test'), </del> <ins> const stableCodeDestination = path.join(testDataPath, 's'); const stableCodeExecutable = await retry(() => measureAndLog(vscodetest.download({ cachePath: stableCodeDestination, </ins> version: previousVersion.version, extractSync: true, reporter: {

}, error: error => logger.log(`download stable code error: ${error}`) } <del> }), 'download stable code', logger); </del> <ins> }), 'download stable code', logger), 1000, 3, () => new Promise<void>((resolve, reject) => { rimraf(stableCodeDestination, { maxBusyTries: 10 }, error => { if (error) { reject(error); } else { resolve(); } }); })); </ins> if (process.platform === 'darwin') { // Visual Studio Code.app/Contents/MacOS/Electron

(): T; } <del> export async function retry<T>(task: ITask<Promise<T>>, delay: number, retries: number): Promise<T> { </del> <ins> export async function retry<T>(task: ITask<Promise<T>>, delay: number, retries: number, onBeforeRetry?: () => Promise<unknown>): Promise<T> { </ins> let lastError: Error | undefined; for (let i = 0; i < retries; i++) { try { <ins> if (i > 0 && typeof onBeforeRetry === 'function') { try { await onBeforeRetry(); } catch (error) { console.warn(`onBeforeRetry failed with: ${error}`); } } </ins> return await task(); } catch (error) { lastError = error;
Change:
Today the "Debug: Inline Values" setting uses low-level "true" and "false" values (in addition to the more high-level "auto"): <img width="352" alt="CleanShot 2022-02-21 at 14 31 00 src="https://user-"I suggest to support (and surface in the UI) "on" and "off" values and only keep the booleans for backward compatibility.
Hi! Can I work on this issue?
I think this is a "good first issue", do you agree?
Yes, I would take a PR for this. Make sure that it's backwards compatible so that if a user has true or false set, those still work as they did before.

Discussion:
}, 'debug.inlineValues': { type: ['boolean', 'string'], <del> 'enum': [true, false, 'auto'], </del> <ins> 'enum': ['on', 'off', 'auto'], </ins> description: nls.localize({ comment: ['This is the description for a setting'], key: 'inlineValues' }, "Show variable values inline in editor while debugging."), 'enumDescriptions': [ nls.localize('inlineValues.on', 'Always show variable values inline in editor while debugging.'),

const model = this.editor.getModel(); const inlineValuesSetting = this.configurationService.getValue<IDebugConfiguration>('debug').inlineValues; <del> const inlineValuesTurnedOn = inlineValuesSetting === true || (inlineValuesSetting === 'auto' && model && this.languageFeaturesService.inlineValuesProvider.has(model)); </del> <ins> const inlineValuesTurnedOn = inlineValuesSetting === true || inlineValuesSetting === 'on' || (inlineValuesSetting === 'auto' && model && this.languageFeaturesService.inlineValuesProvider.has(model)); </ins> if (!inlineValuesTurnedOn || !model || !stackFrame || model.uri.toString() !== stackFrame.source.uri.toString()) { if (!this.removeInlineValuesScheduler.isScheduled()) { this.removeInlineValuesScheduler.schedule();

allowBreakpointsEverywhere: boolean; openDebug: 'neverOpen' | 'openOnSessionStart' | 'openOnFirstSessionStart' | 'openOnDebugBreak'; openExplorerOnEnd: boolean; <del> inlineValues: boolean | 'auto'; </del> <ins> inlineValues: boolean | 'auto' | 'on' | 'off'; // boolean for back-compat </ins> toolBarLocation: 'floating' | 'docked' | 'hidden'; showInStatusBar: 'never' | 'always' | 'onFirstSessionStart'; internalConsoleOptions: 'neverOpen' | 'openOnSessionStart' | 'openOnFirstSessionStart';
Change:
have an inlay hint with command double click the hint to run the command the current word is selected too
I believe this needs some changes in the editor. Preventing default on the mouse event doesn't seem to fix it.
What should happen when the user clicks on an inlay hint for a single time?
Nothing, unless it's a cmd/ctrl-click on an active label part link

Discussion:
leftButton: this._mouseState.leftButton, middleButton: this._mouseState.middleButton, <ins> onInjectedText: position.type === MouseTargetType.CONTENT_TEXT && position.detail.injectedText !== null </ins> }); } }

import { EventType, Gesture, GestureEvent } from 'vs/base/browser/touch'; import { Disposable } from 'vs/base/common/lifecycle'; import { IPointerHandlerHelper, MouseHandler, createMouseMoveEventMerger } from 'vs/editor/browser/controller/mouseHandler'; <del> import { IMouseTarget } from 'vs/editor/browser/editorBrowser'; </del> <ins> import { IMouseTarget, MouseTargetType } from 'vs/editor/browser/editorBrowser'; </ins> import { EditorMouseEvent, EditorPointerEventFactory } from 'vs/editor/browser/editorDom'; import { ViewController } from 'vs/editor/browser/view/viewController'; import { ViewContext } from 'vs/editor/common/viewModel/viewContext';

leftButton: false, middleButton: false, <ins> onInjectedText: target.type === MouseTargetType.CONTENT_TEXT && target.detail.injectedText !== null </ins> }); } }

leftButton: boolean; middleButton: boolean; <ins> onInjectedText: boolean; </ins> } export interface ICommandDelegate {

} } } else if (data.mouseDownCount === 2) { <del> if (this._hasMulticursorModifier(data)) { this._lastCursorWordSelect(data.position); } else { if (data.inSelectionMode) { this._wordSelectDrag(data.position); </del> <ins> if (!data.onInjectedText) { if (this._hasMulticursorModifier(data)) { this._lastCursorWordSelect(data.position); </ins> } else { <del> this._wordSelect(data.position); </del> <ins> if (data.inSelectionMode) { this._wordSelectDrag(data.position); } else { this._wordSelect(data.position); } </ins> } } } else {
Change:
Testing F1 Customize Layout Some of the entries have keybindinding with the same effect, like to show/hide the side bar, for the panel, or for zen mode The corresponding commands should show those keybinding so that I can learn how to achieve my goal faster
This can be easily done: <img width="633" alt="image" src=""PR:
Verification: open the layout picker ("Customize Layout") verify some of the entries show their keybindings

Discussion:
import { registerIcon } from 'vs/platform/theme/common/iconRegistry'; import { ICommandActionTitle } from 'vs/platform/action/common/action'; import { mainWindow } from 'vs/base/browser/window'; <ins> import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; </ins> // Register Icons const menubarIcon = registerIcon('menuBar', Codicon.layoutMenubar, localize('menuBarIcon', "Represents the menu bar"));

}); } <del> getItems(contextKeyService: IContextKeyService): QuickPickItem[] { </del> <ins> getItems(contextKeyService: IContextKeyService, keybindingService: IKeybindingService): QuickPickItem[] { </ins> const toQuickPickItem = (item: CustomizeLayoutItem): IQuickPickItem => { const toggled = item.active.evaluate(contextKeyService.getContext(null)); let label = item.useButtons ?

id: item.id, label, ariaLabel, <ins> keybinding: keybindingService.lookupKeybinding(item.id, contextKeyService), </ins> buttons: !item.useButtons ? undefined : [ { alwaysVisible: false,

const contextKeyService = accessor.get(IContextKeyService); const commandService = accessor.get(ICommandService); const quickInputService = accessor.get(IQuickInputService); <ins> const keybindingService = accessor.get(IKeybindingService); </ins> const quickPick = quickInputService.createQuickPick(); this._currentQuickPick = quickPick; <del> quickPick.items = this.getItems(contextKeyService); </del> <ins> quickPick.items = this.getItems(contextKeyService, keybindingService); </ins> quickPick.ignoreFocusOut = true; quickPick.hideInput = true; quickPick.title = localize('customizeLayoutQuickPickTitle', "Customize Layout");

let selectedItem: CustomizeLayoutItem | undefined = undefined; disposables.add(contextKeyService.onDidChangeContext(changeEvent => { if (changeEvent.affectsSome(LayoutContextKeySet)) { <del> quickPick.items = this.getItems(contextKeyService); </del> <ins> quickPick.items = this.getItems(contextKeyService, keybindingService); </ins> if (selectedItem) { quickPick.activeItems = quickPick.items.filter(item => (item as CustomizeLayoutItem).id === selectedItem?.id) as IQuickPickItem[]; }
Change:
Issue Type: <bBug</bThe description for is copied from VS Code version: Code 1.64.2 (, 2022-02-09T22:02:28.252Z) OS version: Windows_NT x64 10.0. Restricted Mode: No Remote OS version: Linux x64 5.4.0-100-generic <details<summaryExtensions (15)</summaryExtensionVersion ------ jupyter-keymap1.0.0 remote-ssh0.74.0 remote-ssh-edit0.74.0 vscode-icons11.10.0 gitlens11.7.0 cmake-language-support-vscode0.0.4 git-graph1.30.0 vscode-dotnet-runtime1.5.0 python2022.0. vscode-pylance2022.2.3 jupyter2022.1. jupyter-keymap1.0.0 jupyter-renderers1.0.6 cmake-tools1.9.2 cpptools1.8.4 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --

Discussion:
'editor.guides.highlightActiveBracketPair': { type: 'boolean', default: defaults.highlightActiveBracketPair, <del> description: nls.localize('editor.guides.highlightActiveBracketPair', "Controls whether bracket pair guides are enabled or not.") </del> <ins> description: nls.localize('editor.guides.highlightActiveBracketPair', "Controls whether the editor should highlight the active bracket pair.") </ins> }, 'editor.guides.indentation': { type: 'boolean',
Change:
Testing terminal into side panel :bug: decorations render on top of output text, nothing happens when you click on the decorations
same for dragging and dropping into the editor area
related
Their alignment is wrong, but the context menus work for me. !
original issue was a duplicate of Renaming to address the alignment issue
The decorations might benefit from a little padding when in the side panel: ! Versus in the bottom panel: !
I agree that it looks quite cramped there. You'll also see it looking similarly cramped for split terminals (besides the first one). That's because we have of left padding for those vs for the first split. I don't think we plan to change this. Thoughts ? One option would be to decrease the size of the icon so that there's more room.
We could add a dedicated 20px column there when shell integration is on, regardless of split status? Similar to how disabling folding will hide the folding column in the editor. Shall we capture this improvement in another issue?

Discussion:
padding-right: 20px; } <del> .monaco-workbench .editor-instance .terminal-group .monaco-split-view2.horizontal .split-view-view:first-child .xterm .terminal-command-decoration, </del> .monaco-workbench .pane-body.integrated-terminal .terminal-group .monaco-split-view2.horizontal .split-view-view:first-child .xterm .terminal-command-decoration { margin-left: -17px; } <del> .monaco-workbench .editor-instance .terminal-group .monaco-split-view2.horizontal .split-view-view .xterm .terminal-command-decoration, </del> <ins> .monaco-workbench .editor-instance .xterm .terminal-command-decoration, .monaco-split-view2.vertical .split-view-view .xterm .terminal-command-decoration, </ins> .monaco-workbench .pane-body.integrated-terminal .terminal-group .monaco-split-view2.horizontal .split-view-view .xterm .terminal-command-decoration { margin-left: -12px; }
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/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: 1.63.2 .Steps to Reproduce: an error while coding, and open the "View Problem" box. that the up-arrow has the label "Goto next problem". Ideally it should be "Goto previous problem". !
You accidentally closed this let's reopen and assign to me. fyi

Discussion:
}, menuOpts: { menuId: MarkerNavigationWidget.TitleMenu, <del> title: NextMarkerAction.LABEL, </del> <ins> title: PrevMarkerAction.LABEL, </ins> icon: registerIcon('marker-navigation-previous', Codicon.arrowUp, nls.localize('previousMarkerIcon', 'Icon for goto previous marker.')), group: 'navigation', order: 2
Change:
Testing While experimenting with the 'customize layout' control, I switched my panel alignment but then wasn't sure what to reset it back to Can we add a indicator that tells users what the default alignment is?
I suppose this feedback should be applied to the other options as well. it isn't the only item with a default value, but I am also a little hesitant as it makes the experience somewhat noisy and the user can select whatever option they like the most. thoughts?
This was the only option that was confusing to me but I can see just adding a default label to one section would be a little weird Another option is to add a entry inside that resets the entire layout. That is pretty much what I was wanted after experimenting with these options
I think reset is quite interesting, I will update this as a feature request for that
To verify: the "Customize Layout" action the layout the reset icon in the top right of the quick pick From the code, here is the list of stuff that I expect to be reset:

Discussion:
return; } <ins> const configurationService = accessor.get(IConfigurationService); </ins> const contextKeyService = accessor.get(IContextKeyService); const commandService = accessor.get(ICommandService); const quickInputService = accessor.get(IQuickInputService);

quickPick.hideInput = true; quickPick.title = localize('customizeLayoutQuickPickTitle', "Customize Layout"); <ins> const closeButton = { alwaysVisible: true, iconClass: Codicon.close.classNames, tooltip: localize('close', "Close") }; const resetButton = { alwaysVisible: true, iconClass: Codicon.discard.classNames, tooltip: localize('restore defaults', "Restore Defaults") }; </ins> quickPick.buttons = [ <del> { alwaysVisible: true, iconClass: Codicon.close.classNames, tooltip: localize('close', "Close") } </del> <ins> resetButton, closeButton </ins> ]; const disposables = new DisposableStore();

} }); <del> // Only one button, close quickPick.onDidTriggerButton(() => { quickPick.hide(); </del> <ins> quickPick.onDidTriggerButton((button) => { if (button === closeButton) { quickPick.hide(); } else if (button === resetButton) { const resetSetting = (id: string) => { const config = configurationService.inspect(id); configurationService.updateValue(id, config.defaultValue); }; // Reset all layout options resetSetting('workbench.activityBar.visible'); resetSetting('workbench.sideBar.location'); resetSetting('workbench.statusBar.visible'); resetSetting('workbench.panel.defaultLocation'); if (!isMacintosh || !isNative) { resetSetting('window.menuBarVisibility'); } commandService.executeCommand('workbench.action.alignPanelCenter'); } </ins> }); quickPick.onDidHide(() => {
Change:
Testing Session where commands got to the history: ! Later session: ! The command was run in two different locations and was last run. But in the previous session list it does not have it at the top. The order is not the same.
Previous session missing cwd is by design, we may choose to add it later when looking into autocomplete but for now it's meant to act more like an alternative to ctrl+r which doesn't track cwd on any shell. Additionally, if we tracked it we'd need to worry about keeping track of every cwd we track as only tracking the last cwd for a command feels a bit odd. Will look into the order.
To verifier: a shell integration enabled terminal , , echo commands should show up in the section, in order of most recently run a new window and the same terminal type as in echo commands should show up in the section, in order of most recently run
Step 7 fails for me. For step 5, I tried both opening a completely new window, and simply creating a new tab: !
I can repro but only if I open run recent very quickly, too quickly for the terminal to get classified as a pwsh which is a prerequisite to pulling in the history as it's segregated by shell type. Making as verified again, remove if I misunderstood.

Discussion:
for (const [label, info] of history.entries) { // Only add previous session item if it's not in this session if (!commandMap.has(label) && info.shellType === this.shellType) { <del> previousSessionItems.push({ </del> <ins> previousSessionItems.unshift({ </ins> label, buttons: [removeFromCommandHistoryButton] });

// Only add previous session item if it's not in this session and it matches the remote authority for (const [label, info] of history.entries) { if ((info === null || info.remoteAuthority === this.remoteAuthority) && !cwds.includes(label)) { <del> previousSessionItems.push({ </del> <ins> previousSessionItems.unshift({ </ins> label, buttons: [removeFromCommandHistoryButton] });
Change:
/CC Issue Type: <bBug</ba menu to appear either by e.g, pressing alt+f or by pressing the applications key in the explorer tree view. says "tool bar" instead of menu. More importantly, focus is no longer being automatically placed on the first menu item as it normally would be. VS Code version: Code - Insiders 1.65.0-insider (, 2022-02-21T05:15:17.930Z) OS version: WindowsNT x64 10.0. Restricted Mode: No Remote OS version: Linux x64 5.10.60.1-microsoft-standard-WSL2 <details<summarySystem Info</summary </details<details<summaryExtensions (14)</summaryExtensionVersion ------ jupyter-keymap1.0.0 remote-containers0.223.0 remote-ssh0.74.0 remote-ssh-edit0.74.0 remote-wsl0.64.2 vscode-remote-extensionpack0.21.0 dendron0.83.0 dendron-markdown-links0.6.20 dendron-markdown-preview-enhanced0.10.57 dendron-markdown-shortcuts0.12.1 dendron-paste-image1.1.0 dendron-snippet-maker0.1.6 prettier-vscode9.3.0 shellcheck0.18.8 </details<!-- generated by issue reporter --
I know changed some defaults of menus in insiders to tryout layout changes. This might be related can you also reproduce with VS Code stable?
it looks like you are using windows, but can you confirm if you are using the titlebar style or titlebar style
I don't get this odd reading of a "toolbar" when opening menus on stable, v1.63.2. how do I check which style I'm using?
Just to add, I realized that even on stable, pressing the applications key to open a context menu does not automatically place focus on the first item, so this is not new behaviour. Specifically, the new behaviour I'm noticing here is the fact that its reading a toolbar which is confusing.
please check the setting
Custom, which is the default.
Hey this issue might need further attention. you can help us out by closing this issue if the problem no longer exists, or adding more information.
Verified that the custom menu is correctly read with Narrator (Windows)

Discussion:
context: options.context, actionRunner: options.actionRunner, ariaLabel: options.ariaLabel, <ins> ariaRole: 'menu', </ins> focusOnlyEnabledItems: true, triggerKeys: { keys: [KeyCode.Enter, ...(isMacintosh || isLinux ? [KeyCode.Space] : [])], keyDown: true } }); this.menuElement = menuElement; <del> this.actionsList.setAttribute('role', 'menu'); </del> this.actionsList.tabIndex = 0; this.menuDisposables = this._register(new DisposableStore());
Change:
Seeing this in today's build: ! Might be related to the fix
Weird that it looks like it reproduces inconsistently. I wonder if that always happens following one of the "empty commands"
The change I had in mind isn't working as I thought, this is too risky for Feb.
I haven't seen this happen for some time.
I have seen this actually
One problem case, notice B (command start) happens before the new line of the prompt: !
Other problem case: ! Notice that a cursor move event is happening on line 50 which is the line above the prompt: !

Discussion:
// On Windows track all cursor movements after the command start sequence if (this._isWindowsPty) { this._commandMarkers.length = 0; <del> this._onCursorMoveListener = this._terminal.onCursorMove(() => { if (this._commandMarkers.length === 0 || this._commandMarkers[this._commandMarkers.length - 1].line !== this._terminal.buffer.active.cursorY) { const marker = this._terminal.registerMarker(0); if (marker) { this._commandMarkers.push(marker); } } }); </del> // HACK: Fire command started on the following frame on Windows to allow the cursor // position to update as conpty often prints the sequence on a different line to the // actual line the command started on. timeout(0).then(() => { <ins> if (!this._currentCommand.commandExecutedMarker) { this._onCursorMoveListener = this._terminal.onCursorMove(() => { if (this._commandMarkers.length === 0 || this._commandMarkers[this._commandMarkers.length - 1].line !== this._terminal.buffer.active.cursorY) { const marker = this._terminal.registerMarker(0); if (marker) { this._commandMarkers.push(marker); } } }); } </ins> this._currentCommand.commandStartMarker = this._terminal.registerMarker(0); this._onCommandStarted.fire({ marker: this._currentCommand.commandStartMarker } as ITerminalCommand); });

// executed markers. This is done on command finished just in case command executed never // happens (for example PSReadLine tab completion) if (this._isWindowsPty) { <del> this._commandMarkers = this._commandMarkers.sort((a, b) => a.line - b.line); </del> <ins> if (this._commandMarkers.length === 0) { // If the command start timeout doesn't happen before command finished, just use the // current marker. if (!this._currentCommand.commandStartMarker) { this._currentCommand.commandStartMarker = this._terminal.registerMarker(0); } if (this._currentCommand.commandStartMarker) { this._commandMarkers.push(this._currentCommand.commandStartMarker); } } else { this._commandMarkers = this._commandMarkers.sort((a, b) => a.line - b.line); } </ins> this._currentCommand.commandStartMarker = this._commandMarkers[0]; this._currentCommand.commandExecutedMarker = this._commandMarkers[this._commandMarkers.length - 1]; }