Question: keybinding: { primary: KeyMod.Alt | KeyCode.KeyC, mac: { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.KeyC }, <del> when: ContextKeyExpr.or(TerminalContextKeys.focusInAny, TerminalContextKeys.findFocus), </del> <ins> when: TerminalContextKeys.findVisible, </ins> weight: KeybindingWeight.WorkbenchContrib }, precondition: ContextKeyExpr.or(TerminalContextKeys.processSupported, TerminalContextKeys.terminalHasBeenCreated),

Type: <bBug</bAlt+C or Alt+W or Alt+R Now if area with code is in focus, broken search parameter selector will appear without search panel itself. If terminal is in focus, search panel will appear. I think it is completely unneccesary to intercept alt+c globally when no search panel is opened. In my setup it leads to conflict with alt+c fzf's key binding in terminal. VS Code version: Code 1.86.2 (, 2024-02-13T19:41:37.860Z) OS version: Linux x64 6.7.6-arch1-1 Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (19)</summaryExtensionVersion ------ vscode-nginx-conf0.3.2 vscode-cython0.3.10 vscode-docker1.29.0 autopep82023.8.0 debugpy2024.2.0 isort2023.10.1 python2024.2.1 vscode-pylance2024.2.2 jupyter2024.1.1 jupyter-keymap1.1.2 jupyter-renderers1.0.17 vscode-jupyter-cell-tags0.1.8 vscode-jupyter-slideshow0.1.5 remote-containers0.348.0 cmake-tools1.17.17 cpptools1.19.4 cpptools-extension-pack1.3.0 rust-analyzer0.3.1860 cmake0.0.17 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.87.0. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
This is feature - it influences bahavior of Add Selection To Next Find Match (<kbdCtrl</kbd+<kbdD</kbd) and Select all occurrences of current selection (<kbdCtrl</kbd+<kbdShift</kbd+<kbdL</kbd). However not sure how regexp is useful here, except it would be applied for next find.
Can you share a screen recording? I'm not sure if I understand what you're talking about.


Question: keybinding: { primary: KeyMod.Alt | KeyCode.KeyC, mac: { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.KeyC }, <del> when: ContextKeyExpr.or(TerminalContextKeys.focusInAny, TerminalContextKeys.findFocus), </del> <ins> when: TerminalContextKeys.findVisible, </ins> weight: KeybindingWeight.WorkbenchContrib }, precondition: ContextKeyExpr.or(TerminalContextKeys.processSupported, TerminalContextKeys.terminalHasBeenCreated),

This video shows the behavior of vscode after pressing alt+c
This video shows what I expected after pressing alt+c in terminal It is configured with following lines in .zshrc:
I can repro when the widget is visible even if my focus is in the editor
Never mind, the little toolbar in the editor is coming from the editor command , not our terminal one.


Question: constructor() { super({ id: REVEAL_RUNNING_CELL, <del> title: localize('revealRunningCell', "Go To Running Cell"), tooltip: localize('revealRunningCell', "Go To Running Cell"), </del> <ins> title: localize('revealRunningCell', "Go to Running Cell"), tooltip: localize('revealRunningCell', "Go to Running Cell"), </ins> shortTitle: localize('revealRunningCellShort', "Go To"), precondition: NOTEBOOK_HAS_RUNNING_CELL, menu: [

Testing Just a small change. Believe the casing is off in the hover hint for the button. When going to a running cell it's "Go To.." and in the new error command its "Go to..." with the rest all caps. I believe the "to" should be "To."
The convention for commands is to use "Go to...." lowercase "to". !
Got it. I was basing it off of seeing this for the other Go to cell command. So is the bug on that text instead? <img width="191" alt="image" src="https://user-"
I think "Go To", both words capitalized, is good to match the other notebook titlebar casing (for example "Run All"). Using simply "Go" in the titlebar might be ambiguous and people would confuse it with "Run". The hover in the image above, should be "Go to Running Cell"
just checking, but would be proper fix for this to change the casing in "Go To Running Cell" to "Go to Running Cell"?


Question: } .settings-editor > .settings-body .settings-tree-container .setting-item-contents .setting-item-title .setting-item-overrides a.modified-scope { <del> text-decoration: underline; </del> <ins> color: var(--vscode-textLink-foreground); text-decoration: var(--text-link-decoration); </ins> cursor: pointer; }

Testing Links to overridden settings (here is shows as Modified in User) to show as links nor are they affected by the setting. !
As in, they don't use the typical link color? is that intentional? Agreed that they should pick up the setting, in any case.
Here's how it would look ! !
I don't remember whether it was on purpose in order to not make the link stand out too much. I'm alright with changing the colour of the link and keeping the underline for improved accessibility.
Agreed. Merged the change and we can tune it from there if needed.


Question: ignoreIfExists?: boolean; ignoreIfNotExists?: boolean; recursive?: boolean; <ins> contents?: Uint8Array; </ins> } export const enum FileEditType {

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: Platform::DarwinARM64 => "server-darwin-arm64", Platform::WindowsX64 => "server-win32-x64", Platform::WindowsX86 => "server-win32", <del> Platform::WindowsARM64 => "server-win32-x64", // we don't publish an arm64 server build yet </del> <ins> Platform::WindowsARM64 => "server-win32-arm64", </ins> } .to_owned() }

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: { "name": "code-oss-dev", "version": "1.91.0", <del> "distro": "170beceb9849568b8f7159757bc3fc3964af1986", </del> <ins> "distro": "361fc45f5932b161db29080d5b19bc5afb9baae6", </ins> "author": { "name": "Microsoft Corporation" },

<!-- 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: { "name": "code-oss-dev", "version": "1.91.0", <del> "distro": "170beceb9849568b8f7159757bc3fc3964af1986", </del> <ins> "distro": "361fc45f5932b161db29080d5b19bc5afb9baae6", </ins> "author": { "name": "Microsoft Corporation" },

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: import { PositionAffinity } from 'vs/editor/common/model'; import { InjectedText } from 'vs/editor/common/modelLineProjectionData'; import { Mutable } from 'vs/base/common/types'; <ins> import { Lazy } from 'vs/base/common/lazy'; </ins> const enum HitTestResultType { Unknown,

<!-- 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.88.0-insider in Safari OS Version: macOS Steps to Reproduce: Safari open a file with: to the right of any the cursor goes to the beginning of the line not the end This does not repro in stable
I didn't do any changes the last couple of milestones that could (easily) explain this. Can you reproduce this in the monaco editor? If so, can you do a bisect?
I bisected it to this commit: (the commit before it) does not repro the issue. This wasn't in Monaco editor, I just used run code web:
This commit is just a rename refactoring. It is very unlikely it causes this... This does not reproduce in chrome, right?
The bug does not reproduce in Edge on macOS, but it repros in Safari.
Unfortunately, I don't have access to Safari. Can you double check that this is caused by that commit? Can you locally rename the class back to the original name and see if it still happens? It does not make any sense that this commit would cause this behavior only on Safari.
Ok and I paired a bit on this and are really stumped. Bad news: That commit I called out seems to be a red herring. Good news: we can repro in the Monaco Editor Playground.


Question: import { PositionAffinity } from 'vs/editor/common/model'; import { InjectedText } from 'vs/editor/common/modelLineProjectionData'; import { Mutable } from 'vs/base/common/types'; <ins> import { Lazy } from 'vs/base/common/lazy'; </ins> const enum HitTestResultType { Unknown,

Here's a side by side of two versions of the dev build: <img width="1680" alt="image" src=""You can see when I click to the right of a line, the older (working) build has the correct position here, while the newer broken build has column 1. Here are the links to these versions: Working: Broken: I believe this is out of both of our depths at this point so I'm passing to you This is a regression so I think it should be fixed before we release (assuming I'm not the only one to repro)
Did a bisect using and it points to
In that case, it is most likely .


Question: const name = await this.quickInputService.input({ placeHolder: localize('name', "Profile name"), title: localize('create new title', "Create New Profile"), <del> value: `${profileTemplate.name} ${this.getProfileNameIndex(profileTemplate.name)}`, </del> <ins> value: `${profileName} ${this.getProfileNameIndex(profileName)}`, </ins> validateInput: async (value: string) => { if (this.userDataProfilesService.profiles.some(p => p.name === value)) { return localize('profileExists', "Profile with name {0} already exists.", value);

<!-- 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. --<!-- 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 Steps to Reproduce: Exported a user profile using the GitHub gist link . The user navigates to the link in their browser, where they enter , and the profile opens in the explore view. At the same time, the profile badge is to the settings icon prior to importing the profile. If the user clicks "Import Profile", they are prompted to overwrite an existing profile. The user has never imported a profile prior to this experience. !
thanks for great repro steps. I can nicely reproduce. Assigning to since it seems like the Profile got applied to before hitting the import button, and hitting the import would double-import.
thanks for fixing can you try with latest Insiders and if it works fine you can add the label. Thanks!
Verified, however the profile badge gets to the Settings icon and to the Profiles list prior to importing the profile, but if you click "Import Profile" it imports as expected. Is this as expected? My assumption was that those would not show up until the Profile is imported. !
Yes. This is to indicate user that the profile is applied in preview mode.


Question: "scss.lint.emptyRules.desc": "Do not use empty rulesets.", "scss.lint.float.desc": "Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes.", "scss.lint.fontFaceProperties.desc": "`@font-face` rule must define `src` and `font-family` properties.", <del> "scss.lint.hexColorLength.desc": "Hex colors must consist of three or six hex numbers.", </del> <ins> "scss.lint.hexColorLength.desc": "Hex colors must consist of 3, 4, 6 or 8 hex numbers.", </ins> "scss.lint.idSelector.desc": "Selectors should not contain IDs because these rules are too tightly coupled with the HTML.", "scss.lint.ieHack.desc": "IE hacks are only necessary when supporting IE7 and older.", "scss.lint.important.desc": "Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored.",

<!-- 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.86.2 (system setup) OS Version: Windows 11 (Windows_NT x64 10.0.) Steps to Reproduce: the built-in extension "CSS Language Features", which has an identifier of settings, search for "hex color length" See that it says "Hex colors must consist of three or six hex numbers." when it should say "Hex colors must consist of three, four, six, or eight hex numbers." to accommodate the alpha channel. The extension already allows for all four lengths, but the setting description is wrong.


Question: constructor( private readonly _editor: ICodeEditor, @IInstantiationService instaService: IInstantiationService, <ins> @IContextKeyService contextKeyService: IContextKeyService, </ins> ) { this._defaultChatModel = this._store.add(instaService.createInstance(ChatModel, `inlineChatDefaultModel/editorContentWidgetPlaceholder`, undefined)); <del> this._widget = instaService.createInstance( </del> <ins> const scopedInstaService = instaService.createChild( new ServiceCollection([ IContextKeyService, this._store.add(contextKeyService.createScoped(this._domNode)) ]) ); this._widget = scopedInstaService.createInstance( </ins> ChatWidget, ChatAgentLocation.Editor, { resource: true },

Just asked hi: ! Expected: ! Version: 1.88.0-insider (user setup) Commit: Date: 2024-03-25T05:49:32.344Z Electron: 28.2.6 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Windows_NT x64 10.0. GitHub Copilot Chat v0.14. (pre-release)
because of
To verify configure have a very wide view port ask AI to change some code make sure the input widget is full width of the zone widget


Question: constructor( private readonly _editor: ICodeEditor, @IInstantiationService instaService: IInstantiationService, <ins> @IContextKeyService contextKeyService: IContextKeyService, </ins> ) { this._defaultChatModel = this._store.add(instaService.createInstance(ChatModel, `inlineChatDefaultModel/editorContentWidgetPlaceholder`, undefined)); <del> this._widget = instaService.createInstance( </del> <ins> const scopedInstaService = instaService.createChild( new ServiceCollection([ IContextKeyService, this._store.add(contextKeyService.createScoped(this._domNode)) ]) ); this._widget = scopedInstaService.createInstance( </ins> ChatWidget, ChatAgentLocation.Editor, { resource: true },

cmd+i now cmd+backspace invokes instead of deleting the line in the text editor The ChatWidget is writing its context keys to the editor's ContextKeyService, so we need a scoped CKS at some point, either inside the ChatWidget or outside in the inline widgets
pushing a fix to use a scoped CKS but this does look like debt. Isn't a better fix to reset context keys when hiding/dispose the chat widget?
I don't think those context keys should be applied on the editor at all, they are intended to just be active inside the widget's dom tree.


Question: const matcher = outputMatcher.lineMatcher; const linesToCheck = typeof matcher === 'string' ? 1 : outputMatcher.length || countNewLines(matcher); const lines: string[] = []; <del> let wrappedLines = 1; </del> let match: RegExpMatchArray | null | undefined; if (outputMatcher.anchor === 'bottom') { for (let i = endLine - (outputMatcher.offset || 0); i >= startLine; i--) {

going to keep track of examples here to see if there's a pattern <img width="1112" alt="Screenshot 2023-01-23 at 2 12 18 PM" src="https://user-"
far right terminal <img width="1120" alt="Screenshot 2023-01-23 at 3 07 17 PM" src="https://user-"
middle terminal !
far right terminal !
far right terminal <img width="1076" alt="Screenshot 2023-01-24 at 1 59 40 PM" src="https://user-"
right terminal <img width="1644" alt="Screenshot 2023-01-24 at 2 22 27 PM" src="https://user-"
right terminal !
here are the lines when there's not a quick fix result - it contains after which we don't account for here !
Seeing this frequently: <img width="726" alt="image" src="https://user-"
I think we just need to include the to fix this
or better yet, remove and just look for the link
ok I see the issue. when lines are wrapped a lot, we need to search more lines - setting the length to 10/15 fixes it even when the terminal is quite narrow
I see it on non-wrapped lines, I'm not sure I understand what you mean with the To?
The to comment above was actually wrong. What's happened in the screen shot above is we abort the search early - after looking at only 5 lines. When it's actually on line 9
this goes wrong when we break before reaching the content IE when line count length
I tried pushing up a new branch using pwsh in the integrated terminal on Windows, and the lightbulb did not show. !
you have shell integration disabled, it won't work at all there.
also make sure to not move issues to the next milestone, this one was marked important
Working much better now, but just reproduced !
Just happened and captured the trace log (escape sequence log would be better): <img width="806" alt="image" src="https://user-"
I've seen this not work twice today already for create PR !
even though the lightbulb didn't appear here, there was a match found !


Question: const matcher = outputMatcher.lineMatcher; const linesToCheck = typeof matcher === 'string' ? 1 : outputMatcher.length || countNewLines(matcher); const lines: string[] = []; <del> let wrappedLines = 1; </del> let match: RegExpMatchArray | null | undefined; if (outputMatcher.anchor === 'bottom') { for (let i = endLine - (outputMatcher.offset || 0); i >= startLine; i--) {

the match always happens, the lightbulb doesn't show up though until I resize the terminal
this happens when the have not yet been resolved by the time occurs ! !
I think we should be calling at the end of
have seen the create PR not show up 3 times today. resizing doesn't cause it to show up, which means our match range is wrong/ there isn't a match
this says unreleased, but was merged before the current version of insider's (5 hours ago) was released. create with PR still failing !
insider's is based on the release branch, so I was confused
<!-- UNABLETOLOCATECOMMITMESSAGE issue --Issue marked as unreleased but unable to locate closing commit in issue timeline. You can manually reference a commit by commenting , or directly add the label if you know this has already been releaased


Question: } ); this._store.add(this._widget); <del> this._store.add(this._widget.onDidChangeHeight(() => _editor.layoutContentWidget(this))); </del> this._widget.render(this._inputContainer); this._widget.setModel(this._defaultChatModel, {}); <ins> this._store.add(this._widget.inputEditor.onDidContentSizeChange(() => _editor.layoutContentWidget(this))); </ins> this._domNode.tabIndex = -1; this._domNode.className = 'inline-chat-content-widget interactive-session';

start inline chat in the content widget author multiple lines :bug: the widget's height doesn't change
still kind of running into this kinda - height changes, but the prompt layout after querying is unreadable since there's only one or 2 line height worth of space also, seems like there is a weird horizontal scroll element on the bottom left of the widget?
I see. This is because the height of the zone is limited by the overall height of the editor. It doesn't want to take more than 42% - that's something we can tweak but you might be facing a bit of a special case having a multiturn convo and accessibility viewer enabled as well.
The first prompt handles a long string nicely. A long string for the follow-up prompt results in content overflow. !


Question: this._layoutCancellationTokenSource = new CancellationTokenSource(); this._modifiedResourceDisposableStore.add(Event.any(this._model.original.notebook.onDidChangeContent, this._model.modified.notebook.onDidChangeContent)(e => { <del> if (this._model !== null) { </del> <ins> // If the user has made changes to the notebook whilst in the diff editor, // then do not re-compute the diff of the notebook, // As change will result in re-computing diff and re-building entire diff view. if (this._model !== null && this.editorService.activeEditor !== input) { </ins> this._layoutCancellationTokenSource?.dispose(); this._layoutCancellationTokenSource = new CancellationTokenSource(); this.updateLayout(this._layoutCancellationTokenSource.token);

Testing For this issue I used a notebook with one cell that contains the following code: <details<summaryfile </summarydata= {} df = pd.DataFram(data) data= {} df = pd.DataFram(data) data= {} df = pd.DataFram(data) data= {} df = pd.DataFram(data) data= {} df = pd.DataFram(data) data= {} df = pd.DataFram(data) data= {} df = pd.DataFram(data) data= {} df = pd.DataFram(data) data= {} df = pd.DataFram(data) data= {} df = pd.DataFram(data) data= {} df = pd.DataFram(data) </details- Stage this code Make a change Open the diff view in the SCM pane Open the metadata view Type into the metadata view The metadata view closes before anything can be typed Is this expected?


Question: <ins> { "registrations": [ { "component": { "type": "git", "git": { "name": "dart-lang/dart-syntax-highlight", "repositoryUrl": "https://github.com/dart-lang/dart-syntax-highlight", "commitHash": "65f211722c85e9fdf0aa658d5663e6ccaf2ebe25" } }, "licenseDetail": [ "Copyright 2020, the Dart project authors.", "", "Redistribution and use in source and binary forms, with or without", "modification, are permitted provided that the following conditions are", "met:", "", "    * Redistributions of source code must retain the above copyright", "    notice, this list of conditions and the following disclaimer.", "    * Redistributions in binary form must reproduce the above", "    copyright notice, this list of conditions and the following", "    disclaimer in the documentation and/or other materials provided", "    with the distribution.", "    * Neither the name of Google LLC nor the names of its", "    contributors may be used to endorse or promote products derived", "    from this software without specific prior written permission.", "", "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS", ""AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT", "LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR", "A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT", "OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,", "SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT", "LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,", "DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY", "THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT", "(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE", "OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ], "license": "BSD", "version": "0.0.0" } ], "version": 1 } </ins>

Following on from comments at , it would be good to have basic Dart language configuration as a built-in extension in VS Code, allowing things like syntax highlighting to in the case where the Dart extension is not installed (for example a Live Share client that hasn't installed it) or is disabled (for example in an Untrusted workspace). From : There is a Dart Team-owned grammar here that can be used - it's the (except for a small bug fix that I'll file an upstream PR for shortly): Great! Though what's the advantage of depending on the built-in extension? I try to support a few-versions-old VS Code where possible (so wouldn't do that for a few versions) but also the extension is published to open- for use by other clients so the dependency may complicate things (if they don't have the same built-in). I'd probably do some investigation into this before removing anything from Dart-Code then (it sounds like there's no downside to having the grammar/config provided by both for a period anyway). (fyi
It also works without a dependency, but only because the extension is built-in. No problem if the Dart extension keeps the grammar and language configurations for a while until it is all settled. Do you want to look into a PR or should I?
If it's easier/quicker for you to do, feel free. Otherwise I'm happy to do it but may need some pointers for how built-in extensions are set up.
I pushed the PR We have a new built-in language :-)
Super, thanks! For future reference - for changes to the language config I can send a PR to , and for grammar changes I can run (after the changes are landed in the upstream dart-lang repo)?
I just noticed in the it has the path but this doesn't seem to match the location of the file ?
Good catch, thanks. Pushed the fix:
For grammar changes, I'll pull them in about once per month so you can just rely on that if you want. If there's a change that needs to be picked up sooner than that, then feel free to make an issue an @ mention me and I'll pull in the change earlier.
Perfect, thanks!
is this support in the Code May Update (1.57) that just went out?
Yes, in microsoft/vscode you can tell what release an issue is in by looking at the Milestone. !
Yep!


Question: <ins> { "registrations": [ { "component": { "type": "git", "git": { "name": "dart-lang/dart-syntax-highlight", "repositoryUrl": "https://github.com/dart-lang/dart-syntax-highlight", "commitHash": "65f211722c85e9fdf0aa658d5663e6ccaf2ebe25" } }, "licenseDetail": [ "Copyright 2020, the Dart project authors.", "", "Redistribution and use in source and binary forms, with or without", "modification, are permitted provided that the following conditions are", "met:", "", "    * Redistributions of source code must retain the above copyright", "    notice, this list of conditions and the following disclaimer.", "    * Redistributions in binary form must reproduce the above", "    copyright notice, this list of conditions and the following", "    disclaimer in the documentation and/or other materials provided", "    with the distribution.", "    * Neither the name of Google LLC nor the names of its", "    contributors may be used to endorse or promote products derived", "    from this software without specific prior written permission.", "", "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS", ""AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT", "LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR", "A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT", "OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,", "SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT", "LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,", "DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY", "THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT", "(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE", "OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ], "license": "BSD", "version": "0.0.0" } ], "version": 1 } </ins>

An easy way to test it's working is to disable the Dart/Flutter extensions (accept the prompt to reload), then open a Dart file. You'll now still get syntax highlighting (note: you won't get analysis or much other editor functionality, that requires the Dart extension). <img width="650" alt="Screenshot 2021-06-14 at 15 52 25" src="https://user-"
Yeah I just did, and it works great :-)


Question: const text = data.contents.join('n'); const newDocument = new DOMParser().parseFromString(text, 'text/html'); <ins> newDocument.querySelectorAll('a').forEach(a => { if (!a.title) { a.title = a.href; } }); </ins> // set base-url if applicable if (initData.baseUrl && newDocument.head.getElementsByTagName('base').length === 0) { const baseElement = newDocument.createElement('base');

Would be great to see a tooltip on links, showing the target. Or popping it up in the status bar or elsewhere, like Chrome.
: Could you please explain the preview functionality bit more with screenshots of Chrome? I am new to open source community and this project. I use vscode often and would love to work on this if someone can guide me a little.
Lower left corner of the Chrome window when I hover the link to your name: ! But I think a normal tooltip would be easier.
Ah yes. I understand what you are talking about now. To verify, where the link is leading to. Seems like a beginner friendly feature. I can pick it up this weekend if anyone can nudge me towards the right direction. :)
Sorry for the delayed response. It seems that tooltips are only shown if the element has a attribute, but not for links that only have a . I wasn't able to find if there is an electron setting to enable tooltips for links without . I think we may have to implement this ourselves. To get started, take a look at this PR that a similar feature to another electron app: Here's where our webview code lives: I believe you should be able to attach a handler to the webview handler. Please let me know if you have any questions about the code or want to discuss potential designs
I m happy to receive help! :) I was facing issues while trying to build and fiddle around with the source code. Will definitely look into this PR and the code you pointed out this weekend. Thanks for taking your time to post this info. I ll post any questions or designs which I have.
Hi , I will create a PR to add attribute to every .
For verification: this was implemented as tooltip when you hover over links in a webview


Question: ], "settings": { "fontStyle": "italic", <del> "foreground": "#91B3E0" </del> <ins> "foreground": "#8190A0" </ins> } }, {

"Add" text in these screenshots. JSX ! HTML !
That's just how it it. All depends on what scopes the differents grammars (html: no scope), jsx: ) use and the decisions of the themes on what to colors. The workround is to use a theme that doesn't color , e.g. the default light theme.
fixed by , thanks


Question: } } // check with 'label' <del> if (a.completion.label < b.completion.label) { </del> <ins> if (a.textLabel < b.textLabel) { </ins> return -1; <del> } else if (a.completion.label > b.completion.label) { </del> <ins> } else if (a.textLabel > b.textLabel) { </ins> return 1; } // check with 'type'

<!-- 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: .pipe(replace('@@UPDATEURL@@', product.updateUrl || '@@UPDATEURL@@')) .pipe(rename('DEBIAN/postinst')); <del> const all = es.merge(control, postinst, postrm, prerm, desktops, appdata, icon, bash_completion, zsh_completion, code); </del> <ins> const all = es.merge(control, postinst, postrm, prerm, desktops, appdata, workspaceMime, icon, bash_completion, zsh_completion, code); </ins> return all.pipe(vfs.dest(destination)); };

A Visual Studio Code workspace file is currently recognised in Linux as a normal plain text file. This is because there isn't a MIME type for this file. Applications can provide additional MIME types as described here: Not having a MIME type has a couple of issues, for example the files are shown as plain text files in the GUI, which makes it hard to distinguish source code files from the workspace file. This slows down navigating to a workspace and opening it. Find the workspace in the following screenshot ! It's currently impossible to theme such a file because it's not seen as a different MIME type:
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.461 --<!-- potentialduplicatescomment --
This also means that you can't make double clicking the workspace from a file browser open it in vscode, unless you're OK with all text files opening in vscode, which is probably not what most folks want.
This bug has been fixed in to the latest release of ! you can help us out by confirming things are working as expected in the latest Insiders release. If things look good, please leave a comment with the text to let us know. If not, please ensure you're on version of Insiders (today's or later - you can use in the command pallete to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
Hi can you verify this issue? Check out the previous comment.
I tried to verify this but am not sure how to do this myself. I've not used desktop linux extensively; I tried reinstalling Insiders from the on Lubuntu to see if it associated files with VS Code, but that didn't happen.
Verified by installing insiders from on Ubuntu and was able to see mimetype and set a custom icon ! upon uninstalling it was removed.


Question: margin-top: 7px; } <del> .monaco-workbench.mac .part > .title > .title-actions .switch-output { </del> <ins> .monaco-workbench.mac .part.sidebar > .title > .title-actions .switch-output { </ins> border-radius: 4px; } <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> border: none !important; display: block !important; background-color: unset !important;

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: } } <del> const LINK_REGEX = /[([^]]+)](((?:https?://|command:|file:)[^)s]+)(?: ("|')([^3]+)(3))?)/gi; </del> <ins> const LINK_REGEX = /[([^]]+)](((?:https?://|command:|file:)[^)s]+)(?: (["'])(.+?)(3))?)/gi; </ins> export function parseLinkedText(text: string): LinkedText { const result: LinkedTextNode[] = [];


Question: return request.fulfillContentEmpty(new Position(lineCount, maxLineColumn), EMPTY_CONTENT_AFTER_LINES); } <del> if (domHitTestExecuted) { // Check if we are hitting a view-line (can happen in the case of inline decorations on empty lines) // See https://github.com/microsoft/vscode/issues/46942 if (ElementPath.isStrictChildOfViewLines(request.targetPath)) { const lineNumber = ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset); if (ctx.viewModel.getLineLength(lineNumber) === 0) { const lineWidth = ctx.getLineWidth(lineNumber); const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth); return request.fulfillContentEmpty(new Position(lineNumber, 1), detail); } </del> <ins> // Check if we are hitting a view-line (can happen in the case of inline decorations on empty lines) // See https://github.com/microsoft/vscode/issues/46942 if (ElementPath.isStrictChildOfViewLines(request.targetPath)) { const lineNumber = ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset); if (ctx.viewModel.getLineLength(lineNumber) === 0) { </ins> const lineWidth = ctx.getLineWidth(lineNumber); <del> if (request.mouseContentHorizontalOffset >= lineWidth) { const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth); const pos = new Position(lineNumber, ctx.viewModel.getLineMaxColumn(lineNumber)); return request.fulfillContentEmpty(pos, detail); } </del> <ins> const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth); return request.fulfillContentEmpty(new Position(lineNumber, 1), detail); </ins> } <del> // We have already executed hit test... return request.fulfillUnknown(); </del> <ins> const lineWidth = ctx.getLineWidth(lineNumber); if (request.mouseContentHorizontalOffset >= lineWidth) { // TODO: This is wrong for RTL const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth); const pos = new Position(lineNumber, ctx.viewModel.getLineMaxColumn(lineNumber)); return request.fulfillContentEmpty(pos, detail); } </ins> } <del> const hitTestResult = MouseTargetFactory._doHitTest(ctx, request); </del> <ins> // Do the hit test (if not already done) const hitTestResult = request.hitTestResult.value; </ins> if (hitTestResult.type === HitTestResultType.Content) { return MouseTargetFactory.createMouseTargetFromHitTestPosition(ctx, request, hitTestResult.spanNode, hitTestResult.position, hitTestResult.injectedText); } <del> return this._createMouseTarget(ctx, request.withTarget(hitTestResult.hitTarget), true); </del> <ins> // We didn't hit content... if (request.wouldBenefitFromHitTestTargetSwitch) { // We actually hit something different... Give it one last change by trying again with this new target request.switchToHitTestTarget(); return this._createMouseTarget(ctx, request); } // We have tried everything... return request.fulfillUnknown(); </ins> } private static _hitTestMinimap(ctx: HitTestContext, request: ResolvedHitTestRequest): IMouseTarget | null {

<!-- 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.88.0-insider in Safari OS Version: macOS Steps to Reproduce: Safari open a file with: to the right of any the cursor goes to the beginning of the line not the end This does not repro in stable
I didn't do any changes the last couple of milestones that could (easily) explain this. Can you reproduce this in the monaco editor? If so, can you do a bisect?
I bisected it to this commit: (the commit before it) does not repro the issue. This wasn't in Monaco editor, I just used run code web:
This commit is just a rename refactoring. It is very unlikely it causes this... This does not reproduce in chrome, right?
The bug does not reproduce in Edge on macOS, but it repros in Safari.
Unfortunately, I don't have access to Safari. Can you double check that this is caused by that commit? Can you locally rename the class back to the original name and see if it still happens? It does not make any sense that this commit would cause this behavior only on Safari.
Ok and I paired a bit on this and are really stumped. Bad news: That commit I called out seems to be a red herring. Good news: we can repro in the Monaco Editor Playground.


Question: return request.fulfillContentEmpty(new Position(lineCount, maxLineColumn), EMPTY_CONTENT_AFTER_LINES); } <del> if (domHitTestExecuted) { // Check if we are hitting a view-line (can happen in the case of inline decorations on empty lines) // See https://github.com/microsoft/vscode/issues/46942 if (ElementPath.isStrictChildOfViewLines(request.targetPath)) { const lineNumber = ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset); if (ctx.viewModel.getLineLength(lineNumber) === 0) { const lineWidth = ctx.getLineWidth(lineNumber); const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth); return request.fulfillContentEmpty(new Position(lineNumber, 1), detail); } </del> <ins> // Check if we are hitting a view-line (can happen in the case of inline decorations on empty lines) // See https://github.com/microsoft/vscode/issues/46942 if (ElementPath.isStrictChildOfViewLines(request.targetPath)) { const lineNumber = ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset); if (ctx.viewModel.getLineLength(lineNumber) === 0) { </ins> const lineWidth = ctx.getLineWidth(lineNumber); <del> if (request.mouseContentHorizontalOffset >= lineWidth) { const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth); const pos = new Position(lineNumber, ctx.viewModel.getLineMaxColumn(lineNumber)); return request.fulfillContentEmpty(pos, detail); } </del> <ins> const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth); return request.fulfillContentEmpty(new Position(lineNumber, 1), detail); </ins> } <del> // We have already executed hit test... return request.fulfillUnknown(); </del> <ins> const lineWidth = ctx.getLineWidth(lineNumber); if (request.mouseContentHorizontalOffset >= lineWidth) { // TODO: This is wrong for RTL const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth); const pos = new Position(lineNumber, ctx.viewModel.getLineMaxColumn(lineNumber)); return request.fulfillContentEmpty(pos, detail); } </ins> } <del> const hitTestResult = MouseTargetFactory._doHitTest(ctx, request); </del> <ins> // Do the hit test (if not already done) const hitTestResult = request.hitTestResult.value; </ins> if (hitTestResult.type === HitTestResultType.Content) { return MouseTargetFactory.createMouseTargetFromHitTestPosition(ctx, request, hitTestResult.spanNode, hitTestResult.position, hitTestResult.injectedText); } <del> return this._createMouseTarget(ctx, request.withTarget(hitTestResult.hitTarget), true); </del> <ins> // We didn't hit content... if (request.wouldBenefitFromHitTestTargetSwitch) { // We actually hit something different... Give it one last change by trying again with this new target request.switchToHitTestTarget(); return this._createMouseTarget(ctx, request); } // We have tried everything... return request.fulfillUnknown(); </ins> } private static _hitTestMinimap(ctx: HitTestContext, request: ResolvedHitTestRequest): IMouseTarget | null {

Here's a side by side of two versions of the dev build: <img width="1680" alt="image" src=""You can see when I click to the right of a line, the older (working) build has the correct position here, while the newer broken build has column 1. Here are the links to these versions: Working: Broken: I believe this is out of both of our depths at this point so I'm passing to you This is a regression so I think it should be fixed before we release (assuming I'm not the only one to repro)
Did a bisect using and it points to
In that case, it is most likely .


Question: * workbench command such as `workbench.action.terminal.runSelectedText` * ```typescript * const terminalRenderer = window.createTerminalRenderer('test'); <del> * terminalRenderer.onInput(data => { </del> <ins> * terminalRenderer.onDidAcceptInput(data => { </ins> *   cosole.log(data); // 'Hello world' * }); * terminalRenderer.terminal.then(t => t.sendText('Hello world')); * ``` */ <del> onInput: Event<string>; </del> <ins> onDidAcceptInput: Event<string>; </ins> /** * An event which fires when the [maximum dimensions](#TerminalRenderer.maimumDimensions) of

re see
same for
Same is true for Wanted to reuse the issue but didn't read all comments. Ignore mine. already mentioned it.
I'll change them to ,


Question: import { IEditorMemento, IEditorOpenContext, IEditorPane } from 'vs/workbench/common/editor'; import { SuggestEnabledInput } from 'vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput'; import { SettingsTarget, SettingsTargetsWidget } from 'vs/workbench/contrib/preferences/browser/preferencesWidgets'; <del> import { getCommonlyUsedData, tocData } from 'vs/workbench/contrib/preferences/browser/settingsLayout'; </del> <ins> import { ITOCEntry, getCommonlyUsedData, tocData } from 'vs/workbench/contrib/preferences/browser/settingsLayout'; </ins> import { AbstractSettingRenderer, HeightChangeParams, ISettingLinkClickEvent, resolveConfiguredUntrustedSettings, createTocTreeForExtensionSettings, resolveSettingsTree, SettingsTree, SettingTreeRenderers } from 'vs/workbench/contrib/preferences/browser/settingsTree'; import { ISettingsEditorViewState, parseQuery, SearchResultIdx, SearchResultModel, SettingsTreeElement, SettingsTreeGroupChild, SettingsTreeGroupElement, SettingsTreeModel, SettingsTreeSettingElement } from 'vs/workbench/contrib/preferences/browser/settingsTreeModels'; import { createTOCIterator, TOCTree, TOCTreeModel } from 'vs/workbench/contrib/preferences/browser/tocTree';

<!-- 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?: Unknown- repro uses a virtual workspace <!-- 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: OS Version: Version: 1.80.0 Commit: Date: 2023-07-04T15:06:02.407Z Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.80.0 Chrome/108.0.5359.215 Electron/22.3.14 Safari/537.36 Steps to Reproduce: a Github repository using "GitHub Repositories" extension, eg microsoft/vscode "Settings (JSON)" and add all tabs except Getting Started Extensions panel, search for " typescript" the Typescript and JavaScript Language Features extension and Reload Window "Settings (UI)" and search for typescript- no settings appear. Close "Settings (UI)" Extensions panel, search for " typescript" and re-enable the extension. Note, the extension activates immediately, the panel doesn't recommend Reload Window. "Settings (UI)" and search for typescript- Actual: no settings appear. Expected: settings appear


Question: '...' ]); }); <ins> test('Should match non-greedily', () => { assert.deepStrictEqual(parseLinkedText('a [link text 1](http://link.href "title1") b [link text 2](http://link.href "title2") c').nodes, [ 'a ', { label: 'link text 1', href: 'http://link.href', title: 'title1' }, ' b ', { label: 'link text 2', href: 'http://link.href', title: 'title2' }, ' c', ]); }); </ins> });


Question: private _terminalProfiles: ReadonlyArray<IExtensionTerminalProfile> = []; get terminalProfiles() { return this._terminalProfiles; } <del> private _quickFixes: Array<ITerminalCommandSelector> = []; get quickFixes() { return this._quickFixes; } </del> <ins> quickFixes: Promise<Array<ITerminalCommandSelector>>; </ins> constructor() { <del> terminalsExtPoint.setHandler(contributions => { </del> <ins> this.quickFixes = new Promise((r) => terminalsExtPoint.setHandler(contributions => { </ins> this._terminalProfiles = contributions.map(c => { return c.value?.profiles?.filter(p => hasValidTerminalIcon(p)).map(e => { return { ...e, extensionIdentifier: c.description.identifier.value }; }) || []; }).flat(); <del> this._quickFixes = (contributions.filter(c => isProposedApiEnabled(c.description, 'terminalQuickFixProvider')).map(c => c.value.quickFixes ? c.value.quickFixes.map(fix => { return { ...fix, extensionIdentifier: c.description.identifier.value }; }) : [])).flat(); }); </del> <ins> const quickFixes = (contributions.filter(c => isProposedApiEnabled(c.description, 'terminalQuickFixProvider')).map(c => c.value.quickFixes ? c.value.quickFixes.map(fix => { return { ...fix, extensionIdentifier: c.description.identifier.value }; }) : [])).flat(); r(quickFixes); })); </ins> } }

Running out of sources I see this:
This means that the contribution isn't getting evaluated before is called. Not too familiar with how / when is handled, but we call when the is created
I think perhaps moving that to the top of the constructor (before registering the command handlers) will fix this
This happens on window open
and the quick fix does work for that extension !
Seeing this in error telemetry for Insiders from 12/23:
This is the 6th error by machines in telemetry https://vscode-
I cannot reproduce this in Insider's. did you notice this after doing anything in particular?
I got this error when using remote dev container <details<summaryWindow</summary</details
Fixed in
Actually still found it in my devtools today:
I can't reproduce, but I can simulate the race by adding to 's promise in
HI, im having the same problem here 2023-02-16 17:10:14.453 [error] Error: No registered selector for ID: ms- at R.registerQuickFixProvider (vscode-file://vscode-) at r.$registerQuickFixProvider (vscode-file://vscode-) at m.N (vscode-file://vscode-) at m.M (vscode-file://vscode-) at m.H (vscode-file://vscode-) at m.G (vscode-file://vscode-) at vscode-file://vscode- at g.invoke (vscode-file://vscode-) at n.deliver (vscode-file://vscode-) at a.fire (vscode-file://vscode-) at r.fire (vscode-file://vscode-) at Z.onmessage (vscode-file://vscode-) I got vs code 1.71.1 running on W11 21H2 How i am supposed to fix this, or it's not a problem and vs code is working normally? Thank you!
Update your VS code version, where this is fixed
Sorry, i typed incorrectly mi vs code version. It is the latest one 1.75.1, i reinstalled it today.
I can still reproduce in latest stabel 1.75.1 https://user-


Question: new Promise<string | undefined>(resolve => setTimeout(() => resolve(''), 2000)) ]); <del> this.treatment = extensions ? JSON.parse(extensions) : { extensions: [] }; </del> <ins> try { this.treatment = extensions ? JSON.parse(extensions) : { extensions: [] }; } catch { } </ins> this.title = extensionListTitle ?? localize('gettingStarted.featuredTitle', 'Featured'); <del> if (this.treatment) { </del> <ins> if (this.treatment?.extensions && Array.isArray(this.treatment.extensions)) { </ins> const installed = await this.extensionManagementService.getInstalled(); <del> for (const extension of Object.values(this.treatment.extensions)) { </del> <ins> for (const extension of this.treatment.extensions) { </ins> if (installed.some(e => ExtensionIdentifier.equals(e.identifier.id, extension))) { this.ignoredExtensions.add(extension); }

Testing Not sure if actually caused by welcome page bug In dev tools, see:
I can't repro this on my mac. Please feel free to reopen this issue if you see this again on your machine.
Yes I still see this every time I open the welcome page. Maybe it's because of an extension I have installed that is getting parsed oddly or an experiment? The exception is thrown here:


Question: assertSelections(editor, new Selection(1, 1, 1, 7), new Selection(2, 5, 2, 11)); editor.trigger('test', 'cut', {}); <del> assertContextKeys(contextKeys, false, false, false); </del> <ins> assertContextKeys(contextKeys, true, false, true); </ins> assertSelections(editor, new Selection(1, 1, 1, 1), new Selection(2, 5, 2, 5)); editor.trigger('test', 'type', { text: 'abc' }); <del> assertContextKeys(contextKeys, false, false, false); </del> <ins> assertContextKeys(contextKeys, true, false, true); </ins> ctrl.next(); assertContextKeys(contextKeys, false, false, false);

<!-- 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: this._updateState(); <del> // we listen on model and selection changes. usually // both events come in together and this is to prevent // that we don't call _updateState twice. let state: EditorState; let dedupedUpdateState = () => { if (!state || !state.validate(this._editor)) { this._updateState(); state = new EditorState(this._editor, CodeEditorStateFlag.Selection | CodeEditorStateFlag.Value); } }; </del> this._snippetListener = [ <del> this._editor.onDidChangeModelContent(e => { if (e.isFlush) { this.cancel(); } else { setTimeout(dedupedUpdateState, 0); } }), this._editor.onDidChangeCursorSelection(dedupedUpdateState), </del> <ins> this._editor.onDidChangeModelContent(e => e.isFlush && this.cancel()), </ins> this._editor.onDidChangeModel(() => this.cancel()), <ins> this._editor.onDidChangeCursorSelection(() => this._updateState()) </ins> ]; }


Question: configuration.isInitialStartup = false; // since this is a reload configuration.policiesData = this.policyService.serialize(); // set policies data again <del> configuration.editSessionId = this.environmentMainService.editSessionId; // set latest edit session id </del> configuration.profiles = { all: this.userDataProfilesService.profiles, current: this.profile || this.userDataProfilesService.defaultProfile,

Originally reported by
Friendly ping! Looks like this issue requires some further steps to be verified. Please provide us with the steps necessary to verify this issue.
would you mind verifying this one please?


Question: import {ActionItem, BaseActionItem, Separator} from 'vs/base/browser/ui/actionbar/actionbar'; import {Scope, IActionBarRegistry, Extensions as ActionBarExtensions, ActionBarContributor} from 'vs/workbench/browser/actionBarRegistry'; import {IEditorInputActionContext, IEditorInputAction, EditorInputActionContributor} from 'vs/workbench/browser/parts/editor/baseEditor'; <del> import {AddToWorkingFiles, FocusWorkingFiles, FocusFilesExplorer, OpenPreviousWorkingFile, OpenNextWorkingFile, CloseAllFilesAction, CloseFileAction, CloseOtherFilesAction, GlobalCompareResourcesAction, GlobalNewFolderAction, RevertFileAction, SaveFilesAction, SaveAllAction, SaveFileAction, keybindingForAction, MoveFileToTrashAction, TriggerRenameFileAction, PasteFileAction, CopyFileAction, SelectResourceForCompareAction, CompareResourcesAction, NewFolderAction, NewFileAction, OpenToSideAction, ShowActiveFileInExplorer} from 'vs/workbench/parts/files/browser/fileActions'; </del> <ins> import {AddToWorkingFiles, FocusWorkingFiles, FocusFilesExplorer, OpenPreviousWorkingFile, OpenNextWorkingFile, CloseAllFilesAction, CloseFileAction, CloseOtherFilesAction, GlobalCompareResourcesAction, GlobalNewFileAction, GlobalNewFolderAction, RevertFileAction, SaveFilesAction, SaveAllAction, SaveFileAction, keybindingForAction, MoveFileToTrashAction, TriggerRenameFileAction, PasteFileAction, CopyFileAction, SelectResourceForCompareAction, CompareResourcesAction, NewFolderAction, NewFileAction, OpenToSideAction, ShowActiveFileInExplorer} from 'vs/workbench/parts/files/browser/fileActions'; </ins> import {RevertLocalChangesAction, AcceptLocalChangesAction, ConflictResolutionDiffEditorInput} from 'vs/workbench/parts/files/browser/saveErrorHandler'; import {SyncActionDescriptor} from 'vs/platform/actions/common/actions'; import {IWorkbenchActionRegistry, Extensions as ActionExtensions} from 'vs/workbench/common/actionRegistry';

VSCode Version: 1.0.0 OS Version: OSX 10.11.3 I noticed that we can set to a keybinding. Which creates a nice input field in the sidebar to create the directory at the current selected position. ! But there is no possibility to do this for a file. Yes you can bind but it does not do the same thing. It just creates a new and when pressing <kbdcmd</kbd+ <kbds</kbdyou have to choose the destination in a picker. So, is it possible to add something for a new file as well? It would really improve my speed because I don't have to touch my mouse anymore to create a new named file in a specific directory.
sounds like a good example for a PR?
Yes I looked into it but to be honest, I have to clue where to start :). So if you can point me in the right direction, I would be very happy to do one :).
I would start by fulltext search for the action id () and that brings you here: From there you can get a feeling how this global action works and maybe add the new one. You will also see the one on top for creating an untitled file (which is not what you want). When you find the references of that action you will see where it is being registered to the system:
Alright, awesome. Thank you very much Will see what I can do :).


Question: import { ICommandHandlerDescription } from 'vs/platform/commands/common/commands'; import { ExtHostCommands } from 'vs/workbench/api/node/extHostCommands'; import { IWorkspaceSymbolProvider } from 'vs/workbench/parts/search/common/search'; <del> import { IEditorOptions } from 'vs/platform/editor/common/editor'; </del> <ins> import { ITextEditorOptions } from 'vs/platform/editor/common/editor'; </ins> export class ExtHostApiCommands {

For
Verify: write an extension that exercises the following APIs by passing in a selection as option and verify the selection is revealed and showing up in the opened editor: command API Provide a property of type to get it. !


Question: id: AccessibilityCommandId.AccessibleViewAcceptInlineCompletion, precondition: ContextKeyExpr.and(accessibleViewIsShown, ContextKeyExpr.equals(accessibleViewCurrentProviderId.key, AccessibleViewProviderId.InlineCompletions)), keybinding: { <del> primary: KeyMod.CtrlCmd | KeyCode.Slash, mac: { primary: KeyMod.WinCtrl | KeyCode.Slash }, </del> <ins> primary: KeyMod.CtrlCmd | KeyCode.Enter, mac: { primary: KeyMod.WinCtrl | KeyCode.Enter }, </ins> weight: KeybindingWeight.WorkbenchContrib }, icon: Codicon.check,

is used in the inline chat widget to accept a suggestion is used in the accessible view to accept an inline completion suggestion There is no keybinding to insert the current chat code block suggestion at the current cursor location is used to submit a comment from within a comment widget suggested aligning these. what do you think of adding a default keybinding of for inserting the current chat code block at the current cursor location? I will change the inline completion suggestion acceptance in the accessible view to .
-- Did you mean ? I think can be used for submission. There is no issue with this key. Submitting pull request, for example, is also . However, when Accepting something, we may want to use for the consistency.
I was suggesting we align all of these to use rather than .
I don't think people will be in favor of to accept in the inline chat widget as that would break muscle memory.
-- FYI, the following keybinding is also :
I've refined the original content of this issue to reflect the ask. We shall see what people say.
Here is my summary: for submitting actions. Evidence: GitHub Pull Request uses this keybinding. Also, "Report Issue" under Help menu also adopts as its default keybinding for submitting issue content. for accepting or inserting suggestions. Evidence: already uses this keybinding. Also, Accessible View adapted this for accepting the current inline suggestion.
I think that's not a good keybinding and that Ctrl+Enter is way better because it's easier to reach, e.g on a DE/CH keyboard you need to press Shift+7 to get /
I am then not against unifying all the listed keybindings in favor of .
To verify: Focus an editor Enable screen reader mode Focus a chat code block Use and verify that the code is inserted in the editor at the current cursor position


Question: export class UpdateManager extends events.EventEmitter { <del> private static DEFAULT_UPDATE_CHANNEL = 'stable'; </del> private _state: State; private explicitState: ExplicitState; private _availableUpdate: IUpdate;

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


Question: `${process.env['ProgramW6432']}Gitusrbinbash.exe`, `${process.env['ProgramFiles']}Gitbinbash.exe`, `${process.env['ProgramFiles']}Gitusrbinbash.exe`, <ins> `${process.env['LocalAppData']}ProgramsGitbinbash.exe`, </ins> ] }; const promises: TPromise<[string, string]>[] = [];

VSCode Version: Code 1.18.1 (, 2017-11-16T18:32:36.023Z) OS Version: Windows_NT x64 10.0. Extensions: none Git Bash is not included in the list of defaults if Git Bash is installed as the current user. However, adding the path manually to the user settings works just fine. eg. Steps to Reproduce: sure Git Bash isn't already installed the latest version from https://git- as current user to ~AppDataLocalProgramsGit


Question: import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { ILabelService } from 'vs/platform/label/common/label'; import { WorkbenchCompressibleObjectTree, getSelectionKeyboardEvent } from 'vs/platform/list/browser/listService'; <del> import { FastAndSlowPicks, IPickerQuickAccessItem, PickerQuickAccessProvider, Picks, TriggerAction } from 'vs/platform/quickinput/browser/pickerQuickAccess'; </del> <ins> import { FastAndSlowPicks, IPickerQuickAccessItem, IPickerQuickAccessSeparator, PickerQuickAccessProvider, Picks, TriggerAction } from 'vs/platform/quickinput/browser/pickerQuickAccess'; </ins> import { DefaultQuickAccessFilterValue, IQuickAccessProviderRunOptions } from 'vs/platform/quickinput/common/quickAccess'; <del> import { IKeyMods, IQuickPick, IQuickPickItem, IQuickPickSeparator, QuickInputHideReason } from 'vs/platform/quickinput/common/quickInput'; </del> <ins> import { IKeyMods, IQuickPick, IQuickPickItem, QuickInputHideReason } from 'vs/platform/quickinput/common/quickInput'; </ins> import { IWorkspaceContextService, IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { IWorkbenchEditorConfiguration } from 'vs/workbench/common/editor'; import { searchDetailsIcon, searchOpenInFileIcon, searchActivityBarIcon } from 'vs/workbench/contrib/search/browser/searchIcons';

! quick search. over a file name pick item and click the button to open the file. happens :bug:


Question: .review-widget .body .review-comment .review-comment-contents .comment-reactions .action-item a.action-label.toolbar-toggle-pickReactions { display: none; background-size: 16px; <ins> font-size: 16px; </ins> width: 26px; height: 16px; background-repeat: no-repeat;

Microsoft/vscode Tested using VoiceOver on MacOS Issues The add reaction button on the right side is currently read out atWhen focusing on a reaction in the context menu, it is read as just the emoji name. Github instead reads each option asThe existing reactions do not have helpful voice text. They should be read as the reaction name and number of reactionsThe add reaction button the right of existing reactions also does not have helpful voice over labels
This is now read as "Toggle Reaction" Since this uses a context menu, this is intentional. Menus don't have special aria labels. This now reads a more useful "Toggle reaction, x reactions with y" message. Same as above since this is a menu.
This seems improved but I can't get it to read the menu when I tab from the comment to the react menu button. It doesn't read anything when I use the arrow keys to move focus between menu buttons. If I expand the menu with space, then it reads the menu name. It looks like this, so I guess voiceover is stuck on the full comment context even though focus has moved. Not a voiceover expert though, is that an issue or should I be using other nav keys anyway? <img width="610" alt="image" src="https://user-"


Question: command: 'git.commit', title: l10n.t('{0} Continue', '$(check)'), tooltip: this.state.isCommitInProgress ? l10n.t('Continuing Rebase...') : l10n.t('Continue Rebase'), <del> arguments: [this.repository.sourceControl, ''] </del> <ins> arguments: [this.repository.sourceControl, null] </ins> }; }

Type: <bBug</bWhen I commit from the git extension, I frequently get an error message that "Git: Extention '' CANNOT use API proposal: telemetry". When I look at "Running Extensions", git reports 32 uncaught errors. I do not know if the two error counts are related. This only recently started happening (last couple of weeks). VS Code version: Code 1.85.1 (, 2023-12-13T09:49:37.021Z) OS version: WindowsNT x64 10.0. Modes: Remote OS version: Linux x64 5.15.90.1-microsoft-standard-WSL2 <details<summarySystem Info</summary </details<details<summaryExtensions (13)</summaryExtensionVersion ------ remote-containers0.327.0 remote-wsl0.81.8 rewrap1.16.3 markdown-table-prettify3.6.0 vscode-markdownlint0.53.0 git-graph1.30.0 python2023.22.1 vscode-pylance2023.12.1 cmake-tools1.16.32 cpptools1.18.5 rewrap1.16.3 cmake0.0.17 markdown-all-in-one3.6.1 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
/gifPlease
Thanks for reporting this issue! Unfortunately, it's hard for us to understand what issue you're seeing. Please help us out by providing a screen recording showing exactly what isn't working as expected. While we can work with most standard formats, files are preferred as they are displayed inline on GitHub. You may find helpful as a browser-based gif recording tool. If the issue depends on keyboard input, you can help us by enabling screencast mode for the recording ( in the command palette). Lastly, please attach this file via the GitHub web interface as emailed responses will strip files out from the issue. Happy coding!
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!
Here's an example of the ruling.
This bug is still active. I can't get rid of the problem.


Question: command: 'git.commit', title: l10n.t('{0} Continue', '$(check)'), tooltip: this.state.isCommitInProgress ? l10n.t('Continuing Rebase...') : l10n.t('Continue Rebase'), <del> arguments: [this.repository.sourceControl, ''] </del> <ins> arguments: [this.repository.sourceControl, null] </ins> }; }

My version of VSCode is: Versión: 1.85.2 (user setup) Confirmar: Fecha: 2024-01-18T06:40:10.514Z Electron: 25.9.7 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 SO: Windows_NT x64 10.0.
are you able to reproduce this issue every time you try to commit? When the error occurs, could you open the developer console using the "Developer: Toggle Developer Tools" command and share all the errors/warnings in there? Are you able to reproduce this issue with all the extensions disabled? Thanks!
Yes, every time I commit I have this problem. ! ! I only have 3 extensions, I disable them and the same problem occurs. ! Sorry for my English. I don't know if you mean this. But it's what I see when I open Toogle developer tools.
still getting it too. I have dozens of git repositories across multiple versions of git (development containers with different Linux versions, Windows, etc.) Happens frequently, but not always, but does seem to happen consistently on some repositories and not others.
thank you! After you reproduce the problem, could you also please send me the contents of ? Also, are you able to reproduce this issue with all extensions disabled? The easiest way to try this is to use the "Help: Troubleshoot Issue..." command from the command palette.
It seems that way. Thank you
Ok. First i delete output of git. ! After. I disable all extensions. ! After. I can one time more to make commit. ! New commit ! After commit ! Git output complet: 2024-02-01 10:24:20.195 [info] No remotes found in the git config file.


Question: command: 'git.commit', title: l10n.t('{0} Continue', '$(check)'), tooltip: this.state.isCommitInProgress ? l10n.t('Continuing Rebase...') : l10n.t('Continue Rebase'), <del> arguments: [this.repository.sourceControl, ''] </del> <ins> arguments: [this.repository.sourceControl, null] </ins> }; }

2024-02-01 10:24:20.244 [info] git config --get commit.template [54ms] 2024-02-01 10:24:20.244 [info] git for-each-ref --format %(refname) %(objectname) %(objectname) refs/tags [49ms] 2024-02-01 10:24:20.286 [info] git status -z -uall [39ms] 2024-02-01 10:26:19.989 [info] git add -A -- . [56ms] 2024-02-01 10:26:20.264 [info] git -c user.useConfigOnly=true commit --quiet --allow-empty-message --file - [269ms] 2024-02-01 10:26:20.308 [info] git config --get commit.template [39ms] 2024-02-01 10:26:20.317 [info] No remotes found in the git config file. 2024-02-01 10:26:20.364 [info] git config --get commit.template [49ms] 2024-02-01 10:26:20.372 [info] git for-each-ref --format %(refname) %(objectname) %(objectname) refs/tags [49ms] 2024-02-01 10:26:20.413 [info] git status -z -uall [38ms] 2024-02-01 10:26:20.480 [info] No remotes found in the git config file.


Question: command: 'git.commit', title: l10n.t('{0} Continue', '$(check)'), tooltip: this.state.isCommitInProgress ? l10n.t('Continuing Rebase...') : l10n.t('Continue Rebase'), <del> arguments: [this.repository.sourceControl, ''] </del> <ins> arguments: [this.repository.sourceControl, null] </ins> }; }

2024-02-01 10:26:20.528 [info] git config --get commit.template [51ms] 2024-02-01 10:26:20.533 [info] git for-each-ref --format %(refname) %(objectname) %(*objectname) refs/tags [54ms] 2024-02-01 10:26:20.579 [info] git status -z -uall [40ms] 2024-02-01 10:26:41.809 [info] git ls-files --stage -- C:UserssriccOneDrive - ICCADocumentosAngularSergieCodecargaPaginasAppsrcappcontacto [49ms] 2024-02-01 10:26:41.859 [info] git cat-file -s [43ms] 2024-02-01 10:26:41.908 [info] git show --textconv [42ms] I hope it's everything you've asked for.
SOLVED For me, I found out it was because I was on a detached head on Git. For some reason, reattaching to master solved it.
Thank you! I have to admit that it's not clear to me what is happening here. Let me chat with my colleagues and see if I can come up with an action plan.
+1 for gilad905's suggestion. I was able to easily repro the problem: new repo from command line. first commit. out main and commit from git source-control panel in vscode, works. out the new head (the second commit), detached. another change and try to commit it in vs code Expected: It works correctly Actual: The commit is created in the repository, but the "telemetry" error message shown above appears.
Thanks Fix for this will be in Monday's VS Code Insiders release. Apologies for the inconvenience!
thanks
I am not, and have not been using repos. Sorry this is not the only problem occuring.
please share your repro steps in case you are able to reproduce with the latest VS Code Insiders release. Thanks!


Question: import { IChatService } from 'vs/workbench/contrib/chat/common/chatService'; import { setupCustomHover } from 'vs/base/browser/ui/hover/updatableHoverWidget'; import { getDefaultHoverDelegate } from 'vs/base/browser/ui/hover/hoverDelegateFactory'; <ins> import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; </ins> export interface InlineChatWidgetViewState {

Just asked hi: ! Expected: ! Version: 1.88.0-insider (user setup) Commit: Date: 2024-03-25T05:49:32.344Z Electron: 28.2.6 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Windows_NT x64 10.0. GitHub Copilot Chat v0.14. (pre-release)
because of
To verify configure have a very wide view port ask AI to change some code make sure the input widget is full width of the zone widget


Question: import { IChatService } from 'vs/workbench/contrib/chat/common/chatService'; import { setupCustomHover } from 'vs/base/browser/ui/hover/updatableHoverWidget'; import { getDefaultHoverDelegate } from 'vs/base/browser/ui/hover/hoverDelegateFactory'; <ins> import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; </ins> export interface InlineChatWidgetViewState {

cmd+i now cmd+backspace invokes instead of deleting the line in the text editor The ChatWidget is writing its context keys to the editor's ContextKeyService, so we need a scoped CKS at some point, either inside the ChatWidget or outside in the inline widgets
pushing a fix to use a scoped CKS but this does look like debt. Isn't a better fix to reset context keys when hiding/dispose the chat widget?
I don't think those context keys should be applied on the editor at all, they are intended to just be active inside the widget's dom tree.


Question: <ins> [ { "c": "// from https://flutter.dev/", "t": "source.dart comment.line.double-slash.dart", "r": { "dark_plus": "comment: #6A9955", "light_plus": "comment: #008000", "dark_vs": "comment: #6A9955", "light_vs": "comment: #008000", "hc_black": "comment: #7CA668" } }, { "c": "import", "t": "source.dart meta.declaration.dart keyword.other.import.dart", "r": { "dark_plus": "keyword: #569CD6", "light_plus": "keyword: #0000FF", "dark_vs": "keyword: #569CD6", "light_vs": "keyword: #0000FF", "hc_black": "keyword: #569CD6" } }, { "c": " ", "t": "source.dart meta.declaration.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "'package:flutter/material.dart'", "t": "source.dart meta.declaration.dart string.interpolated.single.dart", "r": { "dark_plus": "string: #CE9178", "light_plus": "string: #A31515", "dark_vs": "string: #CE9178", "light_vs": "string: #A31515", "hc_black": "string: #CE9178" } }, { "c": ";", "t": "source.dart meta.declaration.dart punctuation.terminator.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "void", "t": "source.dart storage.type.primitive.dart", "r": { "dark_plus": "storage.type: #569CD6", "light_plus": "storage.type: #0000FF", "dark_vs": "storage.type: #569CD6", "light_vs": "storage.type: #0000FF", "hc_black": "storage.type: #569CD6" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "main", "t": "source.dart entity.name.function.dart", "r": { "dark_plus": "entity.name.function: #DCDCAA", "light_plus": "entity.name.function: #795E26", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "entity.name.function: #DCDCAA" } }, { "c": "() ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "async", "t": "source.dart keyword.control.dart", "r": { "dark_plus": "keyword.control: #C586C0", "light_plus": "keyword.control: #AF00DB", "dark_vs": "keyword.control: #569CD6", "light_vs": "keyword.control: #0000FF", "hc_black": "keyword.control: #C586C0" } }, { "c": " {", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "  ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "runApp", "t": "source.dart entity.name.function.dart", "r": { "dark_plus": "entity.name.function: #DCDCAA", "light_plus": "entity.name.function: #795E26", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "entity.name.function: #DCDCAA" } }, { "c": "(", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "    ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "MaterialApp", "t": "source.dart support.class.dart", "r": { "dark_plus": "support.class: #4EC9B0", "light_plus": "support.class: #267F99", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "support.class: #4EC9B0" } }, { "c": "(", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "      debugShowCheckedModeBanner", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": ":", "t": "source.dart keyword.operator.ternary.dart", "r": { "dark_plus": "keyword.operator: #D4D4D4", "light_plus": "keyword.operator: #000000", "dark_vs": "keyword.operator: #D4D4D4", "light_vs": "keyword.operator: #000000", "hc_black": "keyword.operator: #D4D4D4" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "false", "t": "source.dart constant.language.dart", "r": { "dark_plus": "constant.language: #569CD6", "light_plus": "constant.language: #0000FF", "dark_vs": "constant.language: #569CD6", "light_vs": "constant.language: #0000FF", "hc_black": "constant.language: #569CD6" } }, { "c": ",", "t": "source.dart punctuation.comma.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "      home", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": ":", "t": "source.dart keyword.operator.ternary.dart", "r": { "dark_plus": "keyword.operator: #D4D4D4", "light_plus": "keyword.operator: #000000", "dark_vs": "keyword.operator: #D4D4D4", "light_vs": "keyword.operator: #000000", "hc_black": "keyword.operator: #D4D4D4" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "Scaffold", "t": "source.dart support.class.dart", "r": { "dark_plus": "support.class: #4EC9B0", "light_plus": "support.class: #267F99", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "support.class: #4EC9B0" } }, { "c": "(", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "        body", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": ":", "t": "source.dart keyword.operator.ternary.dart", "r": { "dark_plus": "keyword.operator: #D4D4D4", "light_plus": "keyword.operator: #000000", "dark_vs": "keyword.operator: #D4D4D4", "light_vs": "keyword.operator: #000000", "hc_black": "keyword.operator: #D4D4D4" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "MyApp", "t": "source.dart support.class.dart", "r": { "dark_plus": "support.class: #4EC9B0", "light_plus": "support.class: #267F99", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "support.class: #4EC9B0" } }, { "c": "()", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": ",", "t": "source.dart punctuation.comma.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "      )", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": ",", "t": "source.dart punctuation.comma.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "    )", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": ",", "t": "source.dart punctuation.comma.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "  )", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": ";", "t": "source.dart punctuation.terminator.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "}", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "class", "t": "source.dart keyword.declaration.dart", "r": { "dark_plus": "keyword: #569CD6", "light_plus": "keyword: #0000FF", "dark_vs": "keyword: #569CD6", "light_vs": "keyword: #0000FF", "hc_black": "keyword: #569CD6" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "MyApp", "t": "source.dart support.class.dart", "r": { "dark_plus": "support.class: #4EC9B0", "light_plus": "support.class: #267F99", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "support.class: #4EC9B0" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "extends", "t": "source.dart keyword.declaration.dart", "r": { "dark_plus": "keyword: #569CD6", "light_plus": "keyword: #0000FF", "dark_vs": "keyword: #569CD6", "light_vs": "keyword: #0000FF", "hc_black": "keyword: #569CD6" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "StatefulWidget", "t": "source.dart support.class.dart", "r": { "dark_plus": "support.class: #4EC9B0", "light_plus": "support.class: #267F99", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "support.class: #4EC9B0" } }, { "c": " {", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "  ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "@override", "t": "source.dart storage.type.annotation.dart", "r": { "dark_plus": "storage.type: #569CD6", "light_plus": "storage.type: #0000FF", "dark_vs": "storage.type: #569CD6", "light_vs": "storage.type: #0000FF", "hc_black": "storage.type: #569CD6" } }, { "c": "  ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "_MyAppState", "t": "source.dart support.class.dart", "r": { "dark_plus": "support.class: #4EC9B0", "light_plus": "support.class: #267F99", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "support.class: #4EC9B0" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "createState", "t": "source.dart entity.name.function.dart", "r": { "dark_plus": "entity.name.function: #DCDCAA", "light_plus": "entity.name.function: #795E26", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "entity.name.function: #DCDCAA" } }, { "c": "() ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "=>", "t": "source.dart keyword.operator.closure.dart", "r": { "dark_plus": "keyword.operator: #D4D4D4", "light_plus": "keyword.operator: #000000", "dark_vs": "keyword.operator: #D4D4D4", "light_vs": "keyword.operator: #000000", "hc_black": "keyword.operator: #D4D4D4" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "_MyAppState", "t": "source.dart support.class.dart", "r": { "dark_plus": "support.class: #4EC9B0", "light_plus": "support.class: #267F99", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "support.class: #4EC9B0" } }, { "c": "()", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": ";", "t": "source.dart punctuation.terminator.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "}", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } } ] </ins>  No newline at end of file

Following on from comments at , it would be good to have basic Dart language configuration as a built-in extension in VS Code, allowing things like syntax highlighting to in the case where the Dart extension is not installed (for example a Live Share client that hasn't installed it) or is disabled (for example in an Untrusted workspace). From : There is a Dart Team-owned grammar here that can be used - it's the (except for a small bug fix that I'll file an upstream PR for shortly): Great! Though what's the advantage of depending on the built-in extension? I try to support a few-versions-old VS Code where possible (so wouldn't do that for a few versions) but also the extension is published to open- for use by other clients so the dependency may complicate things (if they don't have the same built-in). I'd probably do some investigation into this before removing anything from Dart-Code then (it sounds like there's no downside to having the grammar/config provided by both for a period anyway). (fyi
It also works without a dependency, but only because the extension is built-in. No problem if the Dart extension keeps the grammar and language configurations for a while until it is all settled. Do you want to look into a PR or should I?
If it's easier/quicker for you to do, feel free. Otherwise I'm happy to do it but may need some pointers for how built-in extensions are set up.
I pushed the PR We have a new built-in language :-)
Super, thanks! For future reference - for changes to the language config I can send a PR to , and for grammar changes I can run (after the changes are landed in the upstream dart-lang repo)?
I just noticed in the it has the path but this doesn't seem to match the location of the file ?
Good catch, thanks. Pushed the fix:
For grammar changes, I'll pull them in about once per month so you can just rely on that if you want. If there's a change that needs to be picked up sooner than that, then feel free to make an issue an @ mention me and I'll pull in the change earlier.
Perfect, thanks!
is this support in the Code May Update (1.57) that just went out?
Yes, in microsoft/vscode you can tell what release an issue is in by looking at the Milestone. !
Yep!