jiebi/CodeConvo huggingface dataset:
Change:
async restartFrame(args: DebugProtocol.RestartFrameArguments, threadId: number): Promise<DebugProtocol.RestartFrameResponse | undefined> { if (this.capabilities.supportsRestartFrame) { <ins> this.stoppedSinceLastStep = false; </ins> const response = await this.send('restartFrame', args); <del> this.fireSimulatedContinuedEvent(threadId); </del> <ins> if (!this.stoppedSinceLastStep) { this.fireSimulatedContinuedEvent(threadId); } </ins> return response; } return Promise.reject(new Error('restartFrame not supported'));

Discussion:
Stepping using the debug adapter that I helped develop has been broken by a VS Code change between 1.78.2 and 1.79.0. I used a to log the messages sent back and forth using the same extension version, but different VS Code versions. I attached the logs below. After diffing the two files, the only difference is that the "scopes" request isn't sent to the adapter after the "next" request reports a stopped event. The end result is that the debugging UI in VS Code is stuck in "running" mode even though the debug adapter is stopped, and the user has no way to advance. See
I think this is related to the fact that you send the "stopped" event before the "next" response. We should be able to support that but as a workaround you could respond to "next" before stopping the debugger.
Thanks for the quick response I will look into that workaround. In what cases is tit required? Any type of step?
I see the issue but it will be too much of a risky change to get into our next stable release. I will try to address it in July but I'd recommend working around it in your extension.
I understand. I implemented the workaround in my extension and initial tests show that it works, so thanks for making me aware of that.
For my own reference, I think it should be ok to do immediately instead of waiting for the response.
Hi what are some verification steps for this issue?
<!-- 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!
I verified this by hacking mock-debug, but are you able to verify the change in Insiders, or have you moved on to not rely on that behavior anymore?
I've modified my extension to implement your workaround. I can download an old version of the extension to test this if you want.
It's ok, I think I've got it now
Change:
selectTheme(currentTheme, true); } } <del> }); </del> <ins> })); </ins> <del> quickpick.onDidTriggerItemButton(e => { </del> <ins> disposables.add(quickpick.onDidTriggerItemButton(e => { </ins> if (isItem(e.item)) { const extensionId = e.item.theme?.extensionData?.extensionId; if (extensionId) {

Discussion:
Quick pickers are itself disposables, as well as the events they provide. Noticed a few leaks around picker instances and/or events: //cc
There's already a that is called when the picker hides. Isn't that good enough?
see the various events (those beginning with ) and how they are not getting disposed.
But they are going to an emitter that is owned by the quickpick. Disposing the quickpick is also disposed all its emitters. There's no real leak here.
my understanding is that an that gets disposed (when you dispose the quick picker) does not dispose the -functions it had returned, i.e. this code is not running: But maybe or can also chime in.
Yes - an emitter doesn't dispose its listeners. you basically rely on GC'ing here and I am uncertain if that actually works (e.g some disposables are tracked centrally for later blaming). I understand your motives but we generally dispose all the things
Change:
import { StatusbarAlignment, IStatusbarService, IStatusbarEntry, IStatusbarEntryAccessor } from 'vs/workbench/services/statusbar/common/statusbar'; import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; import { Action, IAction, WorkbenchActionExecutedEvent, WorkbenchActionExecutedClassification } from 'vs/base/common/actions'; <del> import { IThemeService, registerThemingParticipant, IColorTheme, ICssStyleCollector, ThemeColor } from 'vs/platform/theme/common/themeService'; </del> <ins> import { IThemeService, registerThemingParticipant, IColorTheme, ICssStyleCollector, ThemeColor, HIGH_CONTRAST } from 'vs/platform/theme/common/themeService'; </ins> import { STATUS_BAR_BACKGROUND, STATUS_BAR_FOREGROUND, STATUS_BAR_NO_FOLDER_BACKGROUND, STATUS_BAR_ITEM_HOVER_BACKGROUND, STATUS_BAR_ITEM_ACTIVE_BACKGROUND, STATUS_BAR_PROMINENT_ITEM_FOREGROUND, STATUS_BAR_PROMINENT_ITEM_BACKGROUND, STATUS_BAR_PROMINENT_ITEM_HOVER_BACKGROUND, STATUS_BAR_BORDER, STATUS_BAR_NO_FOLDER_FOREGROUND, STATUS_BAR_NO_FOLDER_BORDER } from 'vs/workbench/common/theme'; import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace'; <del> import { contrastBorder } from 'vs/platform/theme/common/colorRegistry'; </del> <ins> import { contrastBorder, activeContrastBorder } from 'vs/platform/theme/common/colorRegistry'; </ins> import { isThemeColor } from 'vs/editor/common/editorCommon'; import { Color } from 'vs/base/common/color'; import { addClass, EventHelper, createStyleSheet, addDisposableListener, addClasses, removeClass, EventType, hide, show, removeClasses, isAncestor } from 'vs/base/browser/dom';

Discussion:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --To be consistent with the rest of the workbench we should consider: Use the orange borders for the active element instead of the blue one Remove the background color as I do not see it being used anywhere else for the active element
I agree this makes sense. We are open for a PR that fixes this. Code pointer Basically we should I think use a different color there and make sure it is also applied on the whole status bar. Adding help wanted and if nobody tackles this I can also look into it in the future
How is this different from ?
That one I used blue border for the focus items. Lad thinks it should be orange to make it clearer and consistent.
Yes agree, it should be this orange color we also have in tabs: !
Thanks to this is now fixed To verify, turn on High Contrast theme and: sure we use the orange border in the status bar both for the whole bar and for individual entries sure that hover feedback is a yellow doted line
Change:
navigation?: SymbolItemNavigation<T>; /** <del> * Optional support for editor highlights. WHen implemented, the editor will highlight </del> <ins> * Optional support for editor highlights. WHen implemented, the editor will highlight </ins> * symbol ranges in the source code. */ highlights?: SymbolItemEditorHighlights<T>;

Discussion:
Ah, sorry for the breakage... I believe asking for both is the best option for now but I can also add a "migration" path into the implementation, e.g use when seeing Originally posted by in
Change:
builder.addEditOperation(new Range(s.endLineNumber, model.getLineMaxColumn(s.endLineNumber), s.endLineNumber, model.getLineMaxColumn(s.endLineNumber)), 'n' + movingLineText); if (this.shouldAutoIndent(model, s)) { <del> virtualModel.getLineContent = (lineNumber: number) => { if (lineNumber === movingLineNumber) { return model.getLineContent(s.startLineNumber); } else { return model.getLineContent(lineNumber); } </del> <ins> const virtualModel: IVirtualModel = { tokenization: { getLineTokens: (lineNumber: number) => { if (lineNumber === movingLineNumber) { return model.tokenization.getLineTokens(s.startLineNumber); } else { return model.tokenization.getLineTokens(lineNumber); } }, getLanguageId, getLanguageIdAtPosition, }, getLineContent: (lineNumber: number) => { if (lineNumber === movingLineNumber) { return model.getLineContent(s.startLineNumber); } else { return model.getLineContent(lineNumber); } }, </ins> }; const ret = this.matchEnterRule(model, indentConverter, tabSize, s.startLineNumber, s.startLineNumber - 2);

Discussion:
Have the following code Move line request down via Notice how the lines that have been passed change. Their indentation gets modified. The move line down command should not mutate lines it passes.
See and for similar/duplicates.
should be fixed by
Thanks for the fix!

Start with the following code: select the first method move it down
This reproduces for very simple examples:
See also and
Should be fixed with

<!-- 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.90.0 OS Version: Windows 10 Home 22H2 build .4412 (+ WSL2 inside Win10) Steps to Reproduce: (similar to this issue: ) code: cursor at line 5 and perform 3 times. moved line is misplaced: In a vscode window opened in WSL this also happens: 1-WSL. Sample code: 2-WSL. Set cursor at line 2 and perform 3 times. 3-WSL. The last bracked is misplaced:
should be fixed by

<!-- 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. --When writing Lua code in VSCode, using Alt + Up/Down to move a line of code no longer automatically aligns the context of the code. Before the update, it would automatically align.
could you please help triage this issue? Thank you!
Hi yes thanks for the ping, this appears to be related to some recent auto-indentation changes I have made.
should be fixed with
Change:
position: MinimapPosition.Gutter, color: { id: isHandled ? handledConflictMinimapOverViewRulerColor : unhandledConflictMinimapOverViewRulerColor }, }, <del> overviewRuler: { </del> <ins> overviewRuler: modifiedBaseRange.isConflicting ? { </ins> position: OverviewRulerLane.Center, color: { id: isHandled ? handledConflictMinimapOverViewRulerColor : unhandledConflictMinimapOverViewRulerColor }, <del> } </del> <ins> } : undefined </ins> } }); } } <del> for (const diff of m.rights) { const range = diff.outputRange.toInclusiveRange(); if (range) { result.push({ range, options: { className: `merge-editor-diff result`, description: 'Merge Editor', isWholeLine: true, } }); } if (diff.rangeMappings) { for (const d of diff.rangeMappings) { </del> <ins> if (!modifiedBaseRange || modifiedBaseRange.isConflicting) { for (const diff of m.rights) { const range = diff.outputRange.toInclusiveRange(); if (range) { </ins> result.push({ <del> range: d.outputRange, </del> <ins> range, </ins> options: { <del> className: `merge-editor-diff-word result`, description: 'Merge Editor' </del> <ins> className: `merge-editor-diff result`, description: 'Merge Editor', isWholeLine: true, </ins> } }); } <ins> if (diff.rangeMappings) { for (const d of diff.rangeMappings) { result.push({ range: d.outputRange, options: { className: `merge-editor-diff-word result`, description: 'Merge Editor' } }); } } </ins> } } }

Discussion:
Here I am merging from and i am having a hard time figuring out where exactly the conflicts are because there are decorations for each change: !
Now I figured out that there are editor actions to navigate between conflicts, so maybe the fix here would be to make the overview ruler show the conflict areas much stronger.
I've had the same issue -- in my theme I've made the conflicts stand out much more, but I've still had issues seeing/getting to the remaining conflicts (might be a separate issue)
I created to address this. There are no diff highlights and no minimap-decorations for non-conflicting changes anymore: ! Before: !
Change:
} result.set(userExtension.identifier, userExtension); }); <ins> workspace.forEach(workspaceExtension => { const extension = result.get(workspaceExtension.identifier); if (extension) { logService.warn(localize('overwritingWithWorkspaceExtension', "Overwriting {0} with Workspace Extension {1}.", extension.extensionLocation.fsPath, workspaceExtension.extensionLocation.fsPath)); } result.set(workspaceExtension.identifier, workspaceExtension); }); </ins> development.forEach(developedExtension => { logService.info(localize('extensionUnderDevelopment', "Loading development extension at {0}", developedExtension.extensionLocation.fsPath)); const extension = result.get(developedExtension.identifier);

Discussion:
This extension wants me to install it, also has a reload, and has a restart button. The restart button doesn't do anything. This is just in the VS Code repo <img width="476" alt="image" src=""
Can you please share the following file F1 Open Extensions Folder Share file
What do you see in Installed Extensions view? Also What version of that extension is running in Running Extensions editor - F1 Show Running Extensions? Is there a message when you hover on Restart Extensions button?
Installed <img width="470" alt="image" src=""Running view <img width="917" alt="image" src=""Hover of restart <img width="470" alt="image" src=""Ok, so it does appear I have this extension installed. And it wants me to restart it to uninstall it? And then to install it as a workspace extension? Clicking the restart button doesn't do anything and I didn't request the extension be uninstalled
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!
Change:
import { IResolvedTextEditorModel, ITextModelService } from 'vs/editor/common/services/resolverService'; import { ITextResourceConfigurationService } from 'vs/editor/common/services/textResourceConfiguration'; import { localize } from 'vs/nls'; <ins> import { ConfirmResult } from 'vs/platform/dialogs/common/dialogs'; </ins> import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IEditorConfiguration } from 'vs/workbench/browser/parts/editor/textEditor'; import { DEFAULT_EDITOR_ASSOCIATION, EditorInputCapabilities, EditorInputWithOptions, IEditorSerializer, IResourceMultiDiffEditorInput, ISaveOptions, IUntypedEditorInput } from 'vs/workbench/common/editor'; <del> import { EditorInput } from 'vs/workbench/common/editor/editorInput'; </del> <ins> import { EditorInput, IEditorCloseHandler } from 'vs/workbench/common/editor/editorInput'; </ins> import { MultiDiffEditorIcon } from 'vs/workbench/contrib/multiDiffEditor/browser/icons.contribution'; import { ConstResolvedMultiDiffSource, IMultiDiffSourceResolverService, IResolvedMultiDiffSource, MultiDiffEditorItem } from 'vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService'; import { ObservableLazyStatefulPromise } from 'vs/workbench/contrib/multiDiffEditor/browser/utils';

Discussion:
Testing Disable autosave Open a file, make some change, don't save Open a stash in multi-file diff editor The diff editor is marked as unsaved and I can't close it at all If I close the original editor, the multi file diff can be closed !
could you please take a look at this one. Thanks!
Change:
setting.descriptionRanges.push({ startLineNumber: this.lineCountWithOffset, startColumn: this.lastLine.indexOf(line) + 1, endLineNumber: this.lineCountWithOffset, endColumn: this.lastLine.length }); } <del> if (setting.enumDescriptions && setting.enumDescriptions.some(desc => !!desc)) { </del> <ins> if (setting.enum && setting.enumDescriptions?.some(desc => !!desc)) { </ins> setting.enumDescriptions.forEach((desc, i) => { const displayEnum = escapeInvisibleChars(String(setting.enum![i])); const line = desc ?

Discussion:
I don't have precise repro steps, but maybe: search for something scroll all the way down clear search searching animation persists
I'm unable to repro the issue. Let me know if there's any devtools errors next time it occurs.
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!
just reproduced this and will give us the logs
In the case of JooYoung, the search wasn't performed at all.
just reproduced myself
The error likely means there's an array that's undefined, but I'll probably have to reproduce the issue on OSS to actually see what's going on Example REPL run
it takes much longer than expected to stop - is there a long happening for input change or... ?
I'm unable to repro on the latest Insiders on Windows or macOS. For me, clearing the search stops it immediately.
Change:
@ICommandService private readonly commandService: ICommandService, @IWorkbenchEnvironmentService private readonly environmentService: IWorkbenchEnvironmentService, @IStorageService private readonly storageService: IStorageService, <del> @ILogService private readonly logService: ILogService </del> <ins> @ILogService private readonly logService: ILogService, @INotificationService private readonly notificationService: INotificationService </ins> ) { this.run().then(undefined, onUnexpectedError); }

Discussion:
/ This is likely caused by testing/startup page code triggering this command on machines that have disabled the built-in markdown extension
Change:
private parentDomElement: HTMLElement, private contextService: IWorkspaceContextService, private terminalService: ITerminalService, <ins> private messageService: IMessageService, </ins> private onExitCallback: (TerminalInstance) => void ) { this.toDispose = [];

Discussion:
Steps to Reproduce: terminal as "faketerm" +`
On Linux (ElementaryOS) I get an error dialog with message 'The terminal process terminated with exit code: 1'. Setting as verified, although more details would be helpful.
Indeed that verifies it. Thanks.
Change:
if (pick) { if (isKernelPick(pick)) { newKernel = pick.kernel; <del> notebookKernelService.selectKernelForNotebook(newKernel, notebook); </del> <ins> this._notebookKernelService.selectKernelForNotebook(newKernel, notebook); </ins> return true; } // actions if (pick.id === 'install') { await this._showKernelExtension( <del> paneCompositeService, extensionWorkbenchService, extensionHostService, </del> <ins> this._paneCompositePartService, this._extensionWorkbenchService, this._extensionService, </ins> notebook.viewType ); // suggestedExtension must be defined for this option to be shown, but still check to make TS happy } else if (isInstallExtensionPick(pick)) { await this._showKernelExtension( <del> paneCompositeService, extensionWorkbenchService, extensionHostService, </del> <ins> this._paneCompositePartService, this._extensionWorkbenchService, this._extensionService, </ins> notebook.viewType, pick.extensionId, <del> productService.quality !== 'stable' </del> <ins> this._productService.quality !== 'stable' </ins> ); } else if (isSourcePick(pick)) { // selected explicilty, it should trigger the execution?

Discussion:
Currently when there is one suggested kernel and that's the one users are using in current document, its presentation in kernel picker is weird <img width="601" alt="image" src="https://user-"This can be simplified as a single "Selected" group at the very top <img width="601" alt="image" src="https://user-"
Change:
assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo-newbar-newabc'), 'Newfoo-Newbar-Newabc'); actual = ['Foo-Bar-abc']; assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo-newbar'), 'Newfoo-newbar'); <ins> actual = ['Foo_Bar']; assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo_newbar'), 'Newfoo_Newbar'); actual = ['Foo_Bar_Abc']; assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo_newbar_newabc'), 'Newfoo_Newbar_Newabc'); actual = ['Foo_Bar_abc']; assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo_newbar'), 'Newfoo_newbar'); actual = ['Foo_Bar-abc']; assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo_newbar-abc'), 'Newfoo_newbar-abc'); </ins> }); test('preserve case', () => {

Discussion:
and , Similar to , We can implement for underscore character as well , Proposing this will be only just underscore or just hyphen replacements and not both. Foo-Bar replaced with newfoo-newbar with case preserved will be Newfoo-Newbar and FooBar will be NewfooNewBar. Please let me know if this gets a node from you guys ? Thanks!
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.706 --<!-- potentialduplicatescomment --
Change:
.resolveVariables(new CompositeSnippetVariableResolver([ modelBasedVariableResolver, new ClipboardBasedVariableResolver(clipboardService, idx, indexedSelections.length), <del> new SelectionBasedVariableResolver(model, selection) </del> <ins> new SelectionBasedVariableResolver(model, selection), new TimeBasedVariableResolver </ins> ])); const offset = model.getOffsetAt(start) + delta;

Discussion:
Edit: Sorry if this is a terrible issue... The current list of variables available when writing a snippet can be found . Existing variables expose great contextual information - such as current file, directory, line number, word, etc. Development happens so fast that information can become outdated, so knowing when some custom snippets were inserted could be useful. For example, when creating files or adding comments. My current use case is a snippet that inserts copyright headers. The key binding inserts the header: It would help to include the date: and could also apply to updates or comments: Doing so could mean a simple variable like , but that may not work for non-US users who's date format is different i/e not month/day/year. Perhaps exposing the variables separately such as , etc or localization can help? I'd like to know if there is any interest in this. I know an extension could do this but it seems like overkill, but that could depend on potential use cases. Thanks for any feedback.
Hm, this is dupe of many requests we have gotten around this but made a valid point. Adding variables for year, month, day and hour, minute, second makes sense. That will allow anyone to compose it's own date. So, yeah feel free to drop a PR
Good to hear. Thanks for the PR!
Change:
await this.stop(); await new Promise(c => setTimeout(c, 1000)); await this._start(options.workspaceOrFolder, options.extraArgs); <ins> await this.code.waitForElement('.explorer-folders-view'); if (!this.options.web) { // Dismiss workspace trust dialog await this.code.waitAndClick(`.monaco-workbench .dialog-buttons-row a:nth-child(1)`, 10, 10); } </ins> } private async _start(workspaceOrFolder = this.workspacePathOrFolder, extraArgs: string[] = []): Promise<any> {

Discussion:
In today Insider build a lot of Mac OS smoke tests failed all with The build is here: I will rerun the test to see if this is a hick-up or a general problem.
Seems related to Assigning some owners.
Change:
this.autoSurround = options.get(EditorOption.autoSurround); this.autoIndent = options.get(EditorOption.autoIndent); this.wordSegmenterLocales = options.get(EditorOption.wordSegmenterLocales); <del> this.cursorStyle = options.get(EditorOption.cursorStyle); </del> this.surroundingPairs = {}; this._electricChars = null;

Discussion:
Using copilot completions in the latest VS Code insiders, I see the cursor being pushed to after the suggested text. This makes it very difficult to work with the text while passive completions are suggested. <img width="1126" alt="image" src=""
FYI I didn't think of this.
is it possible to differentiate between an inline completion and inlay hint in the editor? maybe we could have different behavior in different cases?