jiebi/CodeConvo huggingface dataset:
Change:
setupSearchTests(logger); setupNotebookTests(logger); setupLanguagesTests(logger); <del> if (opts.web) { setupTerminalTests(logger); } // Tests require playwright driver (https://github.com/microsoft/vscode/issues/146811) </del> <ins> setupTerminalTests(logger); </ins> setupStatusbarTests(logger); if (quality !== Quality.Dev && quality !== Quality.OSS) { setupExtensionTests(logger); } setupMultirootTests(logger);

Discussion:
With support for for Electron tests, we should enable terminal tests: I eagerly had enabled them but since we don't know whether Electron smoke tests with are stable, I moved back to only running them in web. We should not enable these tests until we are sure, smoke tests are stable, so maybe this should only happen in May.
Failing macOS run for reference: !
Still not passing, deferring to a debt week
Change:
@IConfigurationService private readonly _configurationService: IConfigurationService, ) { this._outlineEntryFactory = new NotebookOutlineEntryFactory(notebookExecutionStateService); <del> const delayerRecomputeActive = this._disposables.add(new Delayer(10)); this.delayRecomputeActive = () => delayerRecomputeActive.trigger(() => this._recomputeActive()); this._disposables.add(Event.debounce<void, void>( _editor.onDidChangeSelection, (last, _current) => last, 200 )(() => { this.delayRecomputeActive(); </del> <ins> const delayerRecomputeActive = this._disposables.add(new Delayer(200)); this._disposables.add(_editor.onDidChangeSelection(() => { delayerRecomputeActive.trigger(() => this._recomputeActive()); </ins> }, this)) <del> this._disposables.add(Event.debounce<INotebookViewCellsUpdateEvent, INotebookViewCellsUpdateEvent>( _editor.onDidChangeViewCells, (last, _current) => last ?? _current, 200 )(() => { this.delayRecomputeActive(); }, this) ); </del> // .3s of a delay is sufficient, 100-200s is too quick and will unnecessarily block the ui thread. // Given we're only updating the outline when the user types, we can afford to wait a bit. <del> const delayer = this._disposables.add(new Delayer<void>(300)); const delayedRecompute = () => delayer.trigger(() => this._recomputeState()); </del> <ins> this.delayedOutlineRecompute = this._disposables.add(new Delayer<void>(300)); const delayedRecompute = () => { delayerRecomputeActive.cancel(); // Active is always recomputed after a recomputing the outline state. this.delayedOutlineRecompute.trigger(() => this._recomputeState()); }; </ins> this._disposables.add(_configurationService.onDidChangeConfiguration(e => { if (e.affectsConfiguration(NotebookSetting.outlineShowMarkdownHeadersOnly) ||

Discussion:
Testing ! This happened when updating the file on disk outside of vscode, I'll try to find a consistent repro
a notebook with several markdown headers in insiders the same notebook in stable and add a header :bug: outline in insiders is not updated (stable does update when doing this in reverse) a different markdown header in insiders :bug: screencheese
!
Thanks I can replicate this issue.
Giving the issue back to Aaron to verify. My Python install's a bit broken.

Testing open show outline and have sticky scroll enabled scroll the cell with "# Header " into view delete the cell :bug: the sticky scroll breaks, the error below is printed <img width="1482" alt="Screenshot 2024-04-23 at 08 51 18" src=""
I'm unable to repro this. Please can you share a screen recording of the steps. Perhaps recoding from opehning the notebook to selecting and deleting. Thanks.
Looking at the stacktrace tells me this is coming here which means the model had been already
following the steps above (empty profile) always reproduce the error (console) for me. The screen cheese shows in sticky scroll and/or other paces of the outline tree
Change:
private async initServices(): Promise<IInstantiationService> { const services = new ServiceCollection(); <del> // Lifecycle </del> // Product const productService = { _serviceBrand: undefined, ...product }; services.set(IProductService, productService);

Discussion:
This here: Is strange to me because while this call is , it will not prolong the shutdown on the main process which is sync: Since the user of this event does not seem to use , I suggest to make the not support promises.
Change:
if (walkthroughID) { const selectedCategory = typeof walkthroughID === 'string' ? walkthroughID : walkthroughID.category; <del> const selectedStep = typeof walkthroughID === 'string' ? undefined : walkthroughID.category + '#' + walkthroughID.step; </del> <ins> let selectedStep: string | undefined; if (typeof walkthroughID === 'object' && 'category' in walkthroughID && 'step' in walkthroughID) { selectedStep = `${walkthroughID.category}#${walkthroughID.step}`; } else { selectedStep = undefined; } </ins> // We're trying to open the welcome page from the Help menu if (!selectedCategory && !selectedStep) {

Discussion:
For: Passing in an empty markdown file fixes this issue currently. [x] Add the ability to go back to the last focused view instead of the welcome page.
Removing the button on walkthroughs if opened from the cmd. This should prevent the walkthrough from going to the welcome page. The button is now only shown when a walkthrough is invoked from the page or another walkthrough.
Change:
private readonly _sessionDisposables = new DisposableStore(); private _grid!: Grid<IView>; <del> private readonly input1View = this._register(this.instantiationService.createInstance(InputCodeEditorView, 1)); private readonly input2View = this._register(this.instantiationService.createInstance(InputCodeEditorView, 2)); </del> <ins> private readonly input1View = this._register(this.instantiationService.createInstance(InputCodeEditorView, 1, MenuId.MergeInput1Toolbar)); private readonly input2View = this._register(this.instantiationService.createInstance(InputCodeEditorView, 2, MenuId.MergeInput2Toolbar)); </ins> private readonly inputResultView = this._register(this.instantiationService.createInstance(ResultCodeEditorView)); private readonly _layoutMode: MergeEditorLayout;

Discussion:
Theirs / Yours title area is currently quite empty. We should consider to add an action bar for "Compare with Base" action. The title area should also have additional Git information in the future fyi !
I don't see a branch or commit id in your screenshot. Is that configured somehow? <img width="533" alt="CleanShot 2022-06-28 at 10 00 52 src="https://user-"In any case, we could introduce a toolbar somewhat like the editor. Icons are placeholder, but an example could look like: <img width="1032" alt="CleanShot 2022-06-28 at 10 05 06 src="https://user-"
Unsure what was seeing there but with the normal git flow we do show the branch names and commits in question. There is also different issue for the toolbar and since today an icon in front of the commit it
To verify open a merge editor verify that it has menus with yours/theirs
Change:
properties: {} }; this.configurationContributors = [this.defaultLanguageConfigurationOverridesNode]; <del> this.resourceLanguageSettingsSchema = { properties: {}, patternProperties: {}, additionalProperties: false, errorMessage: 'Unknown editor configuration setting', allowTrailingCommas: true, allowComments: true }; </del> <ins> this.resourceLanguageSettingsSchema = { properties: {}, patternProperties: {}, additionalProperties: true, allowTrailingCommas: true, allowComments: true }; </ins> this.configurationProperties = {}; this.policyConfigurations = new Map<PolicyName, string>(); this.excludedConfigurationProperties = {};

Discussion:
Add an unrecognized setting to See that it is correctly dimmed with no warning underline Add it to a language-specific settings block There is a warning, "This setting does not support per-language configuration which is misleading" !
Yeah, this feature is not supported for language specific settings.
To verify: Open and have following snippetMake sure first two settings and are shown dimmed with proper message.
<!-- 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!
Change:
} if (styles.listFocusForeground) { <del> content.push(`.monaco-list${suffix}:focus .monaco-list-row.focused:not(.monaco-list-row.action.option-disabled) { color: ${styles.listFocusForeground}; }`); </del> <ins> content.push(`.monaco-list${suffix}:focus .monaco-list-row.focused { color: ${styles.listFocusForeground}; }`); </ins> } if (styles.listActiveSelectionBackground) {

Discussion:
Settings: !
How it should be: <img width="442" alt="image" src=""
Hm, strange. I haven't made any changes here lately. I'm noting that is not having an effect on the foreground color used on the tree within Explorer. It does however affect other lists like the one used in the quick pick. I also noticed the terminal tabs tree flicker to use that red before being stomped on again. Not sure what's going on here yet.
Looks like this is from
Gotcha I might just revert the change and switch it to something more specific - I didn't consider all the other applications of the list widget and checking other themes (it was okay in a couple of the themes I checked)

Repro: a in an import and run the refactor command via command palette the items !
Similar to
Change:
return expandIcon; } <del> private getRunFoldedSectionButton(range: ICellRange): HTMLElement { </del> <ins> private getRunFoldedSectionButton(range: ICellRange): HTMLElement | undefined { </ins> const runAllContainer = DOM.$('span.folded-cell-run-section-button'); const cells = this._notebookEditor.getCellsInRange(range); <ins> // Check if any cells are code cells, if not, we won't show the run button const hasCodeCells = cells.some(cell => cell.cellKind === CellKind.Code); if (!hasCodeCells) { return undefined; } </ins> const isRunning = cells.some(cell => { const cellExecution = this._notebookExecutionStateService.getCellExecution(cell.uri); return cellExecution && cellExecution.state === NotebookCellExecutionState.Executing;

Discussion:
When a few cells have been collapsed via markdown cells, a placeholder is displayed The in the placeholder seems to behave like an icon, hence I keep making the assumption that I can click this. However clicking this does nothing, but double clicking will edit the header cell. What I want is the icon to expand the collapsed cells, ! As you can see here, when the mouse is over the icon, it looks like it can be clicked. !
I think there might be some confusion around the purpose of this icon/button. This is the run button for folded sections and doesn't (shouldn't) have any control over the expansion of the folded section. This will execute any code cells within the folded section, and switch to a spinning run indicator (will change in the outline as well if you have code cells visible). The ellipses on the right-hand side of the hint () act as the expand section icon, however there is a bug with the cursor state; it should change to the pointer to more clearly show that you can click it on its own. As for the run button then, I think this a bug more relating to it appearing when there are no code cells within a collapsed section. That should be an easy fix.
Moving to May
Change:
canMoveView: false, treeView, collapsed: false, <del> when: ContextKeyExpr.and(EDIT_SESSIONS_SIGNED_IN, EDIT_SESSIONS_SHOW_VIEW), </del> <ins> when: ContextKeyExpr.and(EDIT_SESSIONS_SHOW_VIEW), </ins> order: 100, hideByDefault: true, }], container);

Discussion:
Testing I would expect that this action always appears in the command palette. Today, it only appears after running or first.
Change:
assert.strictEqual(new FormatString(1, 'capitalize').resolve('bar no repeat'), 'Bar no repeat'); assert.strictEqual(new FormatString(1, 'pascalcase').resolve('bar-foo'), 'BarFoo'); assert.strictEqual(new FormatString(1, 'pascalcase').resolve('bar-42-foo'), 'Bar42Foo'); <ins> assert.strictEqual(new FormatString(1, 'camelcase').resolve('bar-foo'), 'barFoo'); assert.strictEqual(new FormatString(1, 'camelcase').resolve('bar-42-foo'), 'bar42Foo'); </ins> assert.strictEqual(new FormatString(1, 'notKnown').resolve('input'), 'input'); // if

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. --I see the grammar at only supports , , and for format options. can there be a option that would transform the match text into camelCase? Thanks for the awesome work!
Just FYI, I believe pascalcase is also supported but undocumented.
The docs were updated to include in
To verify: insert a snippet like below type 'Hello_World' press the second line should become
Change:
focusSelected(): void { const selection = this._list.getSelection(); <del> if (selection.length !== 1) { this._list.setFocus([0]); } else { </del> <ins> if (selection.length === 1) { </ins> this._list.setFocus([selection[0]]); } }

Discussion:
a new empty txt file <kbdCtrl Space</kbdtwice There's a warning notification. !
Change:
if (name.length < 4) { name = ''; } <del> let queryUrl = `https://api.npms.io/v2/search?q=scope:${scope}%20${name}&size=250`; </del> <ins> let queryUrl = `https://registry.npmjs.com/-/v1/search?text=scope:${scope}%20${name}&size=250`; </ins> return this.xhr({ url: queryUrl, agent: USER_AGENT

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. --Hi So I noticed that the autocomplete is slow to update or can sometimes return wrong/outdated information. For example: if a package releases a patch / new version, it can take hours, maybe days until the autocompletion also suggests that version. My second concern about this is that it's actually using which is not run by npm and they have a separate which users are not aware of when using this VS Code extension. Source code From a privacy policy perspective / GDPR and also reliability issues it seems appropriate to remove all usage of this third-party API and only use npm's. Relevant past issues about npms from this repository (I found many more in other repositories):
To verify, check that code completion in dependencies of work as expected. run VSCode in a environment where is not on the path, and use hovers over dependencies of . as dependency and verify that the hover shows the actual latest version (currently 15)
Change:
readonly codeSnippet: string; readonly isBogous: boolean; readonly needsClipboard: boolean; <ins> readonly usesSelection: boolean; </ins> constructor(body: string) { // init with defaults this.isBogous = false; this.needsClipboard = false; <ins> this.usesSelection = false; </ins> this.codeSnippet = body; // check snippet...

Discussion:
Snippets that use the SELECTION variable should be grouped into a new "Surround With..."-command, e.g support selection with try-catch or if-else. We should also consider not showing such snippets in IntelliSense because the selection is always where users are typing.
closing this in favour of
After and given that a dedicated command is more visible we should add this
hi, Thanks for your adding support for outside code and could please add some identification for those snippet support and/or when users are using command e.g.: when using insert snippet, users never know which snippet is outside-code supported there is the ui: ! and the snippet code from C# official extension ! for that reason, I have to add some tip/text for the name of snippet when I develop the snippet extension. after that, user could know that which is outside code supported. ! I could do it for myself and my extension, I there are many snippets that have no tip or identification Please add some identification for those outside code supported in UI when users using insert snippet. that will be useful and helpful for user to distinguish
! maybe some icon for text is good
BTW, there is another issues related to this. please
hi, should I file a new issue?
To verify open a typescript files select some code select F1 Surround with Snippet try-catch ensure the selected code is surrounded by the snippet
Verification looked good with both TS and CS files.
Change:
// "tab.activeBackground": "", // "tab.activeForeground": "", // "tab.inactiveForeground": "", <del> "tab.lastPinnedBorder": "#EEE8D5", </del> <ins> "tab.lastPinnedBorder": "#FDF6E3", </ins> // Workbench: Activity Bar "activityBar.background": "#DDD6C1",

Discussion:
The grey used as the pinned tab separator could be a bit stronger and I suggest it is the same grey as for the View separators. !
Yeah, this color is pretty much randomly selected. would you be interested in picking colors for our default themes? Just today I pushed to add the color to our default themes but I did not really spend a lot of time thinking about which color fits best. Most often I picked the border color of the peek view inside the editor. The color key is
Are we sure we don't want to push this as a default for all themes? Because out of the box it's nearly impossible to tell the difference in other themes. Like below, can you tell which files are pinned? !
yeah if you can find a good base color and rule for it, I am all up for it
Change:
return { actionName: (matchResult: ContextualMatchResult) => matchResult.outputMatch ? `Free port ${matchResult.outputMatch[1]}` : '', commandLineMatcher: AnyCommandLineRegex, <del> outputMatcher: !isWindows ? { lineMatcher: FreePortOutputRegex, anchor: 'bottom' } : undefined, </del> <ins> // TODO: Support free port on Windows https://github.com/microsoft/vscode/issues/161775 outputMatcher: isWindows ? undefined : { lineMatcher: FreePortOutputRegex, anchor: 'bottom', offset: 0, length: 20 }, exitStatus: false, </ins> getActions: (matchResult: ContextualMatchResult, command: ITerminalCommand) => { const port = matchResult?.outputMatch?.[1]; if (!port) {

Discussion:
Open terminal and run command After it finishes, there is a freeze. Some times I see window is not responding dialog Now type command Freezes again Here is the profile that is captured while running command Here is the profile that is captured while running command I have set to
getOutputMatch can be too expensive: ! Is some quick fix not working on just a small line range?
The second one: !
Oh none of the quick fixes use offset or length currently. We should force that, otherwise the regex will run on every line.
Change:
private multiSessionDebug!: IContextKey<boolean>; private terminateDebuggeeSuported!: IContextKey<boolean>; private disassembleRequestSupported!: IContextKey<boolean>; <ins> private focusedStackFrameHasInstructionPointerReference!: IContextKey<Boolean>; </ins> constructor(private contextKeyService: IContextKeyService) { contextKeyService.bufferChangeEvents(() => {

Discussion:
Testing As already pointed out The "Open Disassembly View" command is now only visible when the active stackframe has a instructionPointerReference property. This makes it hard to discover. I suggest to have the context menu's "Open Disassembly View" command always visible if a debug adapter has the supportsDisassembleRequest capability. But the command should only be enabled if the active stackframe has a instructionPointerReference property. That results in a more stable user experience. Apart from that we should have the Open Disassembly View command in the command palette.
That's a fair suggestion. However, we are not sure how to disable a command...
commands have clauses and . clause determines if the command is present at all and if it is disabled. So please use the when registering the editor command for disablement.
Also we should consider to introduce a call stack context menu action for the Open Disassembly View.
will fix this.
Change:
export class RequestMainService extends NodeRequestService { override request(options: IRequestOptions, token: CancellationToken): Promise<IRequestContext> { <del> return super.request({ ...(options || {}), getRawRequest }, token); </del> <ins> return super.request({ ...(options || {}), getRawRequest, isChromiumNetwork: true }, token); </ins> } }

Discussion:
When requests from shared process are redirected to main, the main request service is throwing errors for some valid requests. The same request is working when using browser XHR in shared process. To reproduce: Start VS Code using fresh user data dir and extensions dir Enable this setting - this is an internal developer setting, so you have to set manually in the file Turn on settings sync using your insiders settings sync service (Disable syncing settings) Extensions Syncing fails because of above error cc
What is the exact request URL and headers? We should be able to reproduce in a Electron fiddle maybe.
is an error from the chromium network stack, it happens when the request contains one of the following forbidden headers ;l=22-48
Here is the request info URL: Headers: Payload:
Are we setting the header ? The runtime will add that during payload upload, but if we override it then it will cause the above error.
Yes, we are
BTW we do the same request also in the renderer for querying extensions, so does removing the impacts the request in the renderer that uses XHR ?
Just tried removing the header and I am getting following error
The header will get by the runtime for payload requests, you should be able to confirm after removing the header. So, I don't think it will impact requests from renderer via XHR Hmm, why is zlib module being involved ? Are we using request API by any chance ?
We are not using request. Request service in main extends Node request service and pass electron net request API to Node request service for making request. See here: While handling the response, Node request service is checking for header and using zlib if it is set to . See here: May be main request service shall not use node request service at all?
Possibly an easier repro that was discovered by is calling the command also fails with the same network error. You should be able to do this via an extension
Can we now also make sure to go back to the Electron solution for maybe insiders to validate it works over some time?
Enabled -
Change:
{ hideInput: true, canPickMany: false, <del> title: localize('create profile title', "{0}: Create...", PROFILES_CATEGORY.value) </del> <ins> title: localize('create profile from template title', "{0}: Create...", PROFILES_CATEGORY.value) </ins> }); if ((<IProfileTemplateQuickPickItem>pick)?.url) { const uri = URI.parse((<IProfileTemplateQuickPickItem>pick).url);

Discussion:
VS Code Version: 1.78 Insiders OS Version: Windows 11 Steps to Reproduce: at the Create Profiles drop down. ! "Create" and "Profile" shown 10 times. Suggestion to remove most instances of "Create" and "Profile". Maybe:
I like this suggestion. what do you think?
<img width="630" alt="image" src="https://user-"Do you think word is a repetition? Is this good or shall I add word to template entries too?
Looks good! I think that is just the right number of "Profile" words since "Empty Profile", "Current Profile", and "Profile Template" are "things" we talk about elsewhere. The profile template list looks clear to me
I also like this! Great improvement.