Question: { "name": "code-oss-dev", "version": "1.84.0", <del> "distro": "ace645d011b7e53ba51e8d5ff153c47e3773b3d8", </del> <ins> "distro": "0f218422a902175f8b82cbf0f13fa4feb278f22a", </ins> "author": { "name": "Microsoft Corporation" },

unfortunately this is a fatal error that cannot be handled in the application layer. But we should be able to see the output of from the above logs.
I have done this, see attached.
Same here
Thanks for the logs, in both cases the launching of child process triggers a fatal error from at due to . I would like to understand if this can repro with outside VSCode since we haven't done any modification to the spawn API. I have simplified the Julia language server process spawn call from your logs into the following script, can you run it with node v18.15.0 which can be downloaded from , the steps would be 1) Save the following script to 2) Install v18.15.0 3) From terminal, run and attach the generated output
Apparrently Julia expects 8 arguments. Not sure why though.... if length(Base.ARGS) != 8 error("Invalid number of arguments passed to julia language server.") end
can you help with above error, I would like to create a minimal repro outside VSCode since this is an issue with
It seems we need additional arguments in in the .js file see or here
I two empty arguments in the file However, I have no idea if these arguments are relevant. Then things seem to work Are we expecting the server to shut down at the end? EDIT: the process only shuts down if I hit enter. If I don't press any key it keeps running and the last message is 'Received new data from Julia Symbol Server..." output is:
Thanks for fixing the test case No, I was expecting the error to show up
Can you run our bisect tool in the terminal . In each step install the Julia extension (if not present) and if the extension host terminates with the above error, mark it as bad commit. This would help us narrow down if a change from our side introduced the regression.
Looking at the above, the argument right after is In the test case, I set this argument to empty though
I think it is fine to skip the pipe name, looking at the code it is only responsible for monitory crashes from the language server.


Question: { "name": "code-oss-dev", "version": "1.84.0", <del> "distro": "ace645d011b7e53ba51e8d5ff153c47e3773b3d8", </del> <ins> "distro": "0f218422a902175f8b82cbf0f13fa4feb278f22a", </ins> "author": { "name": "Microsoft Corporation" },

Only on the first run I had to open my project () install the julia extension trust the authors of the folder open a .jl file in my project
I will add that, when I run the above code the extension server fails every time except for the first time. The first time I get the ERROR below, but the Language Server seems to restart. Also it actually takes ages (maybe 2 or 3 minutes) for the LanguageServer to start. <img width="1194" alt="image" src=""
Thanks for the bisect results, can you confirm if the extension host terminates with julia extension in . Download links available at
yes. it terminates
Sorry I should have provided link to , can you try it again with this version. I am trying to confirm if Electron 22 update was the trigger.
I don't have time for this right now. Interestingly I get another error now (I am using the most recent VS Code version now 1.81.1) Not sure if this is connected though....
can you also confirm , thanks!
I can reproduce the extension host termination with VSCode 1.77.3 and julia-vscode v1.47.2.
Thanks for confirming, that eliminates the allocator changes we adopted for Electron 22 update. Refs
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!
Thanks for looking into this, Do you need any more info about the extension?
Might be fixed by
Once the libuve PR us merged, do I need to wait for the next minor julia release?
Thanks for sharing the fix , I will backport the fix into Electron as next step.
Steps for verification: 1) Open extension in latest stable, add the following changes 2) Debug extension, run command 3) Stop the debug session 4) Start debug extension again, run command 5) It should crash the extension host Perform steps 1-4 again in latest insiders with the fix and it should not crash.
Seems to be specific to windows, I cannot repro the crash on a Mac.
Yeah, the seems to be in the Windows kernel.
Yes बुध, 25 अक्तू॰ 2023, 11:15 pm को Sebastian Pfitzner < लिखा:


Question: import { URI } from 'vs/base/common/uri'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { ILogService } from 'vs/platform/log/common/log'; <del> import { VSBuffer } from 'vs/base/common/buffer'; </del> <ins> import { decodeBase64, VSBuffer } from 'vs/base/common/buffer'; </ins> import { ResourceFileEdit } from 'vs/editor/browser/services/bulkEditService'; import { CancellationToken } from 'vs/base/common/cancellation'; import { tail } from 'vs/base/common/arrays';

Add support for setting the contents of files created by workspace edits My proposed would be to add a option to : For , we want to support copying images from desktop into with drag and drop. Right now we have to use the apis to create the image file Using a workspace edit would let us express the entire operation in a single , which will play more nicely with undo/redo
Looks like support for this may already exist internally: However getting a of new file data from the extension host to the main process may be tricky. We can only efficiently serialize a if it is a top level argument to an RPC call or if the entire object is wrapped in a (which has a perf cost). Open to ideas on how to handle this
I do like the and believe the cost is manageable - we don't send edits is large frequencies and of large sizes. I can take a look at this but it honestly is stretch for June - there is some debt in how workspace edits are represented on the wire and I would take this issue as a reason to clean things up
work started here: I didn't bother with or hoisting the data to the top but instead it uses quick and dirty base64 encoding. I'd suggest we go with that and see how it works out over time.


Question: @ITaskService private readonly _taskService: ITaskService, @IConfigurationService private readonly _configurationService: IConfigurationService, @IWorkspaceTrustManagementService private readonly _workspaceTrustManagementService: IWorkspaceTrustManagementService, <del> @ILogService private readonly _logService: ILogService) { </del> <ins> @ILogService private readonly _logService: ILogService, @IStorageService private readonly _storageService: IStorageService, @IOpenerService private readonly _openerService: IOpenerService, @INotificationService private readonly _notificationService: INotificationService) { </ins> super(); this._tryRunTasks(); }

Type: <bBug</bVSCode, create a folder named, for instance, "XXXX". that folder create another called .vscode .vscode create a file named with this content: VSCode sure the setting "task.allowAutomaticTasks" is not set or is set to its defautl value "auto". "XXXX" with VSCode. VSCode will run "echo Hello" without asking you whether you want to run tasks configured with "runOn": "folderOpen" or not. VS Code version: Code 1.70.2 (, 2022-08-16T05:35:13.448Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
This happens because you have presumably opened a trusted workspace - which is now when we allow these to be run if the setting is "auto" for allow automatic task
The described behavior is how it is expected to work. If you disagree, please explain what is expected and what is not in more detail. See also our . Happy Coding!
! If I understood it correctly, the popup that supposedly asks you whether you want to run these tasks is not actually meant to appear ever because if the workspace is trusted it will be executed without asking you and if it is not trusted then it will just not exeute them instead of asking you. Doesn't it look kinda pointless to have in the description of the option of the configuration "Prompt for permission for each folder"? You are never prompted anyways.
I this configuration and I am still not prompted anyways:
No I did not. Please next time ask the user if he did X before assuming it and closing the issue. I tried reproducing the problem with and without a trusted workspace and the problem persists anyways.
i'll investigate this that shouldn't happen
Tasks will only run in trusted workspaces, so I will update the setting description to indicate that. Also need to fix the prompt not happening per folder.


Question: border: none !important; } <del> .monaco-workbench .part > .title > .title-actions .switch-output > .monaco-select-box { </del> <ins> .monaco-workbench .part.sidebar > .title > .title-actions .switch-output > .monaco-select-box { </ins> padding: 0 22px 0 6px; }

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: "source-map": "^0.4.4", "style-loader": "^1.0.0", "ts-loader": "^4.4.2", <ins> "tsec": "googleinterns/tsec", </ins> "typescript": "^4.1.0-dev.20200824", "typescript-formatter": "7.1.0", "underscore": "^1.8.2",

<!-- 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. --As mentioned in the thread by there is a need for a tool that would help developers engaged in the VSCode project identify the Trusted Types violations. This can be achieved by adding as a devDependency and an appropriate yarn script.
I have also a task-definition so that tsec errors show in the editor itself. F1 Run Task tsec <img width="1472" alt="Screenshot 2020-09-01 at 13 07 22" src="https://user-"


Question: display: table-row; opacity: .8; cursor: default; <ins> color: var(--vscode-editorWatermark-foreground); </ins> } .monaco-workbench .part.editor > .content .editor-group-container > .editor-group-watermark > .shortcuts dt {

<!-- 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: }, "plugins": [ "@typescript-eslint", <del> "jsdoc" </del> <ins> "jsdoc", "header" </ins> ], "rules": { "constructor-super": "warn",

Currently, we have to add this copyright header manually to every new file: /
Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License. See in the project root for license information. *
-------------/ An ES Lint rule that has an auto fix would be really nice. What are your thoughts ! (using )
I like. The closest that we have today is this snippet
Let's do it!


Question: return ''; } <ins> shouldValidateName(): boolean { return true; } </ins> save(): void { this.saveScheduler.schedule(); }

<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --when you import a profile file, vscode will create a new profile but not overwrite current one or merge it to current one Actually I don't need so many profiles, the default profile is enough for me. sometimes I just want to import a keybinding settings from some one, and keep my other settings after I import it, WHAT HAPPEND!!!, all my other settings and extension are gone!!! This is unreasonable! what vscode should do is merging(or overwriting) new keybinding to my old one!! <!-- Describe the feature you'd like. --
Can I have a try on this? I'm new to contributing to this repo but want to try out stuff and get along with starting out at the same time..
Edit: Ignore this, I misread this with other issue
Just wondering is not this same as Can you please distinguish your ask from the other?
partially like But I request more flexibility: Suppose current profile is profile X (X can be default or user profile) when I import A profile, that will be: A.keybinding, A.UI, A.extensions ..... and I choose A.keybindings only to import what I expect: there are 2 options for user when importing: option 1 - merge to current profile, (so X profile's keybindings overwritten but other part of settings kept) option 2 - or create a new profile partially basing on what imported (this is what VSCode currently does )
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
<!-- -c9e0-7adb-d31b- --:slightlysmilingface: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our . Happy Coding!
?


Question: return ''; } <ins> shouldValidateName(): boolean { return true; } </ins> save(): void { this.saveScheduler.schedule(); }

I would think this is not a good one to start at and recommend to look for issues labelled with or
I really want to try out.. just to experience and I think I would be able to do it. Even if it's not a good first issue I have contributed to other open source repos. Can I?
Sure, here is the starting point
Thanks a lot for this I was checking your PR with the user-profile feature implementation.. For now I'm just figuring out stuff that is already present. Just a single doubt that I had was about the merging of profiles.. would the editor be like a merge editor that opens whenever we get a merge conflict on git..? Or something else with checkboxes on which settings to get imported from each of the sides(current and imported one)? I'll try my best
For the sake of simplicity, during conflicts, I would simply override with the new one.
Also
Note to self: see for manual workaround.
You can now import and replace any existing profile (including Default profile) from new Profiles Editor UI
To verify: Create a profile A and configure with some settings and extensions Export the profile A to the disk Change some settings and extensions in the profile Import the profile A You should be able to import the profile with name A replacing the existing profile
When I export the profile, install some new extensions, then import the profile with the same name, I would expect the installed extensions to disappear from my extensions list, but that doesn't seem to be the case
It is working for me, ie., I only see the extension from the imported profile. After importing, extensions are getting replaced. Can you please share the exact steps to repro?
Using vscode 1.92.2, I can't figure out how to get to that UI. Where do I find it?
search settings for "profiles experimental"
Thank you!


Question: assert.strictEqual(second.completion.label, '<- groups'); }); <ins> test('Completion item sorting broken when using label details #153026', function () { const itemZZZ = createSuggestItem({ label: 'ZZZ' }, 0, languages.CompletionItemKind.Operator, false); const itemAAA = createSuggestItem({ label: 'AAA' }, 0, languages.CompletionItemKind.Operator, false); const itemIII = createSuggestItem('III', 0, languages.CompletionItemKind.Operator, false); const cmp = getSuggestionComparator(SnippetSortOrder.Inline); const actual = [itemZZZ, itemAAA, itemIII].sort(cmp); assert.deepStrictEqual(actual, [itemAAA, itemIII, itemZZZ]); }); </ins> test('Score only filtered items when typing more, score all when typing less', function () { model = new CompletionModel([ createSuggestItem('console', 0),

<!-- 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 VS Code Version: main branch () OS Version: any Sorting of suggestions is broken if the CompletionItem uses label details. When is a string, suggestions are sorted by label with ties broken by the completion item kind. But if is a then it is not sorted correctly. Here's the bug: This doesn't work as intended on objects. when and are both objects, these two comparisons BOTH return false and things end up being sorted only by kind. if one label is a string and the other is a , then the string ends up sorted after the no matter what the 's label is. Steps to Reproduce: a that returns something like this: end up sorted d, c, b, a, z but should be a, b, c, d, z
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.68.1. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
fix is to use I think
Thanks This is a nice bug and good find. You did a great investigation, planning to fix this in this milestone but since you already did the lead work I'll happily review a PR from you
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!


Question: // User data let userDataProvider; if (indexedDB) { <del> userDataProvider = new IndexedDBFileSystemProvider(logsPath.scheme, indexedDB, userDataStore, false); </del> <ins> userDataProvider = new IndexedDBFileSystemProvider(Schemas.vscodeUserData, indexedDB, userDataStore, true); </ins> this.registerDeveloperActions(<IndexedDBFileSystemProvider>userDataProvider); } else { logService.info('Using in-memory user data provider');

Open in two different tabs Make sure settings sync is OFF Change the theme in one tab Theme is not updated in other tab


Question: data.disposables = []; data.root = container; data.optionText = dom.append(container, $('.option-text')); <ins> data.optionDescriptionText = dom.append(container, $('.option-text-description')); </ins> return data; }

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: builtin return fi <ins> # Disable shell integration if HISTCONTROL is set to erase duplicate entries as the exit code # reporting relies on the duplicates existing if [[ "$HISTCONTROL" =~ .*erasedups.* ]]; then builtin unset VSCODE_SHELL_INTEGRATION builtin return fi </ins> if [ -z "$VSCODE_SHELL_INTEGRATION" ]; then builtin return fi

Issue Type: <bBug</bI do not see the error or success icons for the gutter icon on my shell integration enabled terminals; instead it is always the empty circle. The integration appears to otherwise be working (the Go to Recent Directory and Run Recent Command commands are working as expected). I presume that somehow, the integration is not picking up the result of the operation being run. For reference, I am using but otherwise don't believe I have anything special in my Bash configuration that would affect this.


Question: builtin return fi <ins> # Disable shell integration if HISTCONTROL is set to erase duplicate entries as the exit code # reporting relies on the duplicates existing if [[ "$HISTCONTROL" =~ .*erasedups.* ]]; then builtin unset VSCODE_SHELL_INTEGRATION builtin return fi </ins> if [ -z "$VSCODE_SHELL_INTEGRATION" ]; then builtin return fi

VS Code version: Code 1.68.0 (Universal) (, 2022-06-08T11:44:00.250Z) OS version: Darwin x64 21.5.0 Restricted Mode: No <details<summarySystem Info</summary </details<details<summaryExtensions (76)</summaryExtensionVersion ------ Bookmarks13.3.0 project-manager12.6.0 vscode-sqlite0.14.1 atlascode2.10.12 github-markdown-preview0.3.0 jsdoc-markdown-highlighting0.0.1 markdown-checkbox0.3.2 markdown-emoji0.2.1 markdown-footnotes0.0.7 markdown-mermaid1.14.0 markdown-preview-github-styles1.0.1 markdown-yaml-preamble0.1.0 gitignore0.7.0 vscode-markdownlint0.47.0 vscode-eslint2.2.2 xml2.5.1 gitlens12.0.7 EditorConfig0.16.4 graphviz-preview1.5.0 flow-for-vscode2.1.0 vscode-mysql0.4.1 copilot1.28.6134 remotehub0.34.0 vscode-pull-request-github0.44.0 go0.33.1 todo-tree0.0.215 triggertaskonsave0.2.17 vscode-guid1.4.20 path-autocomplete1.19.1 tablegenerator1.0.4 plantuml2.17.2 svg1.4.18 docthis0.7.1 vscode-position1.1.2 yarn-lock-syntax0.1.3 Kotlin1.7.1 vscode-language-babel0.0.36 pull-request-quantifier0.1.2 extension-manifest-editor0.1.5 csharp1.25.0 dotnet-interactive-vscode1.0. network-edge-devtools1.0.0 data-workspace-vscode0.2.0 mssql1.14.2 sql-bindings-vscode0.1.0 sql-database-projects-vscode0.16.2 vscode-postgresql0.3.0 python2022.8.0 vscode-pylance2022.6.10 jupyter2022.5.


Question: builtin return fi <ins> # Disable shell integration if HISTCONTROL is set to erase duplicate entries as the exit code # reporting relies on the duplicates existing if [[ "$HISTCONTROL" =~ .*erasedups.* ]]; then builtin unset VSCODE_SHELL_INTEGRATION builtin return fi </ins> if [ -z "$VSCODE_SHELL_INTEGRATION" ]; then builtin return fi

jupyter-keymap1.0.0 jupyter-renderers1.0.8 hexeditor1.9.6 powershell2022.5.1 remote-repositories0.12.0 vscode-js-profile-flame1.0.2 vsliveshare1.0.5615 vsliveshare-pack0.4.0 resourcemonitor1.0.7 vscode-commons0.0.6 vscode-yaml1.8.0 sass-indented1.5.1 gitconfig2.0.1 mdx0.1.0 codevalet-vscode1.5.0 vcl0.1.2 msbuild-project-tools0.4.3 jest-snapshot-language-support1.1.1 intellicode-api-usage-examples0.1.1 vscodeintellicode1.2.21 vscode-icons11.12.0 quokka-vscode1.0.478 wallaby-vscode1.0.338 jinja0.0.8 ReactSnippets2.4.0 vscode-proto30.5.5 (2 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details


Question: builtin return fi <ins> # Disable shell integration if HISTCONTROL is set to erase duplicate entries as the exit code # reporting relies on the duplicates existing if [[ "$HISTCONTROL" =~ .*erasedups.* ]]; then builtin unset VSCODE_SHELL_INTEGRATION builtin return fi </ins> if [ -z "$VSCODE_SHELL_INTEGRATION" ]; then builtin return fi

Some info that would help us investigate: Set log level to debug via the command palette, then in Help Developer Tools console it will show some shell integration related logs when you run a command Do you set PROMPT_COMMAND anywhere? Do you use bash-preexec?
I'll get this going and let you know. Ah yes, besides using , I have this in my bash config: I'll try disabling that and see what happens. It would be a shame to lose it but perhaps there's a better way of implementing that so that it's compatible, if that turns out to be the issue. Not that I am aware of, no.
OK, so I disabled my PROMPT_COMMAND change and tried a few things in a new terminal that weren't working before. Now, when I use it is still an empty circle, but when I do , I get the green success lozenge!! So I'm guessing that was the main issue; though I do wonder if I should be seeing that green circle for and such too (that said, this is the non-Insiders build - I'll try Insiders in a second). I'll add the log level and see what I get.
I can confirm that the Insiders build works as advertised now, so it was my history manipulation code that was getting in the way. Thank you for helping out. I'll close this issue as it appears to be an issue on my side, not yours. Thank you for helping troubleshoot.
Let's keep this open to track the issue so we handle it better.
would you like me to gather the logging info as requested, since this is staying open?
I think we understand the problem enough to reproduce it, it's just a case we need to detect and handle better.
This is happening because we actually depend on to differentiate regular commands that succeeded or failed vs ones exited via or running an empty line. Specifically this call: I'll disable shell integration if includes as that specifically is the reason it was failing.
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!


Question: builtin return fi <ins> # Disable shell integration if HISTCONTROL is set to erase duplicate entries as the exit code # reporting relies on the duplicates existing if [[ "$HISTCONTROL" =~ .*erasedups.* ]]; then builtin unset VSCODE_SHELL_INTEGRATION builtin return fi </ins> if [ -z "$VSCODE_SHELL_INTEGRATION" ]; then builtin return fi

To verify: In set Enable the shell integration Open a terminal, it should not have shell integration enabled
/verified I see that the integration is not enabled as the lozenges are missing.


Question: import { ExtHostDocuments } from 'vs/workbench/api/common/extHostDocuments'; import * as extHostTypeConverter from 'vs/workbench/api/common/extHostTypeConverters'; import * as types from 'vs/workbench/api/common/extHostTypes'; <del> import { checkProposedApiEnabled } from 'vs/workbench/services/extensions/common/extensions'; </del> import type * as vscode from 'vscode'; import { ExtHostCommentsShape, IMainContext, MainContext, CommentThreadChanges, CommentChanges } from './extHost.protocol'; import { ExtHostCommands } from './extHostCommands';

<!-- 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. --The comments API doesn't have the concept of resolved/unresolved threads, although most code review tools distinguish them. The current API allows us to surface this to the users, see However, this seems pretty limited. I find it difficult to identify all my unresolved comments. It's very easy to miss some of them. If the API had a boolean for unresolved comments, we could surface them in multiple ways: In the Comments panel, surface the number of unresolved comments, similar to what is done with Problems: ! In the Comments panel, highlight the unresolved comments (or put them in bold), so that it's obvious to the user what comments they still have to go through. In the Comments panel, have a way to hide/filter the resolved comments. In the Editor, consider consider using a different background color for unresolved comments. I currently use a different label for unresolved comments, but this is very subtle. In the gutter, use a different symbol for unresolved comments (e.g. or a diamond of another color). In the Editor, provide a way to go to the next unresolved comment (an alternative to ).
Let's discuss the API change. IMO, the information should be part of a . On many levels, Comments seem similar to s. A diagnostic is a comment provided by a tool such as a compiler. A comment is typically provided by a human. Diagnostics have a severity field, which indicates how important is the problem. We need an equivalent for Comments, something that tells the user if an action is expected (e.g. they need to resolve it) or not. Once the user addresses the comment, the importance is reduced. simplistic solution is to add a boolean, e.g. . to , we can go for a two-state enum instead: to be more general: . We might consider having more fields here. In a code review, multiple users interact with the comments. The current VSCode user is not necessarily the person who needs to do something. For example, the user has just updated the comment and they wait for a response.


Question: import { ExtHostDocuments } from 'vs/workbench/api/common/extHostDocuments'; import * as extHostTypeConverter from 'vs/workbench/api/common/extHostTypeConverters'; import * as types from 'vs/workbench/api/common/extHostTypes'; <del> import { checkProposedApiEnabled } from 'vs/workbench/services/extensions/common/extensions'; </del> import type * as vscode from 'vscode'; import { ExtHostCommentsShape, IMainContext, MainContext, CommentThreadChanges, CommentChanges } from './extHost.protocol'; import { ExtHostCommands } from './extHostCommands';

So the third value could be used to mean "it's not my turn" or "acknowledged, I'll come back later". The benefit is that the user can use the list of "unresolved" issues as a TODO-list and publish the comments once it's empty.
Thank you very much for your proposal. and me have quickly discussed this and we believe this proposal makes good sense. We plan to start looking into it next milestone. Though no promises yet when this will land, we will know more in December when we start our investigation.
All of the proposals in have merit. In a perfect world I would choose one of options 2 or 4; however, we have users of the comments API who's comments don't have a resolved/unresolved state. Option 3 circumvents that, but then we have the issue of what to show in the UI: a GitHub PR comment isn't high or low priority. Another proposal, similar to how comment reactions work:
I see than left comments on the commit (). I like the approach of having an object for the state (instead of the proposed boolean/enum), it gives more flexibility and lets user create their own states. In my proposal, the information was attached to a thread, not to a single comment. Do we have use-cases where we want this information per comment? We might also want to control the gutter icon:
GitHub comments are resolved per-thread, so no, no cases were we want it per comment. I'll move it to the thread.
After much discussion, we have decided to proceed with the following: The main reasoning behind this is that resolved vs. unresolved comments should look the same to the user across a GitHub PR extension, an Azure Dev Ops PR extensions, and any other PR extension. There original concern around using "resolved" and "unresolved" is that maybe not all comment provider have those states (maybe they have "viewed" and "unviewed" states for example). To alleviate this, we'll see if we can avoid using "resolved"/"unresolved" language in the UI. If additional states are needed later, we can always add more to the API.
I have a basic implementation of this working, with and themable colors. Before I finish up the pull request to send it out, I was wondering what the best practice is for providing defaults for these colors?


Question: import { ExtHostDocuments } from 'vs/workbench/api/common/extHostDocuments'; import * as extHostTypeConverter from 'vs/workbench/api/common/extHostTypeConverters'; import * as types from 'vs/workbench/api/common/extHostTypes'; <del> import { checkProposedApiEnabled } from 'vs/workbench/services/extensions/common/extensions'; </del> import type * as vscode from 'vscode'; import { ExtHostCommentsShape, IMainContext, MainContext, CommentThreadChanges, CommentChanges } from './extHost.protocol'; import { ExtHostCommands } from './extHostCommands';

In the mocks from we use a yellow for unresolved comments that is inspired by visuals of our internal tool. I am not sure if they match an established VS Code palette.
awesome, looking forward to reviewing it! Generally, we try to avoid introducing a new color entirely for something like this. The best practice would be to look through the existing color values where we use yellow then use the same yellow, just like is done here where uses the same color as : We'll also do a UX review of this, so the color may end up changing anyway.
I went for new colors as the comments are conceptually something different than e.g. editor warnings. Currently the comments in the editor use (default blue), so a theme, an extension, or the users themselves would not be able to style comments independently of peek views. I think it makes sense to base the default on another color like as in your example, so that themes which omit the new colors receive a reasonable default, but it seems like we would give up a lot of flexibility and also clarity if comment widget colors directly used something like internally?
Yes, basing the color on another is what I meant! I agree that we don't want to directly use another theme color.
If anyone is eager for this API to be finalized then please comment and let me know how it's working for you. Otherwise, I will plan to finalize later in 2022.
This would be very nice to have. We are using Github and especially larger PRs are hard to manage, if there are many comments (in Github as well as in VSCode)
So is there currently a way to filter resolved/unresolved comments in the sidebar? If not what can I modify currently to provide a visual distinction between resolved/unresolved?
there's a color difference on the icon, but that's currently it. This is the feature request you're looking for


Question: assertLink( '(see http://foo.bar)', <del> '     http://foo.bar ' </del> <ins> '     http://foo.bar  ' </ins> ); assertLink( '[see http://foo.bar]', <del> '     http://foo.bar ' </del> <ins> '     http://foo.bar  ' </ins> ); assertLink( '{see http://foo.bar}', <del> '     http://foo.bar ' </del> <ins> '     http://foo.bar  ' </ins> ); assertLink( '<see http://foo.bar>', <del> '     http://foo.bar ' </del> <ins> '     http://foo.bar  ' </ins> ); assertLink( '<url>http://mylink.com</url>',

<!-- 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.75.1 OS Version: Windows 11 Steps to Reproduce: a link in the terminal of the form the link would be automatically detected correctly and made clickable (although in the debug tab, by contrast, it was not detected properly). version 1.75.0, the link detection wrongly terminates at the so the link cannot be easily clicked to open it. I appreciate that you can never please all the people all the time with URL guessing, but I thought it was worth mentioning given that it used to work fine, and to be fair all the characters , and are standard normal URL code points and always have been.
Can repro after, not before: !
This is actually a regression in monaco's link detection which the terminal leverages for uris: 74: <img width="259" alt="image" src="https://user-"75: ! So this was unrelated to the recent terminal link improvements which focused on file detection
introduced this change to fix
Commas are used pretty often in certain links, not sure how advanced the detection is but it could be improved by only treating it as a separator if after a / or if the word before has a period?
GitHub also doesn't split at comma: , I'd probably revert the fix, but I'm fine with either. Up to you
This issue doesn't just affect the links in the terminal. It also applies to , and files (and maybe more).


Question: assertLink( '(see http://foo.bar)', <del> '     http://foo.bar ' </del> <ins> '     http://foo.bar  ' </ins> ); assertLink( '[see http://foo.bar]', <del> '     http://foo.bar ' </del> <ins> '     http://foo.bar  ' </ins> ); assertLink( '{see http://foo.bar}', <del> '     http://foo.bar ' </del> <ins> '     http://foo.bar  ' </ins> ); assertLink( '<see http://foo.bar>', <del> '     http://foo.bar ' </del> <ins> '     http://foo.bar  ' </ins> ); assertLink( '<url>http://mylink.com</url>',

VS Code Version: 1.75.1 OS Version: Windows 10 Steps to reproduce: a file and paste the following code into it: an file and paste the following url into it: . both cases the link detection wrongly terminates at the so the link cannot be easily clicked to open it.
:+1: I'm OK to revert.


Question: import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { ILogService } from 'vs/platform/log/common/log'; import { SnippetSession } from './snippetSession'; <del> import { EditorState, CodeEditorStateFlag } from 'vs/editor/browser/core/editorState'; </del> export class SnippetController2 implements IEditorContribution {

<!-- 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: 1.33.1 OS Version: Windows_NT x64 10.0. Steps to Reproduce: a new user snippet file for the project. The one I encounter the issue with is: the snippet and attempt to press TAB after writing the first variable cursor does not move to the next stop, instead a tab character is The desired behavior would be for the cursor to move to the next tab stop. <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes
Seems to work just fine for me... Any special keybinding or setting? !
The action you took is not the problem I encounter and does indeed work the same way for me. Could you try to edit "SystemName", the first tab stop, then press TAB to go to "Required Components"? vsCode just inserts a tab character after whatever I wrote instead of going to the next tab stop.
Ok, thanks for clarifying. For some reason snippet mode stops when making that edit... Not sure why
I have encountered similar issue, however, I could add a single blank space in the snippet which "fixed" the tab navigation. Also, my example is far simpler. See
This is a regression from I will revert that change and re-open the corresponding issue (which is much more rare than these issues)
Thank you for fixing this, looking forward to the next release.


Question: dependencies: lru-cache "^6.0.0" <del> vscode-jsonrpc@8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.0.1.tgz#f30b0625ebafa0fb3bc53e934ca47b706445e57e" integrity sha512-N/WKvghIajmEvXpatSzvTvOIz61ZSmOSa4BRA4pTLi+1+jozquQKP/MkaylP9iB68k73Oua1feLQvH3xQuigiQ== </del> <ins> vscode-jsonrpc@8.0.2-next.1: version "8.0.2-next.1" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2-next.1.tgz#6bdc39fd194782032e34047eeefce562941259c6" integrity sha512-sbbvGSWja7NVBLHPGawtgezc8DHYJaP4qfr/AaJiyDapWcSFtHyPtm18+LnYMLTmB7bhOUW/lf5PeeuLpP6bKA== </ins> <del> vscode-languageclient@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-8.0.1.tgz#bf5535c4463a78daeaca0bcb4f5868aec86bb301" integrity sha512-9XoE+HJfaWvu7Y75H3VmLo5WLCtsbxEgEhrLPqwt7eyoR49lUIyyrjb98Yfa50JCMqF2cePJAEVI6oe2o1sIhw== </del> <ins> vscode-languageclient@^8.0.2-next.4: version "8.0.2-next.4" resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-8.0.2-next.4.tgz#87dd364ffbd4356aff3af14e7b557d9fe34d2b67" integrity sha512-j9BEiCYMN9IoKwYdk9iickV6WNPVGPoVO11SMdoxFnWPIT3y5UAe3qf/WsfA9OdklAIaxxYasfgyKCpBjSPNuw== </ins> dependencies: minimatch "^3.0.4" semver "^7.3.5" <del> vscode-languageserver-protocol "3.17.1" </del> <ins> vscode-languageserver-protocol "3.17.2-next.5" </ins> <del> vscode-languageserver-protocol@3.17.1: version "3.17.1" resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.1.tgz#e801762c304f740208b6c804a0cf21f2c87509ed" integrity sha512-BNlAYgQoYwlSgDLJhSG+DeA8G1JyECqRzM2YO6tMmMji3Ad9Mw6AW7vnZMti90qlAKb0LqAlJfSVGEdqMMNzKg== </del> <ins> vscode-languageserver-protocol@3.17.2-next.5: version "3.17.2-next.5" resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2-next.5.tgz#9bc747411c3ce9e1d73c2714bf6555e0199eec26" integrity sha512-UlH+QL4Q4lX94of/UPDDwwWIkd8w7dtMW4khzvEDUoykiG9tba0iG6V0bAiv8XVpnBIUYjL2FNFiL3zl+TY1Sw== </ins> dependencies: <del> vscode-jsonrpc "8.0.1" vscode-languageserver-types "3.17.1" </del> <ins> vscode-jsonrpc "8.0.2-next.1" vscode-languageserver-types "3.17.2-next.2" </ins> <del> vscode-languageserver-types@3.17.1: version "3.17.1" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.1.tgz#c2d87fa7784f8cac389deb3ff1e2d9a7bef07e16" integrity sha512-K3HqVRPElLZVVPtMeKlsyL9aK0GxGQpvtAUTfX4k7+iJ4mc1M+JM+zQwkgGy2LzY0f0IAafe8MKqIkJrxfGGjQ== </del> <ins> vscode-languageserver-types@3.17.2-next.2: version "3.17.2-next.2" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2-next.2.tgz#af5d6978eee7682aab87c1419323f5b141ac6596" integrity sha512-TiAkLABgqkVWdAlC3XlOfdhdjIAdVU4YntPUm9kKGbXr+MGwpVnKz2KZMNBcvG0CFx8Hi8qliL0iq+ndPB720w== </ins> vscode-nls@^5.0.0: version "5.0.0"

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: // Filename not allowed this.filePickBox.validationMessage = nls.localize('remoteFileDialog.validateBadFilename', 'Please enter a valid file name.'); return Promise.resolve(false); <del> } else if (!statDirname || !statDirname.isDirectory) { </del> <ins> } else if (!statDirname) { </ins> // Folder to save in doesn't exist <ins> const message = nls.localize('remoteFileDialog.validateCreateDirectory', 'The folder {0} does not exist. Would you like to create it?', resources.basename(resources.dirname(uri))); return this.yesNoPrompt(uri, message); } else if (!statDirname.isDirectory) { </ins> this.filePickBox.validationMessage = nls.localize('remoteFileDialog.validateNonexistentDir', 'Please enter a path that exists.'); return Promise.resolve(false); }

Maybe you've already thought about this but it would be useful to be able to create a new folder in the simplified file dialog. This could be a button in the title bar or a confirmation step when a folder that doesn't exist was typed. Creating a folder and opening it, and creating a folder and saving a file in it, are common workflows so it would be useful to be able to do those in one step.
For the meantime:
Hey thanks for the mention! This was a feature I personally needed for quite some time - we all basically do those steps mentioned by on a daily basis so I decided to code an extension for it. Even though the extension already works great, I am actually working on it right now and adding a new feature which will allow it to create new folders using the Simple file dialogs - regardless of user setting, see . If anyone's interested, I think I'll manage to finish it by tomorrow.
I've been busy with work and other projects but after a long wait, I worked really hard and managed to finish my npm module for Visual Studio Code that implements the aforementioned behavior and shows a custom QuickPick that allows browsing and creating folders from the Command Palette, even nested/recursive folders. The extension that implements this package is available at repo. Not perfect (yet) but it works.
Also create new file in Open File dialog would be useful.
Saving is good. Opening hasn't been implemented -- should there be a new issue for that?


Question: // Filtered "new extensions" button if (element instanceof SettingsTreeNewExtensionsElement) { <del> if ((this.viewState.tagFilters && this.viewState.tagFilters.size) || this.viewState.filterToCategory) { </del> <ins> if (this.viewState.tagFilters?.size || this.viewState.filterToCategory) { </ins> return false; } }

Testing settings UI for " fontsize" "Show matching extensions" blue button no it - no effect fyi !
It shouldn't show up when the filter is present, I guess


Question: private onTabFocusModeChange(): void { const info: StateDelta = { type: 'tabFocusMode', tabFocusMode: TabFocus.getTabFocusMode(this.contextKeyService.getContextKeyValue('focusedView') === 'terminal' ? TabFocusContext.Terminal : TabFocusContext.Editor) }; this.updateState(info); }

Testing an editor and write something in it. tab until you reach the terminal. Type something in the terminal. . Realize that tab is correctly not moving focus in the terminal. command "Toggle Tab Key Moves Focus" out of the terminal and keep tabbing until you get back to your editor. something in the editor. again until you reach the terminal. something in the terminal. to tab out of the terminal. It looks like tab moves focus as toggled itself off. Tab moves focus seems to be off for both terminal and editor at this point until reload.
I can also cause similar behavior if I flip the settings.
what is supposed to happen now? What I think I expect to happen (and isn't happening): If I run "Toggle tab key moves focus" while in a place where it doesn't move focus via setting, then it now globally moves focus. If I run "Toggle tab key moves focus" while in a place where it does move focus, then it now globally does not move focus. However, I'm not a "tab moves focus" user, so maybe my expectations are bogus.
Thank you for testing. Those expectations are correct, except that the toggling does not apply globally - it is per area. So, if I have in settings: terminal tab focus mode: on editor tab focus mode: off where: = status bar indicator = no status bar indicator focus the terminal focus the editor focus the terminal and toggle it off focus the editor and toggle it on focus the terminal focus the editor reload the window and focus the terminal focus the editor I see that this is not working atm because I'm not reacting to configuration changes
fyi for easier testing since the command palette can cause the terminal to no longer be focused, I'd suggest using the keybinding to toggle tab focus mode


Question: "@vscode/policy-watcher": "^1.1.4", "@vscode/proxy-agent": "^0.18.2", "@vscode/ripgrep": "^1.15.9", <del> "@vscode/spdlog": "^0.13.12", </del> <ins> "@vscode/spdlog": "^0.14.0", </ins> "@vscode/sqlite3": "5.1.6-vscode", "@vscode/sudo-prompt": "9.3.1", "@vscode/vscode-languagedetection": "1.0.21",

<!-- 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.85.1 OS Version: Alpine 3.19 Steps to Reproduce: More info and fix in new version :


Question: if (token.type === 'heading') { yield { depth: token.depth, <del> text: renderMarkdownAsPlaintext({ value: token.text }).trim() </del> <ins> text: renderMarkdownAsPlaintext({ value: token.raw }).trim() </ins> }; } }

<!-- 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.66.0 OS: MacOS Monterey 12.3, Darwin x64 21.4.0 Steps to Reproduce: new new markdown cell, name it for instance or will only show and have deleted the 1) or 1. written manually
cc -- It looks like this is being sanitized out of md strings. A markdown cell containing will be sanitized to render as . If the cell contains it will render as expected, only removing the html tags. It seems to be happening at the following:


Question: `                                   https://github.com/jeff-hykin/better-c-syntax/blob/master/autogenerated/c.tmLanguage.json  `, ); }); <del> test('issue #119696: Links shouldn't include commas', () => { assertLink( `https://apod.nasa.gov/apod/ap170720.html,IC 1396: Emission Nebula in Cepheus,https://apod.nasa.gov/apod/image/1707/MOSAIC_IC1396_HaSHO_blanco1024.jpg,https://apod.nasa.gov/apod/image/1707/MOSAIC_IC1396_HaSHO_blanco.jpg`, `https://apod.nasa.gov/apod/ap170720.html                                     https://apod.nasa.gov/apod/image/1707/MOSAIC_IC1396_HaSHO_blanco1024.jpg https://apod.nasa.gov/apod/image/1707/MOSAIC_IC1396_HaSHO_blanco.jpg` ); assertLink( `https://apod.nasa.gov/apod/ap180402.html,"Moons, Rings, Shadows, Clouds: Saturn (Cassini)",https://apod.nasa.gov/apod/image/1804/SaturnRingsMoons_Cassini_967.jpg,https://apod.nasa.gov/apod/image/1804/SaturnRingsMoons_Cassini_967.jpg`, `https://apod.nasa.gov/apod/ap180402.html                                                   https://apod.nasa.gov/apod/image/1804/SaturnRingsMoons_Cassini_967.jpg https://apod.nasa.gov/apod/image/1804/SaturnRingsMoons_Cassini_967.jpg`, ); }); </del> });


Question: `                                   https://github.com/jeff-hykin/better-c-syntax/blob/master/autogenerated/c.tmLanguage.json  `, ); }); <del> test('issue #119696: Links shouldn't include commas', () => { assertLink( `https://apod.nasa.gov/apod/ap170720.html,IC 1396: Emission Nebula in Cepheus,https://apod.nasa.gov/apod/image/1707/MOSAIC_IC1396_HaSHO_blanco1024.jpg,https://apod.nasa.gov/apod/image/1707/MOSAIC_IC1396_HaSHO_blanco.jpg`, `https://apod.nasa.gov/apod/ap170720.html                                     https://apod.nasa.gov/apod/image/1707/MOSAIC_IC1396_HaSHO_blanco1024.jpg https://apod.nasa.gov/apod/image/1707/MOSAIC_IC1396_HaSHO_blanco.jpg` ); assertLink( `https://apod.nasa.gov/apod/ap180402.html,"Moons, Rings, Shadows, Clouds: Saturn (Cassini)",https://apod.nasa.gov/apod/image/1804/SaturnRingsMoons_Cassini_967.jpg,https://apod.nasa.gov/apod/image/1804/SaturnRingsMoons_Cassini_967.jpg`, `https://apod.nasa.gov/apod/ap180402.html                                                   https://apod.nasa.gov/apod/image/1804/SaturnRingsMoons_Cassini_967.jpg https://apod.nasa.gov/apod/image/1804/SaturnRingsMoons_Cassini_967.jpg`, ); }); </del> });


Question: const editorContext = this._contextKeyService.getContext(this._editor.getDomNode()!); if (editorContext.getValue<boolean>(CommentContextKeys.activeEditorHasCommentingRange.key)) { <del> content.push(this._descriptionForCommand(CommentCommandId.Add, CommentAccessibilityHelpNLS.addComment, CommentAccessibilityHelpNLS.addCommentNoKb)); content.push(this._descriptionForCommand(CommentCommandId.NextThread, CommentAccessibilityHelpNLS.nextCommentThreadKb, CommentAccessibilityHelpNLS.nextCommentThreadNoKb)); content.push(this._descriptionForCommand(CommentCommandId.PreviousThread, CommentAccessibilityHelpNLS.previousCommentThreadKb, CommentAccessibilityHelpNLS.previousCommentThreadNoKb)); content.push(this._descriptionForCommand(CommentCommandId.NextRange, CommentAccessibilityHelpNLS.nextRange, CommentAccessibilityHelpNLS.nextRangeNoKb)); content.push(this._descriptionForCommand(CommentCommandId.PreviousRange, CommentAccessibilityHelpNLS.previousRange, CommentAccessibilityHelpNLS.previousRangeNoKb)); </del> <ins> const commentCommandInfo = []; commentCommandInfo.push(CommentAccessibilityHelpNLS.intro); commentCommandInfo.push(this._descriptionForCommand(CommentCommandId.Add, CommentAccessibilityHelpNLS.addComment, CommentAccessibilityHelpNLS.addCommentNoKb)); commentCommandInfo.push(this._descriptionForCommand(CommentCommandId.NextThread, CommentAccessibilityHelpNLS.nextCommentThreadKb, CommentAccessibilityHelpNLS.nextCommentThreadNoKb)); commentCommandInfo.push(this._descriptionForCommand(CommentCommandId.PreviousThread, CommentAccessibilityHelpNLS.previousCommentThreadKb, CommentAccessibilityHelpNLS.previousCommentThreadNoKb)); commentCommandInfo.push(this._descriptionForCommand(CommentCommandId.NextRange, CommentAccessibilityHelpNLS.nextRange, CommentAccessibilityHelpNLS.nextRangeNoKb)); commentCommandInfo.push(this._descriptionForCommand(CommentCommandId.PreviousRange, CommentAccessibilityHelpNLS.previousRange, CommentAccessibilityHelpNLS.previousRangeNoKb)); content.push(commentCommandInfo.join('n')); </ins> } if (options.get(EditorOption.stickyScroll).enabled) {

As a result of the discussion in , we should format each command, description, and keybinding more consistently and limit redundancy.
/closedWith though still need to do the same for the chat help dialogs


Question: } offset = Math.min(oldEndViewColumn + 1 - config.normalizeIndentation(ir.afterEnter).length - 1, 0); } <del> return new ReplaceCommandWithOffsetCursorState(range, beforeText + config.normalizeIndentation(ir.afterEnter), 0, offset, true); </del> <ins> return new ReplaceCommandWithOffsetCursorState(range, 'n' + config.normalizeIndentation(ir.afterEnter), 0, offset, true); </ins> } } }

<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: --<!-- Use Help Report Issue to prefill these. --- VSCode Version: 1.51.1 / 1.52.0-insider OS Version: Ubuntu 20.04 / Windows 10 Steps to Reproduce: 4x spaces at the beginning of a line multiple cursors on that line enter Expected: Insert newline at each of the positions where cursor is present Actual Behavior: Inserts newline only at the first (NOT the left most) cursor position (Let me know the relevant settings values required) Addiditional info: I use tabs (width of 4 spaces) for indentation for formatting ! <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes
I think this might be caused by one of your installed extensions. Here it is on my machine: ! To validate this, could you please : Run the command Developer: Toggle Keyboard Shortcuts Troubleshooting This will activate logging of dispatched keyboard shortcuts and will open an output panel with the corresponding log file. You can then press <kbdEnter</kbdand check what command is invoked. If you are having trouble understanding the output, please feel free to paste here and I can help decipher it for you.
Here is the renderer keyboard troubleshoot log: Also, the I have disabled all the extensions. And, now, I can reproduce this with the latest stable too and in Ubuntu.
It is also not exclusive to the multi cursors created using keybinding. I can reproduce this by placing mulitple cursors created using the too.
From the keyboard log, I can confirm that nobody is "stealing" Enter via keybindings. But there is another way that extensions can intercept that, via our command. That is the way in which intercepts Enter. Does this reproduce when disabling all extensions? Press and then choose !
Hey , In all of my previuos posts I have made sure that I have disabled all the extensions (by running the command that you have mentioned) and also, at the end of each of my posts I have explicitly stated that I had disabled the extensions. Can it have anything to do with my settings related to tabs?


Question: } offset = Math.min(oldEndViewColumn + 1 - config.normalizeIndentation(ir.afterEnter).length - 1, 0); } <del> return new ReplaceCommandWithOffsetCursorState(range, beforeText + config.normalizeIndentation(ir.afterEnter), 0, offset, true); </del> <ins> return new ReplaceCommandWithOffsetCursorState(range, 'n' + config.normalizeIndentation(ir.afterEnter), 0, offset, true); </ins> } } }

May be, inspect my settings here: (which has ) and, try to reproduce the issue by applying the exact same settings (copy paste my ).
Also, , Please carefully go through each of the above posts. It seems like you are not reading all the comments. It will save me from repeating the same thing again and again. Thanks.
Thank you for your patience, with your settings, I could finally reproduce. I missed the fact that the editor is configured to use tabs and I believed you might be using vim due to the block cursor in the GIF. You can workaround by using .


Question: env: GITHUB_TOKEN: "$(github-distro-mixin-password)" displayName: Build server (web) <del> condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'arm64')) </del> - ${{ if or(eq(parameters.VSCODE_RUN_UNIT_TESTS, true), eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true), eq(parameters.VSCODE_RUN_SMOKE_TESTS, true)) }}: - template: product-build-win32-test.yml@self

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: ) { } async openReporter(dataOverrides: Partial<IssueReporterData> = {}): Promise<void> { <del> const extensions = await this.extensionManagementService.getInstalled(ExtensionType.User); </del> <ins> const extensions = await this.extensionManagementService.getInstalled(); </ins> const enabledExtensions = extensions.filter(extension => this.extensionEnablementService.isEnabled(extension)); <del> const extensionData: IssueReporterExtensionData[] = enabledExtensions.map(extension => { </del> <ins> const extensionData = enabledExtensions.map((extension): IssueReporterExtensionData => { </ins> const { manifest } = extension; const manifestKeys = manifest.contributes ? Object.keys(manifest.contributes) : []; const isTheme = !manifest.activationEvents && manifestKeys.length === 1 && manifestKeys[0] === 'themes'; <ins> const isBuiltin = extension.type === ExtensionType.System; </ins> return { name: manifest.name, publisher: manifest.publisher,

Feature Request The command takes an extension argument so that extensions can open an issue reporter for that extension. I'd like to use this for the built-in JS/TS extension as well but cannot at the moment: It'd be nice if for VS Code builtin extensions, we automatically changed the field to
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!


Question: import { ACTIVE_GROUP } from 'vs/workbench/services/editor/common/editorService'; import { IWorkbenchLayoutService, Parts } from 'vs/workbench/services/layout/browser/layoutService'; import { IBaseActionViewItemOptions } from 'vs/base/browser/ui/actionbar/actionViewItems'; <ins> import { DisposableStore } from 'vs/base/common/lifecycle'; </ins> export class TerminalEditor extends EditorPane {

I was trying to understand the usage of and the lifecycle of actions created while creating it. I think this originated with the terminal, so looked at the terminal code, but it seems like the problem isn't solved here either. instantiates some Actions which extend Disposable, but they are never tracked or disposed. The ActionViewItems returned from are apparently owned by whatever calls that and get disposed, but not these extra actions that we have to create. So, one solution would be for them to be owned and disposed by although that feels unexpected. But otherwise, there isn't a technically correct way for the code in to know when they should be disposed. Wondering whether I'm missing something or if you have any thoughts.
I spent some time investigating this and the issue is that we use in some places and in others. Only the latter is disposable. This would be a bit involved to rework


Question: public static INSTANCE = new ZoomManager(); private _zoomLevel: number = 0; <ins> private _editorZoomLevel: number = 0; </ins> private _pixelRatioCache: number = 0; private _pixelRatioComputed: boolean = false; private _onDidChangeZoomLevel: Emitter<number> = new Emitter<number>(); public onDidChangeZoomLevel:Event<number> = this._onDidChangeZoomLevel.event; <ins> private _onDidChangeEditorZoomLevel: Emitter<number> = new Emitter<number>(); public onDidChangeEditorZoomLevel:Event<number> = this._onDidChangeEditorZoomLevel.event; </ins> public getZoomLevel(): number { return this._zoomLevel; }

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: modes['css'] = getCSSMode(cssLanguageService, documentRegions, workspace); } if (supportedLanguages['javascript']) { <del> modes['javascript'] = getJavaScriptMode(documentRegions, 'javascript'); modes['typescript'] = getJavaScriptMode(documentRegions, 'typescript'); </del> <ins> modes['javascript'] = getJavaScriptMode(documentRegions, 'javascript', workspace); modes['typescript'] = getJavaScriptMode(documentRegions, 'typescript', workspace); </ins> } return { getModeAtPosition(document: TextDocument, position: Position): LanguageMode | undefined {

<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: --<!-- Use Help Report Issue to prefill these. --- VSCode Version: 1.43.0 OS Version: n/a I have the set to in my settings: Given a Does not produce any warnings as expected. However in : The linter says
This has the same root cause as : script are owned by the html extension instead of by the JavaScript extension. Fixing that is difficult However we could have a small fix that just makes html understand the setting. Marking this as help-wanted
Hello I'd like to try my hands on fixing this issue. Can you give some pointers as to which files are good places to start?
This change will need to be made in the HTML extension Here's where we configure TypeScript for the html extension: You should: Pass the value for in with the initial configuration Make sure that the language service updates its value for when the VS Code setting changes
Is there another way to get the setting value other than vscode.workspace.getConfiguration()? The 'vscode' module cannot be found when I try to import it into javascriptMode. I think 'vscode' would have to be as a dependency in in order to import 'vscode'.
Right now I'm passing in a default 'false' for experimentalDecorators in the initial configuration and passing the settings into getJavascriptMode.doValidation to update compilerOptions and calling ts.createLanguageService(host) every time doValidation is invoked. It has the expected behavior, but is there a better way to update the compiler options without creating the service every time it runs validation?
Is called when the file is changed? If it is, try updating the object that it returns
I am reproducing this error now with the following code: I realize this is known, but I will add the mention with respect to . Here is the relevant docs page, if a person wanted to make a unit test using If anyone finds this in the future, if is set in , it should suppress this error. Additionally, both and files, in the root of the project, take precedence over that setting.


Question: dependencies: lru-cache "^6.0.0" <del> vscode-jsonrpc@8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.0.1.tgz#f30b0625ebafa0fb3bc53e934ca47b706445e57e" integrity sha512-N/WKvghIajmEvXpatSzvTvOIz61ZSmOSa4BRA4pTLi+1+jozquQKP/MkaylP9iB68k73Oua1feLQvH3xQuigiQ== vscode-languageclient@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-8.0.1.tgz#bf5535c4463a78daeaca0bcb4f5868aec86bb301" integrity sha512-9XoE+HJfaWvu7Y75H3VmLo5WLCtsbxEgEhrLPqwt7eyoR49lUIyyrjb98Yfa50JCMqF2cePJAEVI6oe2o1sIhw== </del> <ins> vscode-jsonrpc@8.0.2-next.1: version "8.0.2-next.1" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2-next.1.tgz#6bdc39fd194782032e34047eeefce562941259c6" integrity sha512-sbbvGSWja7NVBLHPGawtgezc8DHYJaP4qfr/AaJiyDapWcSFtHyPtm18+LnYMLTmB7bhOUW/lf5PeeuLpP6bKA== vscode-languageclient@^8.0.2-next.4: version "8.0.2-next.4" resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-8.0.2-next.4.tgz#87dd364ffbd4356aff3af14e7b557d9fe34d2b67" integrity sha512-j9BEiCYMN9IoKwYdk9iickV6WNPVGPoVO11SMdoxFnWPIT3y5UAe3qf/WsfA9OdklAIaxxYasfgyKCpBjSPNuw== </ins> dependencies: minimatch "^3.0.4" semver "^7.3.5" <del> vscode-languageserver-protocol "3.17.1" </del> <ins> vscode-languageserver-protocol "3.17.2-next.5" </ins> <del> vscode-languageserver-protocol@3.17.1: version "3.17.1" resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.1.tgz#e801762c304f740208b6c804a0cf21f2c87509ed" integrity sha512-BNlAYgQoYwlSgDLJhSG+DeA8G1JyECqRzM2YO6tMmMji3Ad9Mw6AW7vnZMti90qlAKb0LqAlJfSVGEdqMMNzKg== </del> <ins> vscode-languageserver-protocol@3.17.2-next.5: version "3.17.2-next.5" resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2-next.5.tgz#9bc747411c3ce9e1d73c2714bf6555e0199eec26" integrity sha512-UlH+QL4Q4lX94of/UPDDwwWIkd8w7dtMW4khzvEDUoykiG9tba0iG6V0bAiv8XVpnBIUYjL2FNFiL3zl+TY1Sw== </ins> dependencies: <del> vscode-jsonrpc "8.0.1" vscode-languageserver-types "3.17.1" </del> <ins> vscode-jsonrpc "8.0.2-next.1" vscode-languageserver-types "3.17.2-next.2" </ins> <del> vscode-languageserver-types@3.17.1: version "3.17.1" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.1.tgz#c2d87fa7784f8cac389deb3ff1e2d9a7bef07e16" integrity sha512-K3HqVRPElLZVVPtMeKlsyL9aK0GxGQpvtAUTfX4k7+iJ4mc1M+JM+zQwkgGy2LzY0f0IAafe8MKqIkJrxfGGjQ== </del> <ins> vscode-languageserver-types@3.17.2-next.2: version "3.17.2-next.2" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2-next.2.tgz#af5d6978eee7682aab87c1419323f5b141ac6596" integrity sha512-TiAkLABgqkVWdAlC3XlOfdhdjIAdVU4YntPUm9kKGbXr+MGwpVnKz2KZMNBcvG0CFx8Hi8qliL0iq+ndPB720w== </ins> vscode-nls@^5.0.1: version "5.0.1"


Question: actionRunner: this._actionRunner, actions: rest, contextMenuProvider: this._contextMenuService, <ins> ariaLabel: action.label </ins> }); } else { action = actionOrSubmenu; btn = this.addButton({ secondary: conifgProvider(action)?.isSecondary ?? secondary, <ins> ariaLabel: action.label </ins> }); }

Type: <bBug</bCC In inline Copilot chat, "Regenerate" button is not readable by some screen readers, such as JAWS. This is because the button is labeled with title attribute. Please add aria-label so that JAWS can recognize the label. For better communication, I have recorded a gif: ! VS Code version: Code - Insiders 1.86.0-insider (, 2023-12-20T05:36:57.756Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (116)</summaryExtensionVersion ------ vscode-openapi4.19.2 android-dev-ext1.3.2 aiprm-lang0.0.2 Bookmarks13.4.2 openscad1.2.2 spellright3.0.118 zoterolatex0.4.1 mermaid-markdown-syntax-highlighting1.6.0 doxdocgen1.4.0 vscode-markdownlint0.53.0 vscode-eslint2.4.2 vscode-quick-select0.2.9 vscode-deno3.30.0 gitlens14.6.1 EditorConfig0.16.4 prettier-vscode10.1.0 vscode-firefox-debug2.9.10 shell-format7.2.5 vscode-google-translate1.4.13 codespaces1.16.5 copilot1.143.601 copilot-chat0.12. remotehub0.62.0 vscode-github-actions0.26.2 vscode-pull-request-github0.79.


Question: actionRunner: this._actionRunner, actions: rest, contextMenuProvider: this._contextMenuService, <ins> ariaLabel: action.label </ins> }); } else { action = actionOrSubmenu; btn = this.addButton({ secondary: conifgProvider(action)?.isSecondary ?? secondary, <ins> ariaLabel: action.label </ins> }); }

cloudcode2.2.1 overleaf-workshop0.6.1 cslpreview0.2.2 easy-snippet0.7.5 path-autocomplete1.25.0 latex-workshop9.16.1 lilypond-syntax0.1.1 scheme0.2.0 better-cpp-syntax1.17.2 language-julia1.65.2 google-search0.0.1 vscode-lua-format1.3.8 lilypond-formatter0.2.3 lilypond-pdf-preview0.2.8 lilypond-snippets0.1.1 vslilypond1.7.3 zotero0.1.11 git-graph1.30.0 azure-dev0.8.0 vscode-azureappservice0.25.1 vscode-azurecontainerapps0.6.1 vscode-azurefunctions1.13.1 vscode-azureresourcegroups0.8.3 vscode-azurestaticwebapps0.12.2 vscode-azurestorage0.15.3 vscode-azurevirtualmachines0.6.5 vscode-cosmosdb0.20.0 vscode-docker1.28.0 vscode-edge-devtools2.1.3 black-formatter2023.7. flake82023.10.0 isort2023.11. python2023.23. vscode-pylance2023.12.101 jupyter2024.1. jupyter-keymap1.1.2 jupyter-renderers1.0.17 vscode-jupyter-cell-tags0.1.8 vscode-jupyter-slideshow0.1.5 remote-containers0.329.0 remote-ssh0.108. remote-ssh-edit0.86.0 remote-wsl0.81.8 vscode-remote-extensionpack0.25.0 azure-account0.11.6 azure-repos0.38.0 cmake-tools1.16.32 cpptools1.19.1 cpptools-extension-pack1.3.0 js-debug-nightly2023.12.1817 powershell2023.11.1 remote-explorer0.5. remote-repositories0.40.0 remote-server1.6.


Question: actionRunner: this._actionRunner, actions: rest, contextMenuProvider: this._contextMenuService, <ins> ariaLabel: action.label </ins> }); } else { action = actionOrSubmenu; btn = this.addButton({ secondary: conifgProvider(action)?.isSecondary ?? secondary, <ins> ariaLabel: action.label </ins> }); }

vscode-github-issue-notebooks0.0.130 vscode-node-azure-pack1.2.0 vscode-selfhost-test-provider0.3.22 vscode-serial-monitor0.11.0 vscode-speech0.3. vsliveshare1.0.5900 windows-ai-studio0.2.1 autodocstring0.6.1 pandocciter0.10.3 shiny-python0.1.5 shinyuieditor0.5.0 quarto1.109.0 r-debugger0.5.4 java1.25.1 vscode-xml0.26.1 vscode-yaml1.14.0 r2.8.2 multi-command1.6.0 AudioQ0.0.2 vscode-deepl1.0.10 abc-music0.4.0 lua3.7.3 latex-utilities0.4.10 cmake0.0.17 vscode-terminal-here0.2.4 windows-terminal0.7.0 errorlens3.16.0 intellicode-api-usage-examples0.2.8 vscodeintellicode1.2.30 vscode-arduino0.6. vscode-java-debug0.55.0 vscode-java-dependency0.23.3 vscode-java-pack0.25.15 vscode-java-test0.40.1 vscode-maven0.43.0 markdown-all-in-one3.5.1 grammarly0.25.0 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Thank you for the issue JooYoung. I cannot access the gif because it seems to be a private link.


Question: disturl "https://electronjs.org/headers" target "29.4.0" <del> ms_build_id "9593362" </del> <ins> ms_build_id "9728852" </ins> runtime "electron" build_from_source "true"

<!-- 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.90.1 x64 OS Version: Ubuntu 24.04 (Updates 14 Jun 2024) I get the error on a fresh installation of Ubuntu 24.04 and VSCode 1.90.1 Everything works fine with VSCode version . Steps to Reproduce: latest version of Ubuntu 24.04. command. command.
In my case the issue occurred when doing , also on Ubuntu (20.04) and also on vscode 1.90.1 Here is a temp workaround to revert to vscode 1.89.1, if that's useful to anyone:
Hi Having same issue on remote VM Ubuntu 20.04 Install errors with Solved by using the flag


Question: disturl "https://electronjs.org/headers" target "29.4.0" <del> ms_build_id "9593362" </del> <ins> ms_build_id "9728852" </ins> runtime "electron" build_from_source "true"

This is a continuation of to implement a proper fix in the runtime or application as necessary. Known data points: SIGTRAP when gpu tried to access resource bundle to load a label for assigning display name when computing vsync interval using the internal implementation rather than the gl extension. Also name from resource bundle is only requested for builtin-displays and not virtual ;l=449-456 Using gpu codepath from main process serves as a workaround. Debian package on the same system didn't trigger the crash codepath, very likely a different gl backend was used. Next steps: 1) Compare gl initialization trace between snap 1.89 and 1.90, using the following categories 2) Compare gl initialization trace between debian 1.90 and snap 1.90 3) Confirm if resource bundle access from gpu process is necessary moving forward.
This turned out to be a regression from https://chromium- which causes the gpu process when using the software display compositor to reach into the resource bundle. Before the CL, gpu process will not call into only the main process did.
is there something to verify here?
This is related to the candidate issue and I was just using it to track fixes. Nothing particular to verify for this particular issue, maybe confirm the checksums for both branches are same vs


Question: assert.deepStrictEqual(cellList.getViewScrollBottom(), 210); // scroll to 5 <ins> cellList.updateElementHeight2(viewModel.cellAt(0)!, 50); </ins> cellList.scrollTop = 5; assert.deepStrictEqual(cellList.scrollTop, 5); assert.deepStrictEqual(cellList.getViewScrollBottom(), 215);

Ideas to experiment with: Don't shrink a cell while it is executing -less jumpy as output is replaced change the anchor heuristic from "if the resizing cell is partially visible" to "if the cell's output will shrink out of view" Anchor to a focused cell if the focus is in the cell's editor cc
For the new heuristics we are adding (growing upwards or downwards), they should probably be interrupted the moment users start to scroll, for example, if I scroll manually to a specific position, I would expect the scroll top not to change.
I disagree - That could mean if you have a cell focused and anchored, and you scroll to get it higher in the view, it would then start getting pushed down as the previous cell grows.
If I scroll to get it lower in the view, as I want to read the cells above, and since it's still in the view and focused/anchored, the cells I was reading will then pushed upwards, right? This feels unnatural compared to how browser handles scrolling or Terminal. Terminal scenario might be closer to this, as it usually sticks to the bottom when the shell is streaming outputs, but the very moment we scroll upwards, it stops sticking to the bottom.


Question: this._currentName = currentName; this._input.domNode.value = currentName; <ins> this._input.domNode.setAttribute('selectionStart', selectionStart.toString()); this._input.domNode.setAttribute('selectionEnd', selectionEnd.toString()); </ins> this._input.domNode.size = Math.max((where.endColumn - where.startColumn) * 1.1, 20); // determines width const disposeOnDone = new DisposableStore();

Select a portion of a variable name Press F2 Previously, the rename widget would open with the same substring highlighted. It's helpful to quickly rename one subword in a variable name, for example. Now, the full contents of the input in the rename widget are highlighted initially. I don't know who owns this but it looks like you touched it recently
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!


Question: assert.equal(editor.getValue(), '    let name = foo'); }); <ins> test('use additionalTextEdits sync when possible', async function () { disposables.add(CompletionProviderRegistry.register({ scheme: 'test-ctrl' }, { provideCompletionItems(doc, pos) { return { suggestions: [{ kind: CompletionItemKind.Snippet, label: 'let', insertText: 'hello', range: Range.fromPositions(pos), additionalTextEdits: [{ text: 'I came sync', range: { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 } }] }] }; }, async resolveCompletionItem(item) { return item; } })); editor.setValue('hellonhallo'); editor.setSelection(new Selection(2, 6, 2, 6)); // trigger let p1 = Event.toPromise(controller.model.onDidSuggest); controller.triggerSuggest(); await p1; // let p2 = Event.toPromise(controller.model.onDidCancel); controller.acceptSelectedSuggestion(false, false); await p2; // insertText happens sync! assert.equal(editor.getValue(), 'I came synchellonhallohello'); }); test('resolve additionalTextEdits async when needed', async function () { let resolveCallCount = 0; disposables.add(CompletionProviderRegistry.register({ scheme: 'test-ctrl' }, { provideCompletionItems(doc, pos) { return { suggestions: [{ kind: CompletionItemKind.Snippet, label: 'let', insertText: 'hello', range: Range.fromPositions(pos) }] }; }, async resolveCompletionItem(item) { resolveCallCount += 1; await timeout(10); item.additionalTextEdits = [{ text: 'I came late', range: { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 } }]; return item; } })); editor.setValue('hellonhallo'); editor.setSelection(new Selection(2, 6, 2, 6)); // trigger let p1 = Event.toPromise(controller.model.onDidSuggest); controller.triggerSuggest(); await p1; // let p2 = Event.toPromise(controller.model.onDidCancel); controller.acceptSelectedSuggestion(false, false); await p2; // insertText happens sync! assert.equal(editor.getValue(), 'hellonhallohello'); assert.equal(resolveCallCount, 1); // additional edits happened after a litte wait await timeout(20); assert.equal(editor.getValue(), 'I came latehellonhallohello'); // single undo stop editor.getModel()?.undo(); assert.equal(editor.getValue(), 'hellonhallo'); }); test('resolve additionalTextEdits async when needed (typing)', async function () { let resolveCallCount = 0; let resolve: Function = () => { }; disposables.add(CompletionProviderRegistry.register({ scheme: 'test-ctrl' }, { provideCompletionItems(doc, pos) { return { suggestions: [{ kind: CompletionItemKind.Snippet, label: 'let', insertText: 'hello', range: Range.fromPositions(pos) }] }; }, async resolveCompletionItem(item) { resolveCallCount += 1; await new Promise(_resolve => resolve = _resolve); item.additionalTextEdits = [{ text: 'I came late', range: { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 } }]; return item; } })); editor.setValue('hellonhallo'); editor.setSelection(new Selection(2, 6, 2, 6)); // trigger let p1 = Event.toPromise(controller.model.onDidSuggest); controller.triggerSuggest(); await p1; // let p2 = Event.toPromise(controller.model.onDidCancel); controller.acceptSelectedSuggestion(false, false); await p2; // insertText happens sync! assert.equal(editor.getValue(), 'hellonhallohello'); assert.equal(resolveCallCount, 1); // additional edits happened after a litte wait assert.ok(editor.getSelection()?.equalsSelection(new Selection(2, 11, 2, 11))); editor.trigger('test', 'type', { text: 'TYPING' }); assert.equal(editor.getValue(), 'hellonhallohelloTYPING'); resolve(); await timeout(10); assert.equal(editor.getValue(), 'I came latehellonhallohelloTYPING'); assert.ok(editor.getSelection()?.equalsSelection(new Selection(2, 17, 2, 17))); }); // additional edit come late and are AFTER the selection -> cancel test('resolve additionalTextEdits async when needed (simple conflict)', async function () { let resolveCallCount = 0; let resolve: Function = () => { }; disposables.add(CompletionProviderRegistry.register({ scheme: 'test-ctrl' }, { provideCompletionItems(doc, pos) { return { suggestions: [{ kind: CompletionItemKind.Snippet, label: 'let', insertText: 'hello', range: Range.fromPositions(pos) }] }; }, async resolveCompletionItem(item) { resolveCallCount += 1; await new Promise(_resolve => resolve = _resolve); item.additionalTextEdits = [{ text: 'I came late', range: { startLineNumber: 1, startColumn: 6, endLineNumber: 1, endColumn: 6 } }]; return item; } })); editor.setValue(''); editor.setSelection(new Selection(1, 1, 1, 1)); // trigger let p1 = Event.toPromise(controller.model.onDidSuggest); controller.triggerSuggest(); await p1; // let p2 = Event.toPromise(controller.model.onDidCancel); controller.acceptSelectedSuggestion(false, false); await p2; // insertText happens sync! assert.equal(editor.getValue(), 'hello'); assert.equal(resolveCallCount, 1); resolve(); await timeout(10); assert.equal(editor.getValue(), 'hello'); }); // additional edit come late and are AFTER the position at which the user typed -> cancelled test('resolve additionalTextEdits async when needed (conflict)', async function () { let resolveCallCount = 0; let resolve: Function = () => { }; disposables.add(CompletionProviderRegistry.register({ scheme: 'test-ctrl' }, { provideCompletionItems(doc, pos) { return { suggestions: [{ kind: CompletionItemKind.Snippet, label: 'let', insertText: 'hello', range: Range.fromPositions(pos) }] }; }, async resolveCompletionItem(item) { resolveCallCount += 1; await new Promise(_resolve => resolve = _resolve); item.additionalTextEdits = [{ text: 'I came late', range: { startLineNumber: 1, startColumn: 2, endLineNumber: 1, endColumn: 2 } }]; return item; } })); editor.setValue('hellonhallo'); editor.setSelection(new Selection(2, 6, 2, 6)); // trigger let p1 = Event.toPromise(controller.model.onDidSuggest); controller.triggerSuggest(); await p1; // let p2 = Event.toPromise(controller.model.onDidCancel); controller.acceptSelectedSuggestion(false, false); await p2; // insertText happens sync! assert.equal(editor.getValue(), 'hellonhallohello'); assert.equal(resolveCallCount, 1); // additional edits happened after a litte wait editor.setSelection(new Selection(1, 1, 1, 1)); editor.trigger('test', 'type', { text: 'TYPING' }); assert.equal(editor.getValue(), 'TYPINGhellonhallohello'); resolve(); await timeout(10); assert.equal(editor.getValue(), 'TYPINGhellonhallohello'); assert.ok(editor.getSelection()?.equalsSelection(new Selection(1, 7, 1, 7))); }); test('resolve additionalTextEdits async when needed (cancel)', async function () { let resolve: Function[] = []; disposables.add(CompletionProviderRegistry.register({ scheme: 'test-ctrl' }, { provideCompletionItems(doc, pos) { return { suggestions: [{ kind: CompletionItemKind.Snippet, label: 'let', insertText: 'hello', range: Range.fromPositions(pos) }, { kind: CompletionItemKind.Snippet, label: 'let', insertText: 'hallo', range: Range.fromPositions(pos) }] }; }, async resolveCompletionItem(item) { await new Promise(_resolve => resolve.push(_resolve)); item.additionalTextEdits = [{ text: 'additionalTextEdits', range: { startLineNumber: 1, startColumn: 2, endLineNumber: 1, endColumn: 2 } }]; return item; } })); editor.setValue('abc'); editor.setSelection(new Selection(1, 1, 1, 1)); // trigger let p1 = Event.toPromise(controller.model.onDidSuggest); controller.triggerSuggest(); await p1; // let p2 = Event.toPromise(controller.model.onDidCancel); controller.acceptSelectedSuggestion(true, false); await p2; // insertText happens sync! assert.equal(editor.getValue(), 'helloabc'); // next controller.acceptNextSuggestion(); // resolve additional edits (MUST be cancelled) resolve.forEach(fn => fn); resolve.length = 0; await timeout(10); // next suggestion used assert.equal(editor.getValue(), 'halloabc'); }); </ins> });

Issue Type: <bBug</bLike what the heading says, inserting a code snippet anywhere in the code file causes an autoscroll. This is a slight inconvenience, as while inserting snippets, viewing code above it is desirable, causing us to rescroll into view. So adding an option to revert to the functionality in the stable release would be preferred VS Code version: Code - Insiders 1.46.0-insider (, 2020-05-07T16:36:39.681Z) OS version: Linux x64 5.4.38-1-MANJARO <details<summarySystem Info</summary </details<details<summaryExtensions (4)</summaryExtensionVersion ------ cpptools0.27.1 Go0.14.1 material-icon-theme4.1.0 material-theme3.5.0 (1 theme extensions excluded) </details<!-- generated by issue reporter --
Yeah - that's a regression from a recent change to keep the position stable when additional edits are inserted...
is the item that caused this regression.
fixed via
Yep, it works fine now. Thanks a lot!
This bug has been fixed in to the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command pallette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
/verified