jiebi/CodeConvo huggingface dataset:
Change:
super(); this._register(AccessibleViewAction.addImplementation(100, 'panelChat', accessor => { const accessibleViewService = accessor.get(IAccessibleViewService); <del> const codeEditorService = accessor.get(ICodeEditorService); const editor = codeEditorService.getActiveCodeEditor() || codeEditorService.getFocusedCodeEditor(); </del> const widgetService = accessor.get(IChatWidgetService); <del> const editorUri = editor?.getModel()?.uri; </del> const widget: IChatWidget | undefined = widgetService.lastFocusedWidget; const focusedItem: ChatTreeItem | undefined = widget?.getFocus(); <del> if (!widget || !focusedItem) { </del> <ins> if (!widget || !focusedItem || !isResponseVM(focusedItem)) { </ins> return false; } <del> const codeBlockInfo = editorUri ? widget!.getCodeBlockInfoForEditor(editorUri) : undefined; let responseItem: ChatTreeItem | undefined; if (codeBlockInfo) { responseItem = codeBlockInfo.element; } else { responseItem = widget!.viewModel?.getItems().reverse().find((item): item is IChatResponseViewModel => isResponseVM(item)); } if (!isResponseVM(responseItem)) { return false; } const responseContent = responseItem?.response.value; </del> <ins> const responseContent = focusedItem?.response.value; </ins> if (!responseContent) { return false; }

Discussion:
Accessible view should show content of currently focused chat message, of the most recent if the textbox has focus. Currently if I focus some message in the past and hit alt+f2, it brings up the most recent message instead.
This should be working Are you focusing a response? Or a request? It only works for responses since a user will not need to inspect their request more closely.
This didn't come up in testing via the TPI which is surprising if it's not working.
Focusing responses it definitely happens for me: !
Yeah something changed as this used to work. I can repro
Change:
this._dimension = dimension; this._position = position; <del> const newBodyHeight = Math.max(dimension.height - (this._notebookTopToolbar?.useGlobalToolbar ? /** Toolbar height */ 26 : 0), 0); </del> <ins> const newBodyHeight = this.getBodyHeight(dimension.height); </ins> DOM.size(this._body, dimension.width, newBodyHeight); const topInserToolbarHeight = this._notebookOptions.computeTopInsertToolbarHeight(this.viewModel?.viewType);

Discussion:
a notebook where two cells take up more than the scrollable region between the two cells, note how far down the region scrolls the panel off/on between the two cells again the scroll placement is different because returns a different value. !
Change:
await writeP(xterm, 'x1b]633;P;Cwd=/foox07'); mock.verify(); }); <ins> suite('detect `OSC 7; scheme://cwd ST`', async () => { suite('should extract CWD from URL format', async () => { test('should accept well-formatted URLs', async () => { type TestCase = [title: string, input: string, expected: string]; const cases: TestCase[] = [ // Different hostname values: ['empty hostname, pointing root', 'file:///', '/'], ['empty hostname', 'file:///test-root/local', '/test-root/local'], ['non-empty hostname', 'file://some-hostname/test-root/local', '/test-root/local'], // URL-encoded chars: ['URL-encoded value (1)', 'file:///test-root/%6c%6f%63%61%6c', '/test-root/local'], ['URL-encoded value (2)', 'file:///test-root/local%22', '/test-root/local"'], ['URL-encoded value (3)', 'file:///test-root/local"', '/test-root/local"'], ]; for (const x of cases) { const [title, input, expected] = x; const mock = shellIntegrationAddon.getCwdDectionMock(); mock.expects('updateCwd').once().withExactArgs(expected).named(title); await writeP(xterm, `x1b]7;${input}x07`); mock.verify(); } }); test('should ignore ill-formatted URLs', async () => { type TestCase = [title: string, input: string]; const cases: TestCase[] = [ // Different hostname values: ['no hostname, pointing root', 'file://'], // Non-`file` scheme values: ['no scheme (1)', '/test-root'], ['no scheme (2)', '//test-root'], ['no scheme (3)', '///test-root'], ['no scheme (4)', ':///test-root'], ['http', 'http:///test-root'], ['ftp', 'ftp:///test-root'], ['ssh', 'ssh:///test-root'], ]; for (const x of cases) { const [title, input] = x; const mock = shellIntegrationAddon.getCwdDectionMock(); mock.expects('updateCwd').never().named(title); await writeP(xterm, `x1b]7;${input}x07`); mock.verify(); } }); }); }); </ins> }); suite('command tracking', async () => {

Discussion:
Part of We want to support other common shell integration sequences as fallbacks to the VS Code specific one ()
can you add verification steps for this?
On Windows Disable shell integration Open pwsh 7+ Run the following: It should change the terminal tab's description to .

Part of We want to support other common shell integration sequences as fallbacks to the VS Code specific one ()
can you add verification steps for this?
Disable shell integration Open pwsh 7+ Run the following: It should change the terminal tab's description to .

Part of We want to support other common shell integration sequences as fallbacks to the VS Code specific one () Code pointer:
I'm taking this.
sounds good
I've just submitted the PR. You can check it anytime you want.
can you add verification steps for this?
Disable shell integration Open pwsh 7+ Run the following: It should change the terminal tab's description to .
Change:
import { DisposableStore, IDisposable, dispose } from 'vs/base/common/lifecycle'; import * as objects from 'vs/base/common/objects'; import * as resources from 'vs/base/common/resources'; <ins> import { ThemeIcon } from 'vs/base/common/themables'; </ins> import { URI as uri } from 'vs/base/common/uri'; import * as nls from 'vs/nls'; import { ConfigurationTarget, IConfigurationService } from 'vs/platform/configuration/common/configuration';

Discussion:
Type: <bBug</bI'm developing an extension for VSCode and found out that I can't enable Dynamic Debug Configurations unless I include in the list of activation events. I have tried not including this activation event but having my extension activated through other means (like activated on language), but the feature doesn't work. Only when I include , this feature works. My extension is now working properly, but I wouldn't be surprised if this prevents other extension developers from using this feature. I have found this very old post of someone who might have had that exact same issue VS Code version: Code 1.84.2 (Universal) (, 2023-11-09T10:52:33.687Z) OS version: Darwin arm64 23.1.0 Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (36)</summaryExtensionVersion ------ vscode-markdownlint0.52.0 gitlens14.5.0 prettier-vscode10.1.0 custom-local-formatters0.0.6 vscode-clangd0.1.24 vscode-mlir0.0.11 rainbow-csv3.8.0 vscode-mojo5.0.4-dev csdevkit1.0.14 csharp2.10.28 vscode-dotnet-runtime2.0.0 vscodeintellicode-csharp0.1.26 black-formatter2023.6.0 isort2023.10.1 python2023.20.0 vscode-pylance2023.11.10 jupyter2023.10.

jupyter-keymap1.1.2 jupyter-renderers1.0.17 vscode-jupyter-cell-tags0.1.8 vscode-jupyter-slideshow0.1.5 remote-containers0.321.0 remote-ssh0.107.0 remote-ssh-edit0.86.0 remote-wsl0.81.8 vscode-remote-extensionpack0.24.0 cpptools1.18.5 cpptools-extension-pack1.3.0 remote-explorer0.4.1 remote-server1.5.0 reflow-paragraph1.3.0 errorlens3.15.0 vscode-icons12.6.0 vim1.27.0 clang-format1.9.0 markdown-all-in-one3.5.1 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Can you explain a bit more what doesn't work?
, thanks for looking into this. I have an extension with a working debugger feature via file. I'm trying to register a DebugConfigurationProvider with kind = that implements . And, unless, I add as an activation event, my new provider doesn't get invoked at all and I don't see an entry for my debugger in the selector of the Debug View. I have confirmed that my extension was initialized right after VSCode is launched. It's as if this kind of provider is only enabled if the activation event is present.
There's some discussion about this in you've touched this too, should this be changed or just documented in
I think changing it is fine. An extension should register an activation for it, but this isn't something we enforce for any other API. Will take care of it.
Change:
import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; import { DisposableStore } from 'vs/base/common/lifecycle'; import { localize } from 'vs/nls'; <ins> import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; </ins> import { InstantiationType, registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry';

Discussion:
cc
Alternative idea: Using the symbol analogy, you could consider both links and commands close to symbols, so why not present both in the same quick pick, regardless of screen reader mode?
Great idea. The only concern is that presenting both info in one quick pick might be too messy and cause unnecessary confusion.
Yeah already said it's tough to navigate the quickpick as is. Nice idea, but I fear that would complicate things
do the headers in the quick pick not work well in screen readers? After filtering should we be announcing something like x items in header1, y items in header2?
An issue is that it wraps around when using arrow keys. So, for example, using the link quick pick is odd because you can wrap around to some pretty irrelevant "word link" results quite easily.
We could have this be one command but make the user select which type they're interested in IE or as the first step
Configuring on first use like that can be a bad experience as you don't know what you want initially and may not know how to change it after. Perhaps there should be a filter for workspace search links, like , and/or we hide non-relevant looking ones unless you hit show more links.
Oh, I didn't mean configuring. I meant showing that option every time the command is used.
IMO, these should remain separate commands because the point of a quick pick is you know what you're getting and don't have to go looking for a particular category - it's quick
Can you please provide steps to verify?
Steps were to check open detected link and navigate accessible buffer commands have differing keybindings and both work !
Change:
resolved "https://registry.yarnpkg.com/fast-plist/-/fast-plist-0.1.2.tgz#a45aff345196006d406ca6cdcd05f69051ef35b8" integrity sha1-pFr/NFGWAG1AbKbNzQX2kFHvNbg= <del> typescript@^4.6.1-rc: version "4.6.1-rc" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.1-rc.tgz#75baa823a6fca592f358b486acc2039f103ca2af" integrity sha512-tLPT3GelVfTN9wXPOuPKfY83PkMvgdF3V3gHK/ElNrpQPdLKQ/HMU5cS6+7epYSIF2gne190jzydAW0FLLwU7A== </del> <ins> typescript@4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== </ins> vscode-grammar-updater@^1.0.3: version "1.0.3"

Discussion:
Tracks including TS 4.6 in VS Code See and the TS repo for details on upcoming features
Change:
} else if ((one as ITerminalProfileSource).source && (two as ITerminalProfileSource).source) { const oneSource = (one as ITerminalProfileSource); const twoSource = (two as ITerminalProfileSource); <del> return oneSource.source === twoSource.source; </del> <ins> return oneSource.source === twoSource.source && ((Array.isArray(oneSource.args) && Array.isArray(twoSource.args) && oneSource.args?.every((a, index) => a === twoSource.args?.[index])) || (oneSource.args === twoSource.args) ); </ins> } return false; }

Discussion:
fixed with
To verify on Windows: a new terminal profile with source set to powershell a -NoProfile arg sure it launches a no profile pwsh session
Change:
afterContentClassName: 'inline-folded', className: 'folded-background', isWholeLine: true, <del> linesDecorationsClassName: 'codicon codicon-chevron-right' </del> <ins> firstLineDecorationClassName: 'codicon codicon-chevron-right' </ins> }); private static readonly EXPANDED_AUTO_HIDE_VISUAL_DECORATION = ModelDecorationOptions.register({ stickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges, <del> linesDecorationsClassName: 'codicon codicon-chevron-down' </del> <ins> isWholeLine: true, firstLineDecorationClassName: 'codicon codicon-chevron-down' </ins> }); private static readonly EXPANDED_VISUAL_DECORATION = ModelDecorationOptions.register({ stickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges, <ins> isWholeLine: true, firstLineDecorationClassName: 'codicon codicon-chevron-down alwaysShowFoldIcons' </ins> }); private static readonly HIDDEN_RANGE_DECORATION = ModelDecorationOptions.register({

Discussion:
When a section is wrapped after folding. Fold its parent with itself unfolded will display several wrong fold indicators.
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.724 --- <!-- score: 0.616 --- <!-- score: 0.606 --- <!-- score: 0.575 --- <!-- score: 0.569 --<!-- potentialduplicatescomment --
!
Change:
} } <del> public async sendAdditionalTelemetryInfo(token: string): Promise<void> { </del> <ins> public async sendAdditionalTelemetryInfo(session: vscode.AuthenticationSession): Promise<void> { </ins> if (!vscode.env.isTelemetryEnabled) { return; }

Discussion:
<!-- 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: NA OS Version: NA Steps to Reproduce: The github education team sees about calls from Visual-studio-code in an hour for api/user. This is quite unusual and since we are rate limiting anyway, it is not an immediate issue. From initial discussions with I understand that the call is made only for telemetry and has no impact on the user. So, raising this bug, if we can find a better way to do telemetry without having to rate limit. This here shows some more details.
, can you please help me understand what is the likelihood of this work getting prioritised and by when can we expect to resolve this issue.
I wasn't able to get to it this week during our allocated debt time so I will try again to make time early April. I'll let you know if anything changes.
Change:
this._overlayContainer.style.position = 'absolute'; this._overlayContainer.style.overflow = 'hidden'; <del> if (this._isVisible) { this.layoutContainerOverShadowElement(dimension, position); } </del> <ins> this.layoutContainerOverShadowElement(dimension, position); </ins> if (this._webviewTransparentCover) { this._webviewTransparentCover.style.height = `${dimension.height}px`;

Discussion:
I was working with a notebook, switched tabs, and tried to switch back, now the editor is blank and my progress with the notebook is lost. this seems to repro every time.
stack is irrelevant, the issue can repro without any errors
Change:
private readonly _elements = h('div.monaco-component.multiDiffEditor', {}, [ h('div', {}, [this._scrollableElement.getDomNode()]), <del> h('div.placeholder@placeholder', {}, [h('div', [localize('noChangedFiles', 'No Changed Files') as any])]), </del> <ins> h('div.placeholder@placeholder', {}, [h('div')]), </ins> ]); private readonly _sizeObserver = this._register(new ObservableElementSizeObserver(this._element, undefined));

Discussion:
open a multifile diff reload window while the diff editor stores and loads it says that there are no changes yet <img width="1178" alt="Screenshot 2024-06-21 at 09 16 43" src=""
Thanks for filing! Briefly looked into it, but fixing it is a little bit more complex than I thought. The model creation is what takes a while, and during that time the multi file diff editor just has no model. It would be better if the model creation is immediate, but it has some property, that the editor could then show.
Change:
const detector = ServerReadyDetector.detectors.get(session); if (detector) { ServerReadyDetector.detectors.delete(session); <ins> detector.sessionStopped(); </ins> detector.dispose(); } }

Discussion:
I'm trying to use the configuration from website, but I'm facing a problem with the third option. I would like to use like these: and . But I can't find a way to achieve this with : Is it something possible? Thanks a lot
That launch config works for me and does what's expected. Note that the "serverReadyAction" in the latter config does not call the " debug client-side" launch config. For that you would want to use the and put in " debug client-side" for the .
Yes, I agree with you, both configurations are working as expected. I wasn't very clear in my first message, I will try to explain better. On my NextJs project, I can have the following configurations: The first one start the project and enables debugging on server side, the second one open chrome and enables debugging on client side. If I put on the second configuration, it will work just fine: What I want, is using the third configurations only to : start the project, enable debugging on server/client side and open chrome with my . Is it possible to achieve something like this ? I can't find any option in that case to make my working.
serverReadyAction doesn't accept additional configuration properties to pass to the launch config. The reason for this is mostly that intellisense doesn't work in that action (under the hood it's provided by a different extension) so writing configuration in the nested object is hard. The way to do this is define the separate launch config and reference it. Copying your original configuration set:
Your configuration plus two small additions almost give the result I'm looking for! I still have too issues with this: If I kill the (by clicking on the icon), is not automatically killed dispite the option. When I start , is automatically started, but I can see both elements here: !. Is it possible to hide the last one (wich should be automatically killed when is stopped)? I clearly saw that you explained to me why it was not possible to do this (use on a ) in a single configuration, but is there a "hacky" way the achieve my main goal? Or is something planned in the futur? Or maybe there is a way to fix my remaining concerns with the current configuration?

No, this is not possible and is not something we'd do, since you would not be able to control the debug session in that case. That's a bug, will put in a fix
<!-- 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!
/verified
Change:
return undefined; } } else { <del> newProcess = await this._launchLocalProcess(this._localTerminalService, shellLaunchConfig, cols, rows, this.userHome, isScreenReaderModeEnabled); </del> <ins> newProcess = await this._launchLocalProcess(this._localTerminalService, shellLaunchConfig, cols, rows, this.userHome, isScreenReaderModeEnabled, variableResolver); </ins> } if (!this._isDisposed) { this._setupPtyHostListeners(this._localTerminalService);

Discussion:
With we are trying to remove from the configuration resolver service. The new way to get the environment is async and requires that the all the configuration resolver methods be async. I have started the adoption of the new async methods in , but there's one use in terminal that looks like it will require more work: Option 1: Convert that use of to use . Option 2: I provide a new method on the configuration resolver service that is sync, but requires you to pass in your own . Which option makes the most sense here?
I think the usage of in must remain sync since it's used as part of the extension API. Is this a problem there since is fine to use? The main purpose of this type was to share code between variable processes.
Sounds like Option 2 is the way to go then. I will add a new method that is sync and lets you pass in your own .
Added: will that let you keep your code reuse?
Change:
forceReuseWindow?: boolean; noRecentEntry?: boolean; forceLocalWindow?: boolean; <ins> forceProfile?: string; forceTempProfile?: boolean; </ins> } CommandsRegistry.registerCommand({

Discussion:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Describe the feature you'd like. --Today, the command only supports an describing the folder/workspace path to be opened. It would be interesting to allow adding the set of extensions to be used as well, or at least the profile, just like the CLI interface created in . Thank you
To verify: Create a profile Verify passing the profile name as an argument to the command from the extension and make sure the folder is opened in that profile. Eg:
Change:
{ "command": "merge-conflict.previous", "group": "navigation@1", <del> "when": "mergeConflictsCount && mergeConflictsCount != 0" </del> <ins> "when": "!isMergeEditor && mergeConflictsCount && mergeConflictsCount != 0" </ins> }, { "command": "merge-conflict.next", "group": "navigation@2", <del> "when": "mergeConflictsCount && mergeConflictsCount != 0" </del> <ins> "when": "!isMergeEditor && mergeConflictsCount && mergeConflictsCount != 0" </ins> } ] },

Discussion:
We have the extension which highlights git merge markers (using codelens and decorations) and we adds conflict navigation commands. This conflicts with the new merge editor and we should find ways to suppress it when merge is being used, e.g hide commands based on the context key
fyi - we did push some pragmatic changes to the merge-conflict extension to disable itself when the user enables the experimental git merge editor...