Question: } layout(maxHeight?: number): void { <del> this.list.getHTMLElement().style.maxHeight = maxHeight ? `calc(${Math.floor(maxHeight / 44) * 44}px)` : ''; </del> <ins> this.list.getHTMLElement().style.maxHeight = maxHeight ? `${ // Make sure height aligns with list item heights Math.floor(maxHeight / 44) * 44 // Add some extra height so that it's clear there's more to scroll + 6 }px` : ''; </ins> this.list.layout(); }

When a quickpick has more items than can fit into the initial list, it's not obvious there are hidden items that need to be scrolled into view. The current visual treatment is a very subtle scrollbar flash when the quickpick is first opened, but thereafter there is no visual indication that there are more items. The current behavior presents issues for the remote indicator menu, which displays actions from all installed remote extensions (connect to host, create new codespace) etc. The remote indicator menu is meant to improve discoverability and ease of access to remote actions, and the current truncation inhibits discoverability of those remote actions. Proposals: a arrow button at the bottom of the quickpick when there are items offscreen which will scroll down to the next 'page' of items when clicked render the scrollbar
Looking at prior art here: Slack ! Spotlight ! GitHub ! Teams ! Alfred ! Docker ! One thing I'm noticing is that some render the height as the middle of an item... which is an indication that there is scroll. Not sure if that is intentional or not, but it would be something that we have control of. While the is a neat idea, I fear that it will be in the way while reading the item it is on top of... My preference is either render the scroll bar... or maybe do nothing since the "command palette" experience can be seen across many products and most if not all allow scrolling.
Oh, I wanted to point out that the scroll bar does flash today: ! and if your mouse is hovering over the list, the scrollbar sticks around. This feels like enough of an indication that there's scroll.
Instead of rendering it atop an item, what if we rendered it below all the items in the quickpick?
Do you not think the flashing scroll bar is enough? The Explorer does this too.
I don't think it's enough, particularly for the remote indicator scenario where you're triggering it by clicking the status bar--there will be a brief flash when it's first opened, and if you then use up/down arrows to navigate through the list, you don't see the scrollbar.
Is this a hunch or based on user feedback? I talked to a bit about how the fading went when we rolled it out everywhere and there were some issues opened: not scoped to quickpick but rather holistically.


Question: } layout(maxHeight?: number): void { <del> this.list.getHTMLElement().style.maxHeight = maxHeight ? `calc(${Math.floor(maxHeight / 44) * 44}px)` : ''; </del> <ins> this.list.getHTMLElement().style.maxHeight = maxHeight ? `${ // Make sure height aligns with list item heights Math.floor(maxHeight / 44) * 44 // Add some extra height so that it's clear there's more to scroll + 6 }px` : ''; </ins> this.list.layout(); }

We have settings to control the behavior but only in the editor I guess: ! in terms of proposal 1 for scrollbar visibility, I feel like the issues I linked are a better holistic way forward. As for the ... I'm not sold. Either it makes the quick pick taller (just for a little arrow) or it covers up content.... plus I couldn't find a single quick pick example in the wild that takes this approach.
I think it's fair to consider a global treatment for scrollable content as you say, the linked proposals look promising.
Proposed solution: increase the by a little bit so it renders like: !
steps to verify: open the command palette it should render in the middle of the item (like my last screenshot) to indicate that it does scroll


Question: export const suggestMemoryService = define(ISuggestMemoryService, (o) => new SuggestMemoryService(storageService.get(o), configurationService.get(o))); <ins> export const codeLensCacheService = define(ICodeLensCache, (o) => new CodeLensCache(storageService.get(o))); </ins> } export class DynamicStandaloneServices extends Disposable {

<!-- 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: --<!-- Use Help Report Issue to prefill these. --- VSCode Version: master Ran into this issue while preparing Monaco release in vscode repo open monaco-editor test page switch monaco-editor-core source to not found error in Dev Console is registered through which is only read by workbench We can add the singleton services to standalone but a simple standalone service can also fix the problem <img width="576" alt="image" src="https://user-" let me know if you have time for a quick fix, if not I can push my change to branch first to unblock publishing.
FYI is also made to ensure work at this moment. Unluckily our intermediate typescript files for tree shaking don't apply to yet. The commit will be cherry-picked to master later.
There is no need for , the default implementation is good enough and just needs to be brought into the editor land.
please review
can you clarify the steps for this? I'm not sure where the monaco-editor test page is
I can take this one


Question: } // Workspace trust <del> if (typeof config?.security?.workspace?.trust?.enabled === 'boolean' && config.security?.workspace.trust.enabled !== this.workspaceTrustEnabled) { this.workspaceTrustEnabled = config.security.workspace.trust.enabled; changed = true; } </del> <ins> processChanged(this.workspaceTrustEnabled.handleChange(config?.security?.workspace?.trust?.enabled)); </ins> } // Profiles <del> if (this.productService.quality === 'stable' && typeof config.workbench?.experimental?.settingsProfiles?.enabled === 'boolean' && config.workbench.experimental.settingsProfiles.enabled !== this.settingsProfilesEnabled) { this.settingsProfilesEnabled = config.workbench.experimental.settingsProfiles.enabled; changed = true; } </del> <ins> processChanged(this.productService.quality === 'stable' && this.settingsProfilesEnabled.handleChange(config.workbench?.experimental?.settingsProfiles?.enabled)); </ins> // Experiments <del> if (typeof config.workbench?.enableExperiments === 'boolean' && config.workbench.enableExperiments !== this.experimentsEnabled) { this.experimentsEnabled = config.workbench.enableExperiments; changed = true; } </del> <ins> processChanged(this.experimentsEnabled.handleChange(config.workbench?.enableExperiments)); </ins> // Profiles <del> if (this.productService.quality !== 'stable' && typeof config._extensionsGallery?.enablePPE === 'boolean' && config._extensionsGallery?.enablePPE !== this.enablePPEExtensionsGallery) { this.enablePPEExtensionsGallery = config._extensionsGallery?.enablePPE; changed = true; } </del> <ins> processChanged(this.productService.quality !== 'stable' && this.enablePPEExtensionsGallery.handleChange(config._extensionsGallery?.enablePPE)); </ins> // Notify only when changed and we are the focused window (avoids notification spam across windows) if (notify && changed) {

I think a class like this could be helpful: Usage: Originally posted by in
please let me know if you like this!
This class is primarily owned by Hence assigning to him.
Yes, feel free, I can review a PR, thanks.


Question: this.toDispose.push(this.editor.onDidChangeModelContent(() => this.update())); this.toDispose.push(this.inlineChatService.onDidChangeProviders(() => this.update())); this.toDispose.push(this.editor.onDidChangeModelDecorations(() => this.update())); <ins> this.toDispose.push(this.editor.onDidChangeConfiguration((e: ConfigurationChangedEvent) => { if (e.hasChanged(EditorOption.readOnly)) { this.update(); } })); </ins> this.toDispose.push(this.configurationService.onDidChangeConfiguration(e => { if (e.affectsConfiguration(emptyTextEditorHintSetting)) { this.update();

<img width="642" alt="image" src=""
How do you repro this? We don't show the hint for readonly editors:
an file 1 -My guess is we don't re-evaluate the change


Question: scrollbar: { alwaysConsumeMouseWheel: false }, <del> ariaLabel: this._configurationService.getValue(AccessibilityVerbositySettingId.Chat) ? localize('chat.codeBlockHelp', 'Code block, to discover ways this can be interacted with, search the command palette for Chat: Insert and Chat: Run.') : localize('chat.codeBlock', 'Code block'), </del> <ins> ariaLabel: localize('chat.codeBlockHelp', 'Code block'), </ins> ...this.getEditorOptionsFromConfig() }, { isSimpleWidget: true,

We should not translate the PHP parser error messages, but we should localize the strings that appear in the Code UI. !


Question: "dependencies": { "vscode-css-languageservice": "^6.0.1", "vscode-html-languageservice": "^5.0.0", <del> "vscode-languageserver": "^8.0.1", </del> <ins> "vscode-languageserver": "^8.0.2-next.4", </ins> "vscode-languageserver-textdocument": "^1.0.4", "vscode-nls": "^5.0.1", "vscode-uri": "^3.0.3"

Version: 1.68.0-insider Commit: Date: 2022-06-02T05:17:01.962Z open the Settings JSON editor add some unnecessary commas no problems reported in the problems view. open the JSON Language Server log. Observe that there are no diagnostic requests. Other requests are sent and completed, so the language server is running.
Maybe unrelated: I was expecting "trailing comma" warnings in (we recently changed the schema to not accept them), but they only started showing after I flushed the schema cache (using the UI command) and reloaded the window (I can't completely rule out that a window reload alone would have helped).
I checked that with the fix the trailing commas are reported


Question: vertical-align: middle; } <del> .monaco-workbench .part.editor > .content .editor-group-container > .editor-group-watermark > .shortcuts dt, .monaco-workbench .part.editor > .content .editor-group-container > .editor-group-watermark > .shortcuts dl { color: rgba(0,0,0,.68); } .monaco-workbench.vs-dark .part.editor > .content .editor-group-container .editor-group-watermark > .shortcuts dt, .monaco-workbench.vs-dark .part.editor > .content .editor-group-container .editor-group-watermark > .shortcuts dl { color: rgba(255,255,255,.6); } .monaco-workbench.hc-black .part.editor > .content .editor-group-container .editor-group-watermark > .shortcuts dt, .monaco-workbench.hc-light .part.editor > .content .editor-group-container .editor-group-watermark > .shortcuts dt { color: var(--vscode-editor-foreground); } .monaco-workbench.hc-black .part.editor > .content .editor-group-container .editor-group-watermark > .shortcuts dl, .monaco-workbench.hc-light .part.editor > .content .editor-group-container .editor-group-watermark > .shortcuts dl { color: var(--vscode-editor-foreground); opacity: 1; } </del> /* Title */ .monaco-workbench .part.editor > .content .editor-group-container > .title {

<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Describe the feature you'd like. --I'd like to have a theme setting that would allow me to change the foreground of the text in red next to the shortcuts. I've reached out to the dev tools and wasn't able to track the setting. I searched Google, SO, ChatGPT and I've tested a bunch of foregrounds and nothing works. <img width="1012" alt="Screenshot 2024-01-10 at 16 21 18" src=""
I a new color . It is derived from the


Question: import electron = require('electron'); import platform = require('vs/base/common/platform'); import env = require('vs/workbench/electron-main/env'); <del> import storage = require('vs/workbench/electron-main/storage'); </del> import settings = require('vs/workbench/electron-main/settings'); import {Win32AutoUpdaterImpl} from 'vs/workbench/electron-main/win32/auto-updater.win32'; import {manager as Lifecycle} from 'vs/workbench/electron-main/lifecycle';

Users that don't want automatic updates should still be given the opportunity to stay in the same version. ping


Question: : importAction; const secondaryAction = isWeb ? importAction <del> : new BarrierAction(barrier, new Action('close', localize('close', "Close"))); </del> <ins> : new BarrierAction(barrier, new Action('close', localize('close', "Close")), this.notificationService); </ins> const view = await this.showProfilePreviewView(IMPORT_PROFILE_PREVIEW_VIEW, importedProfile.name, primaryAction, secondaryAction, false, userDataProfileImportState); const message = new MarkdownString();

<!-- 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.76.0 OS Version: macOS 11.6.2 Version: 1.76.0 Commit: Date: 2023-03-01T10:23:45.993Z Electron: 19.1.11 Chromium: 102.0.5005.196 16.14.2 V8: 10.2.154.26-electron.0 OS: Darwin x64 20.6.0 Sandboxed: No Summary When creating a profile with a name such as "Typescript / Javascript", the following happens: When exporting as a Gist, no result dialog shows ("there was trouble" / "created profile successfully") and a validation error is outputted in the logs When exporting to a local file, the text after the last forward slash is set as the filename. With the above example, it'd be " " To reproduce: a profile: Settings cog -"Profile ([...])" the profile: Select "Export Profile..." -"Export" the "name the profile" step, enter a name with a forward slash in like so: "Typescript / Javascript" either method for exporting: gist or local Expected results: If you select local: a system save prompt with the name you entered pre-set in the filename field If you select gist: A success dialog with a link to the website prefilled with your config Actual results: If you select local: only the text after the last forward slash is in the filename field If you select gist: No dialog shows.


Question: : importAction; const secondaryAction = isWeb ? importAction <del> : new BarrierAction(barrier, new Action('close', localize('close', "Close"))); </del> <ins> : new BarrierAction(barrier, new Action('close', localize('close', "Close")), this.notificationService); </ins> const view = await this.showProfilePreviewView(IMPORT_PROFILE_PREVIEW_VIEW, importedProfile.name, primaryAction, secondaryAction, false, userDataProfileImportState); const message = new MarkdownString();

The following error is in the "output" window, under "Window": I can only test this on a macOS device, I haven't tried this on a Windows or other Linux device and I feel like (with the area in mind - filesystems etc) these issues could manifest differently or not even be an issue there. I'm assuming validation on the inputbox for the name will be required because filesystems (and Gist? not sure) don't typically support forward slashes in file names. Thanks and if you're reading this, have a great weekend :)
Gists do no accept in the name. Replaced with .


Question: if (_sticky) { return; } <del> this._hideWidgets(); </del> <ins> if (this._mouseWasOverWidget) { // The mouse just left the content widget and a timeout is trigerred to hide the widget // This timeout will be cancelled if the mouse re-enters the content widget this._hideWidgetsTimeout = setTimeout(() => { this._hideWidgets(); this._hideWidgetsTimeout = undefined; }, this._hidingDelay); this._mouseWasOverWidget = false; } else { this._hideWidgets(); } </ins> } private _onKeyDown(e: IKeyboardEvent): void {

Currently the hover disappear as soon as the mouse leaves the content hover. Sometimes the user leaves briefly the content hover. The ask is to wait until some times (ex. 500 ms) has passed before measuring whether the mouse is within the hover or not, then make the hover disappear or not.
This would be quite helpful in resizing the hover (because it's easy to go out of the hover when aiming for the angle to hover with a mouse). But I would think 500 ms is too much for that use case


Question: *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <del> .monaco-workbench .part > .title > .title-actions .switch-output  { </del> <ins> .monaco-workbench .part.sidebar > .title > .title-actions .switch-output, .monaco-pane-view .pane > .pane-header .monaco-action-bar .switch-output { border-width: 1px; border-style: solid; } .part.panel > .title > .title-actions .switch-output > .monaco-select-box { border-width: 1px; border-style: solid; } .monaco-workbench .part.sidebar > .title > .title-actions .switch-output  { </ins> display: flex; align-items: center; font-size: 11px;

The select box in the panel header should have a white background: ! This is similar to the recent breakage with the simple editor widget background color in SCM and extensions views.
To Verify: to an obvious color. that terminal and output select boxes are using these when they are in their default locations in panel.


Question: this.findInput.inputBox.setPlaceHolder(mode === TreeFindMode.Filter ? localize('type to filter', "Type to filter") : localize('type to search', "Type to search")); } <ins> get value(): string { return this.findInput.inputBox.value; } set value(value: string) { this.findInput.inputBox.value = value; } </ins> private readonly modeToggle: ModeToggle; private readonly findInput: FindInput; private readonly actionbar: ActionBar;

Testing When find box is not visible and I just type but there are multiple results, then maybe allow me via keybindings (F3?) to go to next/prev result?
You mean using the type navigation feature? I think this would be too implicit. I don't know of any other native widget doing something like this.
I think the editor has a way to navigate in find results even without showing find. i think in that mode it only puts the search toggles up in a little overlay.
The editor opens up the widget once again, when pressing <kbdF3</kbd. Yeah we can do that.
I think the tree does the same, I had tried and it showed the input box, but it was empty though.
Yeah. Renamed this to remember the input across usages, which is what the editor does.


Question: template.onChange = undefined; template.inputBox.value = typeof dataElement.value === 'number' ? <del> dataElement.value.toLocaleString(language) : ''; </del> <ins> dataElement.value.toString() : ''; </ins> template.inputBox.step = dataElement.valueType.includes('integer') ? '1' : 'any'; template.inputBox.setAriaLabel(dataElement.setting.key); template.onChange = value => {

<img width="285" alt="image" src="https://user-"
strange as 1000 is a number <img width="1060" alt="Screenshot 2023-01-20 at 3 28 32 PM" src="https://user-"
value is here, not sure why <img width="1246" alt="Screenshot 2023-01-20 at 3 34 09 PM" src="https://user-"
Oh, changed the default value to 10 and it worked. I think 1000 is viewed as too high somewhere so it gets set to '' <img width="1052" alt="Screenshot 2023-01-20 at 3 39 55 PM" src="https://user-"
also tried because some other settings w high default values use that and it still didn't work
I some logging and it's because converts it to , and then the inputbox doesn't know how to handle the comma


Question: } private _onMouseWheel(e: StandardMouseWheelEvent): void { <ins> let browserEvent = e.browserEvent; if (browserEvent.ctrlKey){ let zoomLevel:number = Browser.getEditorZoomLevel(); let delta = e.deltaY > 0 ? 1 : -1; zoomLevel += delta; Browser.setEditorZoomLevel(zoomLevel); return; } </ins> if (Platform.isMacintosh && e.browserEvent && this._options.saveLastScrollTimeOnClassName) { // Mark dom node with timestamp of wheel event let target = <HTMLElement>e.browserEvent.target;

VSCode Version: 1.1.1 OS Version: Windows 7 x64 It would be great if holding the key + spinning the mouse wheel would increase / decrease the VS Code zoom value.
I am not sure we want to zoom the entire UI when you use the mousewhell, I would expect only the editor font to increase. Thereby moving to
yes you are correct.
Didn't this feature used to work, or am I just failing to remember correctly? I was just going to report this as a bug, but maybe it never actually worked. I jump between different computer setups fairly regularly, so maybe I am just not remembering. Anyway, I found this dupe, and didn't want to submit a new issue. Thanks for your efforts By the way, I think I would expect this feature to work the same way that and work. VSCode's UI deviates from many other UIs in that it scales well, so I think I'd expect this to scale the entire UI consistently with the keyboard commands.
If this zooms only the editor, shouldn't it be seperate from ?
I would expect and to zoom only the editor. That behaviour would be consistent with most (all?) other editors and apps. Scaling the entire interface is an accessibility feature IMO, so maybe it doesn't need to use such a commonly used shortcut by default? Beyond Ctrl+Wheel, pinch to zoom should also zoom the editor.
Can this be disabled? I'm constantly accidentally zooming my text to a tiny size when I ctrl-click and accidentally brush my fingers over the trackpad.
This is disabled by default, so you must have enabled it in the past --
Thanks - I came here to vote for this feature, and it turns out I just had to turn it on! Shouldn't this issue be closed?
:+1: Closing since this is implemented. The feature is disabled by default due to numerous issues reported by users using touchpads where we begin to unexpectedly zoom in/zoom out when e.g. using ballistic scrolling and pressing the ctrl/cmd modifier. The root problem is that we cannot differentiate events coming in from a real mouse with a wheel from those coming in from touchpads / trackpads.


Question: public setDetailsProvider(provider: (index: number) => { details: string, isMarkdown: boolean }): void { this.detailsProvider = provider; <ins> if (this.options) { const currentOptions = this.options; this.options = []; this.setOptions(currentOptions, this.selected, this.disabledOptionIndex); } </ins> } public focus(): void {

New enum/select box detailed descriptions should be read by reader. Add describedby attribute handling for details provider within selectbox.
Either describedby or just
Yep, I've thought about live/alert also. By my research this does not really match the expected taxonomy for the accessibility tree, an extended description is pretty much exactly what describedby is for. That said, describedby probably will not be happy changing which will mean I will need the static set of descriptions in the Dom. Not a big deal, just another example of where nothing is straightforward. But, that's why we get paid the big bucks ... well at least you :-o ! What I really want to solve is getting rid of the multiple 'clickable' readings. I think I may have a way to avoid that which will be very important for these descriptions given the number of links.
Good point, I have no idea if pointing all of the selectbox items at the same details box will work, or if there's something we can do to order events to make it work better. Or maybe changing the 'id' of the details element for each item. I'm very curious what's causing that! Very weird.
describedby can have a list of IDs associated with it. like labeled by and most other ARIA aspects it does not like things changing underneath it, that of course is what aria-live is for but, but everything I read says use this judiciously. I think having a separate set of descriptions (modified for reader output/minimal clickable) will not be a big deal. Just as the options are static, so are the descriptions so hiding them in the select for use will not be an issue. I haven't done the definitive experiment yet but, I believe the multiple clickable issue has to do with something like this: I think the reader can find these as all clickable elements when they are descendents of a managed accessibility tree. my research has yet to determine if this is considered a bug or as designed


Question: constructor( public readonly label: string, public readonly command: string, <ins> public readonly description?: string, </ins> public readonly when?: ContextKeyExpression, ) { } }

! should align more with <img width="672" alt="image" src="https://user-"


Question: const activeTextEditor = window.activeTextEditor; // Must extract these now because opening a new document will change the activeTextEditor reference <del> const previousVisibleRange = activeTextEditor?.visibleRanges[0]; </del> <ins> const previousVisibleRanges = activeTextEditor?.visibleRanges; </ins> const previousURI = activeTextEditor?.document.uri; const previousSelection = activeTextEditor?.selection;

When using the new diff editor with enabled, I very rarely get to the right editor position whenever I click the top action, above the editor.
You mean go to reference is broken?
diff editors have an action to open the original file (I think contributed from SCM?). When clicking that, expectation is that the current view state of the diff editors right hand side applies to the opening editor so that you stay in exactly the same view state (for example: the selection and viewport). <img width="140" alt="image" src=""
I really like the collapsed diff editor but this is a very frustrating regression from it which makes me want to shut it off. The issue is 100% reproducible in my usual workflow and I encounter this issue many times per hour.
I can reproduce. The "Open File" command is a mystery to me. Debugging shows me that is called twice, but both times with unhelpful stack traces: ! ! The second invocation sets . However, there is no reveal mechanism.
Further investigation showed that the "Open File" action is actually implemented in the git extension (even when comparing two files on disk) :/ Which I think is very questionable design, as it should be a core diff editor feature.


Question: <ins> 3af1be2861b5de836b35e7a2e5eeaffa2b4517c3024ebd8658033be5aa98c3ce *electron-v22.3.11-darwin-arm64-symbols.zip 5441f785aefc23d53466872b8f1836a172b20f0a0ddf019dfe6cfc498e9e8e19 *electron-v22.3.11-darwin-arm64.zip 473ba98236a945113f3ea5e3b7d3c3d1bc108bb8c99c5d35917c4ee01c0bb4be *electron-v22.3.11-darwin-x64-symbols.zip 8bd965b00c19de5e880feeff92e01cb0570c436ff6a97e271123e340fee157c3 *electron-v22.3.11-darwin-x64.zip 689281dc20066f98673261b77337d018237f8b0d11f6e3b14dedec24d90f2df4 *electron-v22.3.11-linux-arm64-symbols.zip d9ade7f28e10c3ca0ddc5ada982574a3d84f30fb9f92a82608666608b801ca8a *electron-v22.3.11-linux-arm64.zip 926a0adfb9bf1d2ed3cd26b0bcc8efe66eb793ddc309dff8e6f230abf12ca6e5 *electron-v22.3.11-linux-armv7l-symbols.zip 857eadea9ba34dacf7822d4bb58fd62fd585cc5c5a5b81c0ac32e55108038382 *electron-v22.3.11-linux-armv7l.zip 529057b7fe9be5958bd56b2d18b32d85cb9337ccb76878c67afb799b0f166130 *electron-v22.3.11-linux-x64-symbols.zip 6b5d2a18eab1d14b9f60180c246fb07cd09b298e4e8da1bf517b83ca6c0d0242 *electron-v22.3.11-linux-x64.zip 472a3a15ee7e94ba4cc47052ec4be90fa1072955367bdf135591f12e623af167 *electron-v22.3.11-win32-arm64-pdb.zip 104a685a78556c61c3f7c6fe33f84a3091199150e44e701e513a5d49afef0c55 *electron-v22.3.11-win32-arm64-symbols.zip 3debd92e3be6b74c6b8f25ec7963e8ab94fb877c50c06026aea4bac308311604 *electron-v22.3.11-win32-arm64.zip 38617bd350dd5f757be2cd43afb2238ac42d97714f96a1f27839d04447a31d82 *electron-v22.3.11-win32-ia32-pdb.zip 12b8a47ddae57eb55dcf8aa1fdf39b9575fcb150de1c9bb2444d8702a7d3efec *electron-v22.3.11-win32-ia32-symbols.zip 463062b6bdc09c11ab083c667aae2d6b677f945449ff7bf482059c6086a28e7b *electron-v22.3.11-win32-ia32.zip 3f5bf196a4de1c2b8efedc5f0ef690a41645b33a36e62c307164cb66e20cfaa7 *electron-v22.3.11-win32-x64-pdb.zip b4edb586a021013333badb6e1974e42e0b673f5f49bc7909a338b3e9ad46f7ef *electron-v22.3.11-win32-x64-symbols.zip 7944be5db19c2fa16aa887ec0ca287e84dfe8676d8223165b811ffec1dd57b3d *electron-v22.3.11-win32-x64.zip f2e3db6dc9c7b6e779a034bc4ede297213a05f1a80e0d5fc7fa02e6f8438ecd2 *ffmpeg-v22.3.11-darwin-arm64.zip 5b1732b2f67aa98cb5a0ad9b5caf085c11449bc9710971a2344c10f471cc986f *ffmpeg-v22.3.11-darwin-x64.zip 8233e865973bed62bb1d16011a29eb1e39851725509523bb3c54281b9ecad7e0 *ffmpeg-v22.3.11-linux-arm64.zip 18464ab29adc06c72602b30b4c101ed27edadccee9476f3bd54411e791b415ee *ffmpeg-v22.3.11-linux-armv7l.zip 4467c2e6c5b45cf11d8c2e06bfed76982c95fc50701cf13350b19d100080addd *ffmpeg-v22.3.11-linux-x64.zip 8abc4dddf1e105a3375f56a8dd804101c014919a87dcd231cdb3b19ad6c30f7a *ffmpeg-v22.3.11-win32-arm64.zip 295d3d628460c4b25f751ebc3763bf7ec72a57a337f89ed1ef6f666e3dcfecf5 *ffmpeg-v22.3.11-win32-ia32.zip 17c5e7ec2248521d7064cfa91e9d894981e53a6391e65b83e35ff4f30001b2c5 *ffmpeg-v22.3.11-win32-x64.zip </ins>

Today when running out of sources and/or building, we get some components from online resources such as GitHub or our Marketplace. We should add SHA256 checksum verification to these: [x] [x] built-in extensions [x] electron
Adding the foundation for this for and extensions in


Question: <del> 2024-07-04T16:31:11.121Z </del> <ins> 2024-08-06T11:06:57.600Z </ins>

It appears that this is possible now, and we should consider adopting this in VS Code ()
There is community interest:
Please add this!
Steps for verification: Connect to Windows arm64 using the latest pre-release of SSH extension () Verify that connection is successful Use or similar tool to confirm that executable is of architecture.


Question: "icon": "images/icon.png", "activationEvents": [ "onProfile", <del> "onProfile:github" </del> <ins> "onProfile:github", "onLanguage:json", "onLanguage:jsonc" </ins> ], "enabledApiProposals": [ "profileContentHandlers"

Type: <bBug</bExpected: ! Actual: ! Steps to Reproduce: a file. one configuration for any language. in ${} block and intellisense doesn't provide proper hints. More Info: bug is likely related to and . bug can be reproduced in 1.79.0-insider. VS Code version: Code 1.78.2 (, 2023-05-10T14:39:26.248Z) OS version: Windows_NT x64 10.0. Modes: Sandboxed: No <!-- generated by issue reporter --
Going way back to , this change seems right since the configuration-editing extension has contributions for these languages but the extension doesn't actually activate unless I add explicit activation events. I can't figure out why the auto activation event isn't kicking in?
Oh, sorry--we revised the event to only do auto activation if the extension also contributed a language definition for that language, since otherwise this led to extensions like Python being activated too eagerly. For debug we should restore the explicit activation events too.
I see, thanks


Question: @IInstantiationService private readonly _instantiationService: IInstantiationService, @ILabelService labelService: ILabelService, @IFileService fileService: IFileService, <del> @IFilesConfigurationService filesConfigurationService: IFilesConfigurationService </del> <ins> @IFilesConfigurationService filesConfigurationService: IFilesConfigurationService, @IExtensionService extensionService: IExtensionService, @IEditorService editorService: IEditorService </ins> ) { super(resource, undefined, labelService, fileService, filesConfigurationService); this._defaultDirtyState = !!options.startDirty;

Testing a new notebook and make an edit profiles to restart the EH the file when prompted and provide a file name: The untitled-n.ipynb tab remains open, rather than opening , :bug: The file is no longer marked dirty, even with futher edits and can be closed without prompting to save
can you maybe check from the notebook side?
Luna paint behaves similarly with one extra step: a new image and make an edit profiles to restart the EH the file when prompted and provide a file name: The untitled-n.ipynb tab remains open, rather than opening , (different) and the switch profile operation is blocked switch profiles again The file is no longer marked dirty, even with futher edits and can be closed without prompting to save
Somehow today I cannot reproduce an issue with insiders: ! Please give me more detailed steps and see if you still find this.
still seeing it. Did you try making edits after switching? that's when the dirty indicator doesn't show up anymore. ! I saved as a different filename in the gif, but keeping the untitled filename still doesn't show a dirty indicator, nor does it auto-save.
This seems to me like something notebooks need to handle better: if you enter an extension host that does not have the notebook extension and you make edits, the editor should probably not allow that. I.e. the editor should maybe turn readonly once the extension is disabled or not present.
- the notebook extension is built-in so it's still available in an empty profile. The repro steps can even start with an empty profile -and make an edit to the first cell profile to default and save as 1.ipynb when prompted an edit in the notebook :bug: file is not dirty
oh nice, sounds like an issue related to EH restart then, will update the title With your working copy knowledge you might be even able to figure this out ;)
It looks like the issue in the notebook scenario is that it's calling save directly on the workingCopy in the : In the untitled case, that will delegate to saveAs, which will dispose the untitled workingcopy without opening a new editor with the resulting . The editor is left open with its underlying WorkingCopy disposed. For non-built-in custom editors though, it seems like we should just close them if we don't know if they will be supported in the new profile.


Question: @IInstantiationService private readonly _instantiationService: IInstantiationService, @ILabelService labelService: ILabelService, @IFileService fileService: IFileService, <del> @IFilesConfigurationService filesConfigurationService: IFilesConfigurationService </del> <ins> @IFilesConfigurationService filesConfigurationService: IFilesConfigurationService, @IExtensionService extensionService: IExtensionService, @IEditorService editorService: IEditorService </ins> ) { super(resource, undefined, labelService, fileService, filesConfigurationService); this._defaultDirtyState = !!options.startDirty;

I don't see how we can expect a custom editor to support a scenario where its source extension isn't installed - is that even possible? I went over the issue with and concluded that we can defer to next release since the previous stable version also didn't handle this scenario well.
fyi I just created which is a similar issue for custom editors. Here for notebooks I suggest the following: if the EH restarts and still has the notebook extension for the opened notebooks, reconnect to the EH and allow to further make edits on the editor (I actually thought this was already implemented based on the work did) if the EH restarts and there is no more extension for the notebook editor, turn the notebook readonly and inform the user somehow Does that make sense?
The previous change just doesn't account for untitled notebooks, but I think I can fix that. That makes sense, although I'm surprised that we would require all custom editors to handle this (asked about it in the other issue)


Question: newDocument.body.appendChild(defaultScripts); styleBody(newDocument.body); <ins> const frame = getTarget(); frame.setAttribute('id', '_oldTarget') </ins> // keep current scrollTop around and use later <del> const scrollTop = getTarget().contentDocument.body.scrollTop; </del> <ins> const scrollTop = frame.contentDocument.body.scrollTop; const newFrame = document.createElement('iframe'); newFrame.setAttribute('id', '_target'); newFrame.setAttribute('frameborder', '0'); newFrame.style.cssText = "margin: 0; overflow: hidden; position: absolute; width: 100%; height: 100%; display: none"; document.body.appendChild(newFrame); </ins> // write new content onto iframe <del> getTarget().contentDocument.open('text/html', 'replace'); </del> <ins> newFrame.contentDocument.open('text/html', 'replace'); </ins> // set DOCTYPE for newDocument explicitly as DOMParser.parseFromString strips it off // and DOCTYPE is needed in the iframe to ensure that the user agent stylesheet is correctly overridden <del> getTarget().contentDocument.write('<!DOCTYPE html>'); getTarget().contentDocument.write(newDocument.documentElement.innerHTML); getTarget().contentDocument.close(); </del> <ins> newFrame.contentDocument.write('<!DOCTYPE html>'); newFrame.contentDocument.write(newDocument.documentElement.innerHTML); newFrame.contentDocument.close(); </ins> // workaround for https://github.com/Microsoft/vscode/issues/12865 // check new scrollTop and reset if neccessary <del> setTimeout(function () { if (scrollTop !== getTarget().contentDocument.body.scrollTop) { getTarget().contentDocument.body.scrollTop = scrollTop; </del> <ins> setTimeout(() => { if (scrollTop !== newFrame.contentDocument.body.scrollTop) { newFrame.contentDocument.body.scrollTop = scrollTop; </ins> } <ins> document.body.removeChild(frame); newFrame.style.display = 'block'; </ins> }, 0); ipcRenderer.sendToHost('did-set-content', stats);

I notice that when I edit our 1.9 release notes, the markdown preview seems to jump up and down all the time there is a change. Compared to 1.8 stable, this seemed to not happen.
Better, I still see flickering that it jumps up and down a little bit and the decoration to the left to show me the current edited location is also flickering. let me know if I should open a separate issue on that or if you think that is fixable.
The flicker should now be better than VSCode 1.8, but we can still do better. I've noticed the same sort of slight flicker on images in particular and on the current paragraph indicator as you noted. Please open another, lower priority issue so that we can track further improvements Thanks


Question: } } case 'server': <del> if (arch === 'arm64') { throw new Error(`Unrecognized: ${product} ${os} ${arch} ${type}`); } </del> return `server-win32-${arch}`; case 'web': <del> if (arch === 'arm64') { throw new Error(`Unrecognized: ${product} ${os} ${arch} ${type}`); } </del> return `server-win32-${arch}-web`; case 'cli': return `cli-win32-${arch}`;


Question: }); }); <del> test('Expand abbreviation with no self closing tags for html', () => { </del> <ins> test.skip('Expand abbreviation with no self closing tags for html', () => { </ins> return withRandomFileEditor('img', 'html', async (editor, _doc) => { editor.selection = new Selection(0, 6, 0, 6); await expandEmmetAbbreviation({ language: 'html' });

Build:
Hit this again with
Again:
is trying to get more details when this happens:
Also saw this
This is because of atomic writing and in windows renaming is failing sometimes and I think this is because some other processes (defender ) might be holding the file that has to be renamed. I have seen similar issues in extensions when I implemented atomic installation of extensions long time back, ie. extracting the zip to a temp file in the same folder and renaming it. I have to retry renaming multiple times to avoid this. I am not sure if this is the right solution for FS atomic write. So, I would wait for until then I will revert my atomic write changes.
Check this issue - This is common in windows and it seems the workaround is to retry.
should the skipped tests be restored, I think they are still skipped
Seems like they can probably be restored.


Question: private _hide(): void { this._accessibleBuffer.classList.remove('active'); <del> this._xtermElement.classList.remove('hide'); </del> this._xterm.raw.focus(); }

Type: <bBug</bcc: Since Friday the 3rd, I have not been able to access the terminal accessibility buffer in my linux environment. I activate a terminal and am informed by orca about accessibility in the terminal. But pressing shift+tab does not move the focus to the accessibility buffer. Am I doing something wrong or has something changed from day 3? VS Code version: Code - Insiders 1.77.0-insider (, 2023-03-06T05:21:55.128Z) OS version: Linux x64 6.1.14-200.fc37.x8664 Modes: Sandboxed: Yes <details<summarySystem Info</summary </details<details<summaryExtensions (39)</summaryExtensionVersion ------ doxdocgen1.4.0 vscode-markdownlint0.49.0 vscode-chatgpt3.9.4 rest-client0.25.1 better-cpp-syntax1.17.2 azure-pipelines1.208.0 vscode-docker1.24.0 csharp1.25.4 vscode-dotnet-runtime1.6.0 vscode-kubernetes-tools1.3.11 remote-containers0.283.0 remote-ssh0.99. remote-ssh-edit0.84.0 azure-account0.11.3 cmake-tools1.13.45 cpptools1.14.4 cpptools-extension-pack1.3.0 makefile-tools0.6.0 powershell-preview2023.2.1 remote-explorer0.3. vsliveshare1.0.5832 oracledevtools21.5.0 fabric8-analytics0.3.6 java1.16. vscode-xml0.25. vscode-yaml1.11.0 sonarlint-vscode3.15.1 cmake0.0.17 intellicode-api-usage-examples0.2.7 vscodeintellicode1.2.30 vscode-boot-dev-pack0.2.1 vscode-spring-boot1.44.0 vscode-java-debug0.49. vscode-java-dependency0.21. vscode-java-pack0.25. vscode-java-test0.38. vscode-maven0.40.


Question: private _hide(): void { this._accessibleBuffer.classList.remove('active'); <del> this._xtermElement.classList.remove('hide'); </del> this._xterm.raw.focus(); }

vscode-spring-boot-dashboard0.11.1 vscode-spring-initializr0.11.2 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
You can use this command for now, but I can repro the issue
The other change that has been made here is tab moves focus mode has to be on for that keybinding to work. This prevents issues where the terminal should be handling shift + tab such as for or autocomplete. The clause for this command can be configured in the keybindings editor though if you do not like this behavior.
After using the command Terminal: Focus Accessible Buffer, the behavior was a little strange. focus is on the accessible buffer, the tab key does not move focus to the terminal, but to the status bar. When I'm in the accessible buffer I need to press tab and then shift+tab to access the terminal. seems that the accessible buffer is not always updated when I execute a command in the terminal.
Yes thanks, covered in these issues:


Question: private _hide(): void { this._accessibleBuffer.classList.remove('active'); <del> this._xtermElement.classList.remove('hide'); </del> this._xterm.raw.focus(); }

there's an issue now because tabbing goes to the status bar instead of the terminal. I see that isn't set on the element. even when I set that explicitly, it seems like it's removed Originally posted by in


Question: } } <del> public $executeTask(value: TaskDTO): Promise<TaskExecutionDTO> { </del> <ins> // Passing in a TaskHandleDTO will cause the task to get re-resolved, which is important for tasks are coming from the core, // such as those gotten from a fetchTasks, since they can have missing configuration properties. public $executeTask(value: TaskHandleDTO | TaskDTO): Promise<TaskExecutionDTO> { </ins> return new Promise<TaskExecutionDTO>((resolve, reject) => { <del> const task = TaskDTO.to(value, this._workspaceContextServer, true)!; this._taskService.run(task).then(undefined, reason => { // eat the error, it has already been surfaced to the user and we don't care about it here }); const result: TaskExecutionDTO = { id: task._id, task: TaskDTO.from(task) }; resolve(result); </del> <ins> if (TaskHandleDTO.is(value)) { const workspaceFolder = typeof value.workspaceFolder === 'string' ? value.workspaceFolder : this._workspaceContextServer.getWorkspaceFolder(URI.revive(value.workspaceFolder)); if (workspaceFolder) { this._taskService.getTask(workspaceFolder, value.id, true).then((task: Task | undefined) => { if (!task) { reject(new Error('Task not found')); } else { this._taskService.run(task).then(undefined, reason => { // eat the error, it has already been surfaced to the user and we don't care about it here }); const result: TaskExecutionDTO = { id: value.id, task: TaskDTO.from(task) }; resolve(result); } }, (_error) => { reject(new Error('Task not found')); }); } else { reject(new Error('No workspace folder')); } } else { const task = TaskDTO.to(value, this._workspaceContextServer, true)!; this._taskService.run(task).then(undefined, reason => { // eat the error, it has already been surfaced to the user and we don't care about it here }); const result: TaskExecutionDTO = { id: task._id, task: TaskDTO.from(task) }; resolve(result); } </ins> }); } public $customExecutionComplete(id: string, result?: number): Promise<void> { return new Promise<void>((resolve, reject) => { this._taskService.getActiveTasks().then((tasks) => {

Apologies, this is a bit hard to replicate, so I'll do my best. Open a python jupyter notebook and do some work. Cut some code in the middle of a line in a cell. Go to a different cell and paste. The pasted code will be duplicated. I was able to replicate after restarting VS Code multiple times. Downgrading to 1.46 fixed the issue for me.
/duplicate of


Question: } } <del> public $executeTask(value: TaskDTO): Promise<TaskExecutionDTO> { </del> <ins> // Passing in a TaskHandleDTO will cause the task to get re-resolved, which is important for tasks are coming from the core, // such as those gotten from a fetchTasks, since they can have missing configuration properties. public $executeTask(value: TaskHandleDTO | TaskDTO): Promise<TaskExecutionDTO> { </ins> return new Promise<TaskExecutionDTO>((resolve, reject) => { <del> const task = TaskDTO.to(value, this._workspaceContextServer, true)!; this._taskService.run(task).then(undefined, reason => { // eat the error, it has already been surfaced to the user and we don't care about it here }); const result: TaskExecutionDTO = { id: task._id, task: TaskDTO.from(task) }; resolve(result); </del> <ins> if (TaskHandleDTO.is(value)) { const workspaceFolder = typeof value.workspaceFolder === 'string' ? value.workspaceFolder : this._workspaceContextServer.getWorkspaceFolder(URI.revive(value.workspaceFolder)); if (workspaceFolder) { this._taskService.getTask(workspaceFolder, value.id, true).then((task: Task | undefined) => { if (!task) { reject(new Error('Task not found')); } else { this._taskService.run(task).then(undefined, reason => { // eat the error, it has already been surfaced to the user and we don't care about it here }); const result: TaskExecutionDTO = { id: value.id, task: TaskDTO.from(task) }; resolve(result); } }, (_error) => { reject(new Error('Task not found')); }); } else { reject(new Error('No workspace folder')); } } else { const task = TaskDTO.to(value, this._workspaceContextServer, true)!; this._taskService.run(task).then(undefined, reason => { // eat the error, it has already been surfaced to the user and we don't care about it here }); const result: TaskExecutionDTO = { id: task._id, task: TaskDTO.from(task) }; resolve(result); } </ins> }); } public $customExecutionComplete(id: string, result?: number): Promise<void> { return new Promise<void>((resolve, reject) => { this._taskService.getActiveTasks().then((tasks) => {

Issue Type: <bBug</bThis seems to be a regression on VS Code Insiders. It does not repro on stable. If I call , it will only execute that specific task, not the task it dependsOn as well. Here's an example Example code to execute the task: VS Code version: Code - Insiders 1.47.0-insider (, 2020-07-07T07:46:45.605Z) OS version: Darwin x64 19.5.0 <details<summarySystem Info</summary </details<details<summaryExtensions (17)</summaryExtensionVersion ------ vscode-pull-request-github0.17.0 vscode-azureappservice0.17.1-alpha vscode-azureresourcegroups0.2.0 vscode-azurestorage0.9.0 vscode-cosmosdb0.13.0 csharp1.22.1 python2020.6. remote-containers0.127.0 remote-ssh0.51.0 remote-ssh-edit0.51.0 azure-account0.8.11 powershell2020.6.0 vscode-typescript-tslint-plugin1.2.3 java0.64.0 vscode-didact0.1.15 sort-lines1.9.0 vscode-java-debug0.26.0 </details<!-- generated by issue reporter --
Caused by Because the task execution is first gotten, then passed to the extension host, the depends on is lost when passing to the extension host.
Works for me on the latest insiders, thanks!
Thank you for verifying!


Question: default: defaults.sticky, description: nls.localize('hover.sticky', "Controls whether the hover should remain visible when mouse is moved over it.") }, <ins> 'editor.hover.hidingDelay': { type: 'integer', minimum: 0, default: defaults.hidingDelay, description: nls.localize('hover.hidingDelay', "Controls the delay in milliseconds after thich the hover is hidden. Requires `editor.hover.sticky` to be enabled.") }, </ins> 'editor.hover.above': { type: 'boolean', default: defaults.above,

Currently the hover disappear as soon as the mouse leaves the content hover. Sometimes the user leaves briefly the content hover. The ask is to wait until some times (ex. 500 ms) has passed before measuring whether the mouse is within the hover or not, then make the hover disappear or not.
This would be quite helpful in resizing the hover (because it's easy to go out of the hover when aiming for the angle to hover with a mouse). But I would think 500 ms is too much for that use case


Question: this._disposeQuickFix(this._lastQuickFixId, false); } <del> // Wait for the next command to start to ensure the quick fix marker is created on the next // prompt line const commandDetection = this._capabilities.get(TerminalCapability.CommandDetection); if (commandDetection) { await Event.toPromise(commandDetection.onCommandStarted); } </del> const resolver = async (selector: ITerminalQuickFixOptions, lines?: string[]) => { if (lines === undefined) { return undefined;

Testing Works on macOS but not on Windows 11 !
Works for me on Windows 11. at the lack of command start decoration on the following line in the screenshot where this doesn't work. !
Logs from
is happening after the next in the above, which is pretty weird. We try to detect quick fixes , so it's not surprising this is failing. any thoughts?
I likely caused this when making command markers more reliable on Windows
Seems this is broken for the non-polling case, which is why I am not seeing it (with starship).


Question: } } <del> async pull(rebase?: boolean): Promise<void> { await this.run(Operation.Pull, () => this.repository.pull(rebase)); </del> <ins> async pull(rebase?: boolean, remote?: string, branch?: string): Promise<void> { await this.run(Operation.Pull, () => this.repository.pull(rebase, remote, branch)); </ins> } async push(remote?: string, name?: string, options?: PushOptions): Promise<void> {

We have the ability to select which branch to push to in the source control, could we please have a pull from option? To target specific branches. Unless it exists already? I have only recently started using VS Code and i love it!
This is an easy contribution, care to submit a PR? PS: You currently have the ability to select which remote to push to, not which branch.
I'll take on this. Is it correct that branch names are not stored anywhere? I've checked in and cannot find anywhere they could be stored. If there is nothing, I'll just take a user input using showInputBox.
I created a pull request for this: Please take a look when you have the chance.
merge conflict is fixed.
Merging with


Question: getConfiguration(section?: string, scope?: vscode.ConfigurationScope | null, extensionDescription?: IExtensionDescription): vscode.WorkspaceConfiguration { const overrides = scopeToOverrides(scope) || {}; <del> if (overrides.overrideIdentifier && extensionDescription) { checkProposedApiEnabled(extensionDescription); } </del> const config = this._toReadonlyValue(section ? lookUp(this._configuration.getValue(undefined, overrides, this._extHostWorkspace.workspace), section) : this._configuration.getValue(undefined, overrides, this._extHostWorkspace.workspace));

From Language specific settings are behind proposed API flag
English
— when a fixed stable build can be expected?
Planning to release today.


Question: end set -e VSCODE_PATH_PREFIX <del> # Apply EnvironmentVariableCollections if needed if test -n "$VSCODE_ENV_REPLACE" set ITEMS (string split : $VSCODE_ENV_REPLACE) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" (echo -e "$split[2]") </del> <ins> set -g __vsc_applied_env_vars 0 function __vsc_apply_env_vars if test $__vsc_applied_env_vars -eq 1; return </ins> end <del> set -e VSCODE_ENV_REPLACE end if test -n "$VSCODE_ENV_PREPEND" set ITEMS (string split : $VSCODE_ENV_PREPEND) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" (echo -e "$split[2]")"$$split[1]" # avoid -p as it adds a space </del> <ins> set -l __vsc_applied_env_vars 1 # Apply EnvironmentVariableCollections if needed if test -n "$VSCODE_ENV_REPLACE" set ITEMS (string split : $VSCODE_ENV_REPLACE) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" (echo -e "$split[2]") end set -e VSCODE_ENV_REPLACE </ins> end <del> set -e VSCODE_ENV_PREPEND end if test -n "$VSCODE_ENV_APPEND" set ITEMS (string split : $VSCODE_ENV_APPEND) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" "$$split[1]"(echo -e "$split[2]") # avoid -a as it adds a space </del> <ins> if test -n "$VSCODE_ENV_PREPEND" set ITEMS (string split : $VSCODE_ENV_PREPEND) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" (echo -e "$split[2]")"$$split[1]" # avoid -p as it adds a space end set -e VSCODE_ENV_PREPEND end if test -n "$VSCODE_ENV_APPEND" set ITEMS (string split : $VSCODE_ENV_APPEND) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" "$$split[1]"(echo -e "$split[2]") # avoid -a as it adds a space end set -e VSCODE_ENV_APPEND </ins> end <del> set -e VSCODE_ENV_APPEND </del> end # Handle the shell integration nonce

Testing ! !
This is because of the same problem that caused
appears to be closed now, does that mean this has been fixed?
No, this issue is about fish acting atypical in that it applies the environment before is applied. This is because of how the automatic injection works in fish via an environment variable. Still not sure how we can handle this.
Discussed offline, maybe we could use the first pre exec hook in fish to run shell integration, instead of .
Nice !


Question: this._widget.showAt(fragment, new ContentHoverVisibleData( colorPicker, <del> forceShowAtRange ? forceShowAtRange.getStartPosition() : new Position(anchor.range.startLineNumber, renderColumn), forceShowAtRange ? forceShowAtRange : highlightRange, </del> <ins> showAtPosition, showAtRange, </ins> this._editor.getOption(EditorOption.hover).above, this._computer.shouldFocus, disposables

! I see this sometimes, but it often gets fixed if I try again, or close and reopen the editor, etc. Right now it keeps happening and it's just impossible to click the hover. I don't know how this API works but I assume this is on vscode's side. Happy to set breakpoints and debug
I couldn't reproduce this so I'm not sure what's the root problem. However, I'm saving here a patch which simulates a hover very similar to the one in the gif: <img width="1141" alt="image" src="https://user-"diffn- editor.focusNotebookCell(newCell, newFocusMode, { focusEditorLine: 1 });n+ await editor.focusNotebookCell(newCell, newFocusMode, { focusEditorLine: 1 });n
I tried for quite a while but couldn't repro. I think there might be some settings that cause the issue reproduce. Does this reproduce when you comment out all your user settings?
Yeah, it reproes with all settings commented out
Thanks to via we could find a repro. Reproduces consistently when hovering at the end of the line: It turns out it has to do with the range the hover provider returns. If the hover provider returns a range that spans one line above the hover request, the hover will render one line above. If the hover provider returns a range that spans two lines above the hover request, the hover will render two lines above, etc. Here's a simplified patch: https://user-
To verify, use gitlens and hover over the end of the line at
Works great but raises the question, why does gitlens return a hover with a multiline range? And I get a highlight in this region, but it blinks and disappears on line 919, and on other lines, no highlight. !
PR to improve the highlight range at
I'm still seeing the original issue at


Question: import * as editorCommon from 'vs/editor/common/editorCommon'; import {EditorLayoutProvider} from 'vs/editor/common/viewLayout/editorLayoutProvider'; import {ScrollbarVisibility} from 'vs/base/browser/ui/scrollbar/scrollableElementOptions'; <ins> import * as browser from 'vs/base/browser/browser'; </ins> /** * Experimental screen reader support toggle

VSCode Version: 1.1.1 OS Version: Windows 7 x64 It would be great if holding the key + spinning the mouse wheel would increase / decrease the VS Code zoom value.
I am not sure we want to zoom the entire UI when you use the mousewhell, I would expect only the editor font to increase. Thereby moving to
yes you are correct.
Didn't this feature used to work, or am I just failing to remember correctly? I was just going to report this as a bug, but maybe it never actually worked. I jump between different computer setups fairly regularly, so maybe I am just not remembering. Anyway, I found this dupe, and didn't want to submit a new issue. Thanks for your efforts By the way, I think I would expect this feature to work the same way that and work. VSCode's UI deviates from many other UIs in that it scales well, so I think I'd expect this to scale the entire UI consistently with the keyboard commands.
If this zooms only the editor, shouldn't it be seperate from ?
I would expect and to zoom only the editor. That behaviour would be consistent with most (all?) other editors and apps. Scaling the entire interface is an accessibility feature IMO, so maybe it doesn't need to use such a commonly used shortcut by default? Beyond Ctrl+Wheel, pinch to zoom should also zoom the editor.
Can this be disabled? I'm constantly accidentally zooming my text to a tiny size when I ctrl-click and accidentally brush my fingers over the trackpad.
This is disabled by default, so you must have enabled it in the past --
Thanks - I came here to vote for this feature, and it turns out I just had to turn it on! Shouldn't this issue be closed?
:+1: Closing since this is implemented. The feature is disabled by default due to numerous issues reported by users using touchpads where we begin to unexpectedly zoom in/zoom out when e.g. using ballistic scrolling and pressing the ctrl/cmd modifier. The root problem is that we cannot differentiate events coming in from a real mouse with a wheel from those coming in from touchpads / trackpads.


Question: switch (item.kind) { case PConst.Kind.function: { const showOnAllFunctions = vscode.workspace.getConfiguration(this.language.id).get<boolean>('referencesCodeLens.showOnAllFunctions'); <del> if (showOnAllFunctions) { </del> <ins> if (showOnAllFunctions && item.nameSpan) { </ins> return getSymbolRange(document, item); } }

<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Describe the feature you'd like. --For Anonymous functions code lens is displayed although it has only one reference. This is a lot of noise for nothing. In my opinion these lenses can be removed completely.
This issue lacks name of the language/extensions that you are using/showing
You are right. My bad. I fixed it. Sorry.
Requires: -
I in those required settings and am seeing the screenshot below. Seems to now only say 0 references instead of one but the code lens still exists !
I think the screenshot shows the expected (fixed) behavior. Previously the references codelens was on the line with . There are zero references because there are no uses of that class or method
yep - this is exactly what I wanted.


Question: * Controls whether to show the "Terminal will be reused by tasks, press any key to close it" message. */ showReuseMessage?: boolean; <ins> /** * Controls whether the terminal is cleared before executing the task. */ clear?: boolean; </ins> } /**

This clear option can be into the exiting task property and would be called : { "label": "ExampleTask", "type": "shell", "command": "echo hello", "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared", "showReuseMessage": true, "clear": false } } Added to : / Controls how the task is presented in the UI. / export interface TaskPresentationOptions { …. / Controls whether the terminal is cleared before executing the task. / clear?: boolean; }
This doesn't work for me: I run it multiple times and see all the output, the terminal is never cleared.
Turns out that if the only presentation option set is clear, this doesn't work. Thanks for finding!


Question: "emmetPreferencesCssOProperties": "Comma separated CSS properties that get the 'o' vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the 'o' prefix.", "emmetPreferencesCssMsProperties": "Comma separated CSS properties that get the 'ms' vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the 'ms' prefix.", "emmetPreferencesCssFuzzySearchMinScore": "The minimum score (from 0 to 1) that fuzzy-matched abbreviation should achieve. Lower values may produce many false-positive matches, higher values may reduce possible matches.", <del> "emmetOptimizeStylesheetParsing": "When set to `false`, the whole file is parsed to determine if current position is valid for expanding Emmet abbreviations. When set to `true`, only the content around the current position in css/scss/less files is parsed." </del> <ins> "emmetOptimizeStylesheetParsing": "When set to `false`, the whole file is parsed to determine if current position is valid for expanding Emmet abbreviations. When set to `true`, only the content around the current position in css/scss/less files is parsed.", "emmetPreferencesOutputReverseAttributes": "If `true`, reverses attribute merging directions when resolving snippets." </ins> }

<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Describe the feature you'd like. --Hello! Could you please allow for the output.ReverseAttributes to be defined as a user preference setting? This was implemented to and was implemented in the current emmet repo Why is this important? With Bootstrap, all of the generated code samples implement class attributes at the beginning of a tag. For example, a generated (As a note, this is how I've generally seen and used bootstrap classes implemented inside a tag), might have a section that looks like this: to add a new anchor with the same syntax, I would want to use the follow emmet syntax: However, the preview generated, and the implementation do not give me the style that I prefer: ! Now, I could implement a snippet for this specific anchor override, but now if I want to use this style across the codebase with all of my tags that utilize bootstrap, I now have to create a file that grows exponentially to cover every use-case. Since solves this behavior, I figured I could do add this override in my code workspace settings, such as But this did not work. also does not have a supported object for preferences based on . I think this might also open a bigger question of "How can VSCode support any arbitrary snippet preference? (There are many from where this specific attribute was implemented) There doesn't seem to be a method to implement this behavior via the regular so if I want this behavior today, it seems I would need to fork emmet and vscode, and implement my own custom implementation to enable this feature toggle.
thanks for the write-up. I wasn't aware of when output.reverseAttributes would come in handy. What I do know though, is that VS Code is currently using an older version of Emmet. Once it moves on to the newer version (the one you see at emmetio/emmet), it should be much simpler to get that preference implemented. I'll keep this issue open in the meantime.
Sounds great! Thanks for the quick response, looking forward to the newer version of Emmet being implemented!
Created a PR fixing this


Question: } registerAction2(AssignSelectedAgentAction); <ins> class ReferenceArgument { constructor( readonly widget: IChatWidget, readonly variable: IDynamicVariable ) { } } </ins> class BuiltinDynamicCompletions extends Disposable { <ins> private static readonly addReferenceCommand = '_addReferenceCmd'; </ins> private static readonly VariableNameDef = new RegExp(`${chatVariableLeader}w*`, 'g'); // MUST be using `g`-flag <ins> private readonly queryBuilder: QueryBuilder; </ins> constructor( <ins> @IHistoryService private readonly historyService: IHistoryService, @IWorkspaceContextService private readonly workspaceContextService: IWorkspaceContextService, @ISearchService private readonly searchService: ISearchService, @ILabelService private readonly labelService: ILabelService, </ins> @ILanguageFeaturesService private readonly languageFeaturesService: ILanguageFeaturesService, @IChatWidgetService private readonly chatWidgetService: IChatWidgetService, <ins> @IInstantiationService private readonly instantiationService: IInstantiationService, </ins> ) { super(); this._register(this.languageFeaturesService.completionProvider.register({ scheme: ChatInputPart.INPUT_SCHEME, hasAccessToAllModels: true }, { _debugDisplayName: 'chatDynamicCompletions', triggerCharacters: [chatVariableLeader], <del> provideCompletionItems: async (model: ITextModel, position: Position, _context: CompletionContext, _token: CancellationToken) => { </del> <ins> provideCompletionItems: async (model: ITextModel, position: Position, _context: CompletionContext, token: CancellationToken) => { </ins> const widget = this.chatWidgetService.getWidgetByInputUri(model.uri); if (!widget || !widget.supportsFileReferences) { return null;

Today which have which triggers quick pick to select a file. This issue is about also allowing to type a file name and have dynamic suggestions, like inserts


Question: }, 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

<!-- 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


Question: this._onDidChangeZoomLevel.fire(this._zoomLevel); } <ins> public getEditorZoomLevel(): number { return this._editorZoomLevel; } public setEditorZoomLevel(zoomLevel:number): void { if (this._editorZoomLevel === zoomLevel) { return; } this._editorZoomLevel = zoomLevel; this._onDidChangeZoomLevel.fire(this._editorZoomLevel); } </ins> public getPixelRatio(): number { if (!this._pixelRatioComputed) { this._pixelRatioCache = this._computePixelRatio();


Question: foldingRangeLimit = getClientCapability('textDocument.foldingRange.rangeLimit', Number.MAX_VALUE); formatterMaxNumberOfEdits = initializationOptions?.customCapabilities?.rangeFormatting?.editLimit || Number.MAX_VALUE; <del> const pullDiagnosticSupport = getClientCapability('textDocument.diagnostic', undefined); if (pullDiagnosticSupport === undefined) { </del> <ins> const supportsDiagnosticPull = getClientCapability('textDocument.diagnostic', undefined); if (supportsDiagnosticPull === undefined) { </ins> diagnosticsSupport = registerDiagnosticsPushSupport(documents, connection, runtime, validateTextDocument); } else { diagnosticsSupport = registerDiagnosticsPullSupport(documents, connection, runtime, validateTextDocument);

LSP now support pull diagnostics. Adopt for [x] CSS [x] JSON [x] HTML


Question: .monaco-workbench .part.editor > .content .editor-group-container > .title .tabs-container > .tab.sizing-fit .monaco-icon-label, .monaco-workbench .part.editor > .content .editor-group-container > .title .tabs-container > .tab.sizing-fit .monaco-icon-label > .monaco-icon-label-container { <del> overflow: visible; /* fixes https://github.com/microsoft/vscode/issues/20182 */ </del> <ins> overflow-x: visible; /* fixes https://github.com/microsoft/vscode/issues/20182 by ensuring the horizontal overflow is visible */ </ins> } .monaco-workbench .part.editor > .content .editor-group-container > .title .tabs-container > .tab.sizing-shrink > .monaco-icon-label > .monaco-icon-label-container,

<!-- 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.84.2 OS Version: win10 Steps to Reproduce: Theme: Dark Modern two cpp files in the workspace, move the tabs upwards and downwards respectively. +N, Open a new Tab, and copy some content into it. Move the tabs upwards and downwards respectively. When I move tabs downwards, the edge color disappears. Another sample This issue can be reproduced in vscode-insider
I'm not able to reproduce this. Can you check if you see an error in the dev console? Run the command and check the console for errors.
You can try with a larger cpp file, simply copy code to many lines. Drag the tab down to change the tab's position
It seems the tab scrolls down, so the color bar is blocked
I was able to reproduce it now. The reason I was not seeing it was because it only appears at specific zoom levels. Looking into it...
Thanks for the help we were able to fix it
This problem seems to still exist in the latest vscode-insider. ("window.zoomLevel" : 0 ) 86.0-insider x64 With untitled tabs, the tab can be scrolled down and up, Besides, It seems that the .json file is an exception


Question: }); test('score (non fuzzy)', function () { <del> const target = 'HeLlo-World'; </del> <ins> const target = 'HelLo-World'; </ins> assert.ok(_doScore(target, 'HelLo-World', false)[0] > 0); assert.strictEqual(_doScore(target, 'HelLo-World', false)[1].length, 'HelLo-World'.length);

I'm not certain if this is a bug (in the tests), but while looking at the completion ranking I noticed there are some tests cases for the fuzzy scoring annotated with "direct case match" that don't appear to match exactly - the order of the lowercase/capital is reversed: It's possible this is deliberate (because VS Code handles some swapped characters), but if so I would've thought an exact match would be included also (to ensure it ranks above the entry with the reverse characters) and the comment would be more explicit. There are other tests in the same file with the same mismatch.


Question: const defaults: EditorHoverOptions = { enabled: true, delay: 300, <ins> hidingDelay: 500, </ins> sticky: true, above: true, };


Question: if (colorPickerWidget === undefined) { return; } <del> this.body.classList.add('standalone-colorpicker-body'); this.body.style.maxHeight = Math.max(this._editor.getLayoutInfo().height / 4, 250) + 'px'; this.body.style.maxWidth = Math.max(this._editor.getLayoutInfo().width * 0.66, 500) + 'px'; this.body.tabIndex = 0; this.body.appendChild(fragment); </del> <ins> this._body.classList.add('standalone-colorpicker-body'); this._body.style.maxHeight = Math.max(this._editor.getLayoutInfo().height / 4, 250) + 'px'; this._body.style.maxWidth = Math.max(this._editor.getLayoutInfo().width * 0.66, 500) + 'px'; this._body.tabIndex = 0; this._body.appendChild(fragment); </ins> colorPickerWidget.layout(); const colorPickerBody = colorPickerWidget.body;

Depending oh how many editors windows are open and the size of them, sometimes the standalone color picker is partially hidden behind other editor panel. vscode version:1.81.0 x64 !


Question: if (colorPickerWidget === undefined) { return; } <del> this.body.classList.add('standalone-colorpicker-body'); this.body.style.maxHeight = Math.max(this._editor.getLayoutInfo().height / 4, 250) + 'px'; this.body.style.maxWidth = Math.max(this._editor.getLayoutInfo().width * 0.66, 500) + 'px'; this.body.tabIndex = 0; this.body.appendChild(fragment); </del> <ins> this._body.classList.add('standalone-colorpicker-body'); this._body.style.maxHeight = Math.max(this._editor.getLayoutInfo().height / 4, 250) + 'px'; this._body.style.maxWidth = Math.max(this._editor.getLayoutInfo().width * 0.66, 500) + 'px'; this._body.tabIndex = 0; this._body.appendChild(fragment); </ins> colorPickerWidget.layout(); const colorPickerBody = colorPickerWidget.body;

There is a z-index error: <img width="572" alt="Screenshot 2023-07-25 at 13 56 59" src=""


Question: IFS=' ' fi builtin read -ra ADDR <<<"$__vsc_original_prompt_command" <del> for ((i = 0; i < ${#ADDR[@]}; i++)); do builtin eval ${ADDR[i]} done </del> if [[ ${__vsc_original_ifs+set} ]]; then IFS="$__vsc_original_ifs" unset __vsc_original_ifs else unset IFS fi <ins> for ((i = 0; i < ${#ADDR[@]}; i++)); do # unset IFS builtin eval ${ADDR[i]} done </ins> __vsc_precmd }


Question: const filteredEdits = allCellEdits.filter(edit => edit !== undefined) as ResourceEdit[]; await this.bulkEditService.apply(filteredEdits, { label: localize('insertFinalNewLine', "Insert Final New Line"), code: 'undoredo.insertFinalNewLine' }); <ins> // set cursor back to initial position after inserting final new line if (activeCellEditor && selections) { activeCellEditor.setSelections(selections); } </ins> } finally { progress.report({ increment: 100 }); disposable.dispose();

Re , I was editing the endgame notebook in VS Code repo but it keeps moving the cursor to the next line, which breaks typing. It's very likely an issue with these two settings combined "files.autoSave": "afterDelay" We seems to have the same issue for files in text editor but untitled file doesn't suffer from this as it can't be auto saved. I wonder if we should have some special treatment for notebook cells, as it's very usual to create new cells, which are always empty at the beginning, typing in the first line is making it almost impossible. Maybe we could keep the cursor position for this scenario.


Question: } this._beginReconnecting(); })); <del> this._register(protocol.onSocketTimeout(() => { </del> <ins> this._register(protocol.onSocketTimeout((e) => { </ins> const logPrefix = commonLogPrefix(this._connectionType, this.reconnectionToken, true); <del> this._options.logService.info(`${logPrefix} received socket timeout event.`); </del> <ins> this._options.logService.info(`${logPrefix} received socket timeout event (unacknowledgedMsgCount: ${e.unacknowledgedMsgCount}, timeSinceOldestUnacknowledgedMsg: ${e.timeSinceOldestUnacknowledgedMsg}, timeSinceLastReceivedSomeData: ${e.timeSinceLastReceivedSomeData}).`); </ins> this._beginReconnecting(); }));

I've had an SSH window open in the background and noticed that it keeps going through reconnection. Looking at the logs, it looks like vscode is often triggering reconnection, even though nothing strange is going on with my network, as far as I know. Noticed this at home and also the office network. This is the log from vscode. The SSH log doesn't show anything unusual before the resolver is invoked again. Has anything changed here lately?
Sorry this issue fell through the cracks. Are you still running into this?
Yes
Do you perhaps have a log with tracing enabled? The reason in the original log appears to be timeout. That is triggered here -- So the conditions are: a message was written to the socket 20 seconds ago and the server side didn't acknowledge it (and) no data was received from the server within the past 20 seconds (and) no previous timeout event was fired within the past 20 seconds (this just avoid sending many timeout events) (and) the renderer process appears responsive (Just speculating) I think we have fixed something in the terminal land and we now no longer send any data in an idle window. Could it be that your window becomes idle and the connection is dropped by SSH? (I believe due to some terminal heartbeat mechanism there was always data being written every 5 seconds, but now that is no longer happening).
Well, now I can't repro it.
I've more logging via . Please keep an eye out. In case you hit this again, the logging will have more data.
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!
Finally got it
It seems like the log message you touch didn't show up there. But, it does show up in an earlier reconnection in this window (before I enabled trace logging). So I'll just share the full logs This shows a window that was mostly idle with 2 reconnections, the second one had logging at the trace level enabled
Here's my interpretation: the management connection timed out at due to our own timeout logic. We wrote one message and that message didn't get acknowledged within 20s by the server. As an observation, the connection didn't receive any bytes from the server within 320s (5 minutes).


Question: } this._beginReconnecting(); })); <del> this._register(protocol.onSocketTimeout(() => { </del> <ins> this._register(protocol.onSocketTimeout((e) => { </ins> const logPrefix = commonLogPrefix(this._connectionType, this.reconnectionToken, true); <del> this._options.logService.info(`${logPrefix} received socket timeout event.`); </del> <ins> this._options.logService.info(`${logPrefix} received socket timeout event (unacknowledgedMsgCount: ${e.unacknowledgedMsgCount}, timeSinceOldestUnacknowledgedMsg: ${e.timeSinceOldestUnacknowledgedMsg}, timeSinceLastReceivedSomeData: ${e.timeSinceLastReceivedSomeData}).`); </ins> this._beginReconnecting(); }));

this resulted in the core invoking on the SSH extension and the SSH extension replied with a new port i.e. instead of the previous . the extension host connection immediately closed at with code , indicating that perhaps the previous tunnel at was killed as part of invoking . Precisely 20 minutes later, at , both management and extension host connections receive a event from Chromium. I can't quite explain the first timeout, why would the server not acknowledge a message within 20 seconds? But the timing of the second disconnection seems to indicate to me that after 20 min of idleness, the underlying connection is closed. Anyone could be closing it: either on the client side by Chromium or the OS, either on the server side by nodejs or the OS, either by the SSH tunnel timing out. For the second disconnection I think we might need to do something to tackle . For a long time the terminal was doing a heartbeat mechanism which resulted in data being sent over the wire (and that would not make the connection idle), but that was fixed via Right now, if you are really idle in a window, the underlying connection will be idle too and I think the OS or someone closes it as idle after 20 minutes.
My best guess is some other weird optimization where network requests don't even get delivered when an app is in the background. I've noticed this in windows that are not focused
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!


Question: } .monaco-workbench .simple-find-part.visible { <ins> visibility: visible; } .monaco-workbench .simple-find-part.visible-transition { </ins> top: 0; }

Microsoft/vscode Repro: PR ext description page something, shift+tab until you hit the start of the screen There are 4 focusable items, close, next match, previous match and the find input.
Would you like me to start on this?
Yes please. It is too late to get a fix in for the January VS Code release but you can submit a PR any time and we'll try to get this fixed for February
LOL ... my Dragon dictation did the equivalent of a butt dial , deleted assignments and pasted an eMoji sorry about that :-P
FYI: started on this and I can reproduce and see it. simpleFind transitions in and out with animation, hidden only because of z-index and/or overflow. The widget always has display type:flex , therefore the four tabs stops for the buttons and input are always in the tabIndex order fix should be simple, however, there is an interaction between the animation and the display mode such that simultaneously going from display:none =flex messes up the animation. I'm working on separating the display mode from the transition to see if that will work. I have to do more experiments , May have a question or two later...
See PR: Verification: Use a screen reader with screen output on so you can see and track each tab stop Open the new pull request extension page Click on the upper pane to begin focus there Tab through the various toolbar buttons , after dependencies the next tab SHOULD land on With the webview not the simpleFind widget. Verify showing and hiding simpleFind has smooth animation as before Note: When focuses on bottom for web view pane , screen readers output a bunch of base64 encoded text (see truncated output lines below). But I think this is an accessibility bug, if you guys agree I'll post an issue. NVDA Output: with visibility fix (correct output, no tab stops within the hidden simpleFind) NVDA Output: original scenario without fix (can see tabs stops in widget)


Question: ] }, "dependencies": { <del> "vscode-languageclient": "^8.0.1", </del> <ins> "vscode-languageclient": "^8.0.2-next.4", </ins> "vscode-nls": "^5.0.0", "vscode-uri": "^3.0.3" },

Version: 1.68.0-insider Commit: Date: 2022-06-02T05:17:01.962Z open the Settings JSON editor add some unnecessary commas no problems reported in the problems view. open the JSON Language Server log. Observe that there are no diagnostic requests. Other requests are sent and completed, so the language server is running.
Maybe unrelated: I was expecting "trailing comma" warnings in (we recently changed the schema to not accept them), but they only started showing after I flushed the schema cache (using the UI command) and reloaded the window (I can't completely rule out that a window reload alone would have helped).
I checked that with the fix the trailing commas are reported


Question: // When at a markdown file, apply existing scroll settings if (textEditor && textEditor.document && isMarkdownFile(textEditor.document)) { <del> const line = this._topmostLineMonitor.getPreviousEditorLineByUri(textEditor.document.uri); </del> <ins> const line = this._topmostLineMonitor.getPreviousStaticEditorLineByUri(textEditor.document.uri); </ins> if (line) { scrollEditorToLine(line, textEditor); }

Issue Type: <bBug</bI have been using for a long time. Currently I end up with a LOT of inadvertant selections when working in two side-by-side editor groups and switching back and forth between them using the mouse. The reason is that the editor scrolls 5 lines every time I click into it. VS Code version: Code - Insiders 1.58.0-insider (, 2021-06-11T05:22:19.992Z) OS version: Darwin arm64 20.5.0 Restricted Mode: No Remote OS version: Linux x64 5.4.0-1046-azure <!-- generated by issue reporter --
I cannot reproduce. Does this reproduce for you when disabling all extensions? (The editor exposes a API to extensions). I have recently also got which seems incredibly similar, but I am having a hard time reproducing any of the jumping that is described. Here I am trying two side-by-side editor groups: https://user-
This reproduces only when the language mode of the files are set to markdown. I think this has to do with how the markdown extension is using the vscode API. But I think it should not use that API at all if no markdown preview is rendered. But it would also be interesting to test what the experience is when the preview is rendered. Given this doesn't reproduce with txt files, I'm optimistically giving this to you. Steps to reproduce: define open two md files side-by-side (preferably without word wrapping to see the top line number change) click on the editor tab of each one on every click, the editor scrolls up by 5 lines https://user-
Could you please take a look at this since you were looking into markdown syncing last iteration?
It seems like it's a bug coming from the scroll syncing between the static and text editor changes that I made a while ago. I'll try to make a PR to fix this soon.


Question: # Sent at the start of the prompt. # Marks the beginning of the prompt (and, implicitly, a new line). function __vsc_fish_prompt_start <ins> # Applying environment variables is deferred to after config.fish has been # evaluated __vsc_apply_env_vars </ins> __vsc_esc A end

Testing ! !
This is because of the same problem that caused
appears to be closed now, does that mean this has been fixed?
No, this issue is about fish acting atypical in that it applies the environment before is applied. This is because of how the automatic injection works in fish via an environment variable. Still not sure how we can handle this.
Discussed offline, maybe we could use the first pre exec hook in fish to run shell integration, instead of .
Nice !


Question: return result[0].resource; }); } else if (fileExists && (tasksExistInFile || content)) { <del> if (content) { this._configurationService.updateValue('tasks', json.parse(content), target); </del> <ins> const statResource = stat?.resource; if (content && statResource) { this._configurationService.updateValue('tasks', json.parse(content), { resource: statResource }, target); </ins> } <del> return stat?.resource; </del> <ins> return statResource; </ins> } return undefined; }).then((resource) => {

<!-- 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.88.1 (Latest) + GitHub Codespaces OS Version: All? (Tested on Linux + MacOS) Steps to Reproduce: a folder or workspace (create if necessary): all the content from the above file and save it the command palette 'Tasks: Run Task' '+ Configure a Task' 'Open file' any provided task template notification error: "Unable to write to Folder Settings because no resource is provided." Expected behaviour: Empty is populated with the contents of the selected task template <img width="898" alt="Screenshot 2024-04-18 at 16 50 01" src=""


Question: this._storageListener.dispose(); } <del> $getValue<T>(shared: boolean, key: string): Promise<T | undefined> { </del> <ins> async $getValue<T>(shared: boolean, key: string): Promise<T | undefined> { </ins> if (shared) { this._sharedStorageKeysToWatch.set(key, true); } <del> try { return Promise.resolve(this._getValue<T>(shared, key)); } catch (error) { return Promise.reject(error); } </del> <ins> return this._getValue<T>(shared, key); </ins> } private _getValue<T>(shared: boolean, key: string): T | undefined { const jsonValue = this._storageService.get(key, shared ? StorageScope.GLOBAL : StorageScope.WORKSPACE); <del> if (!jsonValue) { return undefined; </del> <ins> if (jsonValue) { try { return JSON.parse(jsonValue); } catch (error) { // Do not fail this call but log it for diagnostics // https://github.com/microsoft/vscode/issues/132777 this._logService.error(`[mainThreadStorage] unexpected error parsing storage contents (key: ${key}, shared: ${shared}): ${error}`); } </ins> } <del> return JSON.parse(jsonValue); </del> <ins> return undefined; </ins> } <del> $setValue(shared: boolean, key: string, value: object): Promise<void> { let jsonValue: string; try { jsonValue = JSON.stringify(value); // Extension state is synced separately through extensions this._storageService.store(key, jsonValue, shared ? StorageScope.GLOBAL : StorageScope.WORKSPACE, StorageTarget.MACHINE); } catch (err) { return Promise.reject(err); } return Promise.resolve(undefined); </del> <ins> async $setValue(shared: boolean, key: string, value: object): Promise<void> { this._storageService.store(key, JSON.stringify(value), shared ? StorageScope.GLOBAL : StorageScope.WORKSPACE, StorageTarget.MACHINE /* Extension state is synced separately through extensions */); </ins> } $registerExtensionStorageKeysToSync(extension: IExtensionIdWithVersion, keys: string[]): void {

<!-- Please search existing issues to avoid creating duplicates. --- VS Code version: 1.59.1 Extension version (available under the Extensions sidebar): v2021.8. OS and version: Linux x64 5.13.11-1-MANJARO Python version (& distribution if applicable, e.g. Anaconda): 3.9 Type of virtual environment used (N/A ...): virtualenvwrapper Relevant/affected Python-related VS Code extensions and their versions: pylance v2021.8.3, jupyter v2021.8., Visual Studio IntelliCode v1.2.14 Value of the setting: Pylance from the VS Code marketplace to see if that fixes your issue] Extension loads successfuly Extension does not load, console reports "Unexpected token ' in JSON at position " [NOTE: Self-contained, minimal reproducing code samples are extremely helpful and will expedite addressing your issue] the extension by clicking a .py file <!-- Note: If you think a GIF of what is happening would be helpful, consider tools like , or . --<details<summaryOutput for <codePython</codein the <codeOutput</codepanel (<codeView</code→<codeOutput</code, change the drop-down the upper-right of the <codeOutput</codepanel to <codePython</code) </summary<p</p</details
Looks like you might have a bad update. Do the following to remove stale versions of the extension: Python extension (if you have pylance uninstall it first). all instances of VS Code. to, (on windows) or on Linux/Mac. any folder with the name starting with VS Code, and install Python extension (also pylance if you uninstalled it in step 1).
I followed all steps, but nothing changed. should I try to install older version of python ext?
Hi Can you try installing an older version of the Python extension, and if it doesn't work can you try a different version of VS Code (either an old one or the Insiders build)?
I've installed python extension , jupyter and no pylance. here's the log: As you said I'm going to install older version of vscode
Hi Did you try installing an older version of VS Code?
FYI - This looks like some JSON stored via the became corrupt.


Question: this._storageListener.dispose(); } <del> $getValue<T>(shared: boolean, key: string): Promise<T | undefined> { </del> <ins> async $getValue<T>(shared: boolean, key: string): Promise<T | undefined> { </ins> if (shared) { this._sharedStorageKeysToWatch.set(key, true); } <del> try { return Promise.resolve(this._getValue<T>(shared, key)); } catch (error) { return Promise.reject(error); } </del> <ins> return this._getValue<T>(shared, key); </ins> } private _getValue<T>(shared: boolean, key: string): T | undefined { const jsonValue = this._storageService.get(key, shared ? StorageScope.GLOBAL : StorageScope.WORKSPACE); <del> if (!jsonValue) { return undefined; </del> <ins> if (jsonValue) { try { return JSON.parse(jsonValue); } catch (error) { // Do not fail this call but log it for diagnostics // https://github.com/microsoft/vscode/issues/132777 this._logService.error(`[mainThreadStorage] unexpected error parsing storage contents (key: ${key}, shared: ${shared}): ${error}`); } </ins> } <del> return JSON.parse(jsonValue); </del> <ins> return undefined; </ins> } <del> $setValue(shared: boolean, key: string, value: object): Promise<void> { let jsonValue: string; try { jsonValue = JSON.stringify(value); // Extension state is synced separately through extensions this._storageService.store(key, jsonValue, shared ? StorageScope.GLOBAL : StorageScope.WORKSPACE, StorageTarget.MACHINE); } catch (err) { return Promise.reject(err); } return Promise.resolve(undefined); </del> <ins> async $setValue(shared: boolean, key: string, value: object): Promise<void> { this._storageService.store(key, JSON.stringify(value), shared ? StorageScope.GLOBAL : StorageScope.WORKSPACE, StorageTarget.MACHINE /* Extension state is synced separately through extensions */); </ins> } $registerExtensionStorageKeysToSync(extension: IExtensionIdWithVersion, keys: string[]): void {

The JSON is written a few lines lower, so it is unexpected that the value is corrupted. This might indicate some kind of bug in the storage layer. I don't remember writing that code, did you perhaps write that? Do you think it is so important such to fail extension activation when the JSON is corrupt, or should we catch that exception and return ?
I would suggest to be more resilient in extension activation as you suggest and fallback to an empty object here if any error rises from but log it as error: This is the first time I hear about a problem with persisting data into SQLite. However, seeing makes me think that this is not an officially supported Linux distribution.
curious if you could share the following 2 files with me (via e-mail is fine: find it on ). Steps: open the VSCode window where this issue happens View Command Palette =Log Storage Database Contents Help Toggle Dev Tools Find the 2 paths for the DBs send both files to me
I can still see the original issue in vscode-insiders v1.61.0-insider
whats the exact version you are on? And is it the issue that the extension fails to activate?
Version: 1.61.0-insider (user setup) Commit: Date: 2021-09-16T08:31:28.161Z Electron: 13.4.0 Chrome: 91.0.4472.164 14.16.0 V8: 9.1.269.39-electron.0 OS: WindowsNT x64 10.0. python extension: v2021.9. Error 2021-09-16 17:51:12: Error discovering pytest tests: [SyntaxError: Unexpected token S in JSON at position at (<anonymous) at a.runTestDiscovery (PATH.vscode-insidersextensionsms-outclient) at runMicrotasks (<anonymous) at processTicksAndRejections () at async (index 0) at async _.refreshTestData (PATH.vscode-insidersextensionsms-outclient) at async v.refreshTestDataInternal (PATH.vscode-insidersextensionsms-outclient)] { stdout: '[{"rootid": ".", "root": "...
I fixed the issue as reported in that extensions fail to activate when the contents in storage fail to get parsed.


Question: this._storageListener.dispose(); } <del> $getValue<T>(shared: boolean, key: string): Promise<T | undefined> { </del> <ins> async $getValue<T>(shared: boolean, key: string): Promise<T | undefined> { </ins> if (shared) { this._sharedStorageKeysToWatch.set(key, true); } <del> try { return Promise.resolve(this._getValue<T>(shared, key)); } catch (error) { return Promise.reject(error); } </del> <ins> return this._getValue<T>(shared, key); </ins> } private _getValue<T>(shared: boolean, key: string): T | undefined { const jsonValue = this._storageService.get(key, shared ? StorageScope.GLOBAL : StorageScope.WORKSPACE); <del> if (!jsonValue) { return undefined; </del> <ins> if (jsonValue) { try { return JSON.parse(jsonValue); } catch (error) { // Do not fail this call but log it for diagnostics // https://github.com/microsoft/vscode/issues/132777 this._logService.error(`[mainThreadStorage] unexpected error parsing storage contents (key: ${key}, shared: ${shared}): ${error}`); } </ins> } <del> return JSON.parse(jsonValue); </del> <ins> return undefined; </ins> } <del> $setValue(shared: boolean, key: string, value: object): Promise<void> { let jsonValue: string; try { jsonValue = JSON.stringify(value); // Extension state is synced separately through extensions this._storageService.store(key, jsonValue, shared ? StorageScope.GLOBAL : StorageScope.WORKSPACE, StorageTarget.MACHINE); } catch (err) { return Promise.reject(err); } return Promise.resolve(undefined); </del> <ins> async $setValue(shared: boolean, key: string, value: object): Promise<void> { this._storageService.store(key, JSON.stringify(value), shared ? StorageScope.GLOBAL : StorageScope.WORKSPACE, StorageTarget.MACHINE /* Extension state is synced separately through extensions */); </ins> } $registerExtensionStorageKeysToSync(extension: IExtensionIdWithVersion, keys: string[]): void {

What you report here seems different to me. Looks like the python extension is calling on something that is not valid JSON? Have you asked the Python extension what this could be?
I see, I'll create a new issue. thanks


Question: return []; } <del> return response.body .filter(highlight => highlight.file === file) .map(convertDocumentHighlight) .flat(); </del> <ins> return response.body.flatMap(convertDocumentHighlight); </ins> } }

! should be highlighted: ! Version: 1.77.0-insider (user setup) Commit: Date: 2023-03-21T05:22:13.879Z Electron: 19.1.11 Chromium: 102.0.5005.196 16.14.2 V8: 10.2.154.26-electron.0 OS: Windows_NT x64 10.0. Sandboxed: Yes
cc for TS
I cannot reproduce, semantic occurrences seem to work fine for me. can you reproduce running from source? !
I can repro out of sources as well
Looks like a windows specific issue (slash vs backslash): ! ! (in TypeScriptDocumentHighlightProvider.provideDocumentHighlights)
Reverting fixes it.
Hm I don't think this was caused by . Instead I suspect the root cause was