jiebi/CodeConvo huggingface dataset:
Change:
this._elements.editor.style.display = this._collapsed.read(reader) ? 'none' : 'block'; })); <del> this.editor.getModifiedEditor().onDidLayoutChange(e => { </del> <ins> this._register(this.editor.getModifiedEditor().onDidLayoutChange(e => { </ins> const width = this.editor.getModifiedEditor().getLayoutInfo().contentWidth; this._modifiedWidth.set(width, undefined); <del> }); </del> <ins> })); </ins> <del> this.editor.getOriginalEditor().onDidLayoutChange(e => { </del> <ins> this._register(this.editor.getOriginalEditor().onDidLayoutChange(e => { </ins> const width = this.editor.getOriginalEditor().getLayoutInfo().contentWidth; this._originalWidth.set(width, undefined); <del> }); </del> <ins> })); </ins> this._register(this.editor.onDidContentSizeChange(e => { globalTransaction(tx => {

Discussion:
Multi diff editor issue while expanding the hidden lines VS Code Version: 1.86 insider OS Version: Windows 11 //cc Steps to Reproduce: the multi diff editor on the hidden lines at the bottom ( the blue line) now it will expand the 10 lines now scrolling top doesn't show me the '5 hidden lines' text until I scroll down and then scroll up again
Change:
let ref = this._templateRef.get(); if (!ref) { <del> ref = this._objectPool.getUnusedObj(new TemplateData(this.viewModel)); </del> <ins> ref = this._objectPool.getUnusedObj(new TemplateData(this.viewModel, this._deltaScrollVertical)); </ins> this._templateRef.set(ref, undefined); const selections = this.viewModel.lastTemplateData.get().selections;

Discussion:
Multi diff editor issue while expanding the hidden lines VS Code Version: 1.86 insider OS Version: Windows 11 //cc Steps to Reproduce: the multi diff editor on the hidden lines at the bottom ( the blue line) now it will expand the 10 lines now scrolling top doesn't show me the '5 hidden lines' text until I scroll down and then scroll up again
Change:
} private onDidClickLink(handle: WebviewPanelHandle, link: URI): void { <del> if (!link) { return; } </del> const webview = this.getWebviewEditorInput(handle); if (this.isSupportedLink(webview, link)) { this._openerService.open(link);

Discussion:
VSCode Version: 1.37.1 OS Version: Fedora 30 I'm extracting the CSS Language Server for usage in 3rd party IDE (Eclipse IDE). I noticed that if I start the CSS-LS without passing a element to initialization, the LS will fail because of . One of the important lines in the stack trace is .
Submitted PR for this issue.
Fixed by .
Verified in master by removing the dataPaths
Change:
import { IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { NOTEBOOK_VARIABLE_VIEW_ENABLED } from 'vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariableContextKeys'; export class NotebookVariables extends Disposable implements IWorkbenchContribution { private listeners: IDisposable[] = []; private configListener: IDisposable;

Discussion:
Steps to Reproduce: a notebook and put in a cell and run it to establish a kernel for that notebook vscode and run the cell before the kernel is auto-selected :bug: notebook variable view will not initialize
HI is this a candidate? This issue is assigned to the recovery 2 milestone, but it does not have a candidate label and there appears to only be one PR to main. We will discuss this issue in standup and decide if this should be merged to the release branch.
As mentioned in a private discussion, if we accept this candidate recovery release will be held on Monday which is when the next endgame starts. To avoid overlap of the two endgames, this fix should be included instead in the next release.
Change:
@IConfigurationService private configurationService: IConfigurationService, @IKeybindingService keybindingService: IKeybindingService, @IUntitledEditorService private untitledEditorService: IUntitledEditorService, <del> @IViewletService private viewletService: IViewletService </del> <ins> @IViewletService private viewletService: IViewletService, @IEventService private eventService: IEventService </ins> ) { super(actionRunner, OpenEditorsView.computeExpandedBodySize(editorGroupService.getStacksModel()), !!settings[OpenEditorsView.MEMENTO_COLLAPSED], nls.localize('openEditosrSection', "Open Editors Section"), messageService, keybindingService, contextMenuService);

Discussion:
VSCode Version: 1.4 OS Version: Windows 10 Steps to Reproduce: a file a symbol that is used in other files Other files that referenced it are opened and show as dirty in tabs, the file list and the count on the explorer badge, but it still says "1 unsaved" next to the "open editors" heading. !
can you look into this?
Hi guys, submitted a PR for this issue. Please let me know if there are any issues.
I think any unread indicator needs to react to events from the text file service and not the stacks model to find out that something got dirty. You might want to revisit this in
Thanks!
Change:
}, "Insert link": { "prefix": "link", <del> "body": "[${1:text}](http://${2:link})$0", </del> <ins> "body": "[${1:text}](https://${2:link})$0", </ins> "description": "Insert link" }, "Insert image": { "prefix": "image", <del> "body": "![${1:alt}](http://${2:link})$0", </del> <ins> "body": "![${1:alt}](https://${2:link})$0", </ins> "description": "Insert image" } }

Discussion:
I would like to make a pull request that changes the markdown snippet for links to use HTTPS instead of HTTP. Microsoft seems to encourage HTTPS by default in the latest .NET Core & browsers are also encouraging it. To me HTTPS sites seem to be the default for most websites these days.
Sure, please open a pr. I didn't even know we had a snippet for links :)
Fixed by
Change:
private getKeybinding() { const keybindings = this.keybindingService.lookupKeybindings('interactive.execute'); const shiftEnterConfig = this.configurationService.getValue(InteractiveWindowSetting.executeWithShiftEnter); <ins> const hasChord = (chord: string, kb: ResolvedKeybinding) => { const chords = kb.getDispatchChords(); return chords.length === 1 && chords[0] === chord; }; </ins> if (shiftEnterConfig) { <del> const keybinding = keybindings.find(kb => kb.getLabel() === 'Shift+Enter'); </del> <ins> const keybinding = keybindings.find(kb => hasChord('shift+Enter', kb)); </ins> if (keybinding) { return keybinding; } } else { <del> let keybinding = keybindings.find(kb => kb.getLabel() === 'Enter'); </del> <ins> let keybinding = keybindings.find(kb => hasChord('Enter', kb)); </ins> if (keybinding) { return keybinding; } keybinding = this.keybindingService.lookupKeybindings('python.execInREPLEnter') <del> .find(kb => kb.getLabel() === 'Enter'); </del> <ins> .find(kb => hasChord('Enter', kb)); </ins> if (keybinding) { return keybinding; } } <del> return undefined; </del> <ins> return keybindings?.[0]; </ins> } override dispose(): void {

Discussion:
Testing From gear icon, enable the setting Switch back to the interactive window and see no hint in the input box Reloading the workspace does not help as well <img width="1031" alt="Screenshot 2024-06-25 at 18 49 24" src=""
does shift+enter work as a keybinding?
Yes the keybinding works, issue is only about the hint UI.
the hint text keeps saying "Press Command+Enter to execute" and doesn't update depending on the setting. I was expecting the hint to display "Enter" or "Shift+Enter" depending on the setting.
- can you enable the shift+enter option, run and try to press enter in the input box? Do you get something like this in the troubleshooting logs?
it looks like you may have a custom keyboard layout that changes the key label to . I don't know how many ways there are to modify key labels, so I'll just rely on the order of the keybinding registration to show shift+enter instead of always showing cmd/ctrl+enter. It might still show cmd+enter when in the python REPL experiment with a custom keyboard layout, but I think this is as close as I can reliably get.
verification: with Jupyter and python extensions installed run The execution hint should show in the input box click the gear, change the setting shift+enter setting the hint should update should at least show in the hint with the setting enabled. When disabled, it will either show or
<img width="1381" alt="Screenshot 2024-06-27 at 10 21 16 AM" src=""still occurring - key bindings come in as Resolving meta+[Enter] and Resolving shift+[Enter]
Change:
} // Calculate the command <del> this._currentCommand.command = this._terminal.buffer.active.getLine(this._currentCommand.commandStartMarker.line)?.translateToString(true, this._currentCommand.commandStartX); </del> <ins> this._currentCommand.command = this._terminal.buffer.active.getLine(this._currentCommand.commandStartMarker.line)?.translateToString(true, this._currentCommand.commandStartX, this._currentCommand.commandRightPromptStartX).trim(); </ins> let y = this._currentCommand.commandStartMarker.line + 1; const commandExecutedLine = this._currentCommand.commandExecutedMarker.line; for (; y < commandExecutedLine; y++) {

Discussion:
Setup a right prompt in fish/zsh and make sure the command detected is accurate.
zsh uses for this, perhaps we should have a generic ignored ranges mechanism and combine this with the line continuation solution?
Change:
} public dispose(): void { <ins> if (this._windowsShellHelper) { this._windowsShellHelper.dispose(); } </ins> if (this._linkHandler) { this._linkHandler.dispose(); }

Discussion:
Steps to reproduce: and kill terminal very quickly This can likely happen when the terminal is killed during a call.
I can still repro this with the same stack, I don't think the PR fixes the right issue. It fails on this line, because is null: A null xterm object is passed into the constructor, which implies that the terminal instance was disposed, so I think the problem is the terminalInstance being disposed while is running:
Change:
} private async triggerSearch(query: string): Promise<void> { <ins> const progressRunner = this.editorProgressService.show(true); </ins> this.viewState.tagFilters = new Set<string>(); this.viewState.extensionFilters = new Set<string>(); this.viewState.featureFilters = new Set<string>();

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:
mds.appendMarkdown(`[$(zap)-link](#link)`); let result: HTMLElement = renderMarkdown(mds).element; <del> assert.strictEqual(result.innerHTML, `<p><a title="#link" data-href="#link" href="#"><span class="codicon codicon-zap"></span>-link</a></p>`); </del> <ins> assert.strictEqual(result.innerHTML, `<p><a href="#" data-href="#link" title="#link"><span class="codicon codicon-zap"></span>-link</a></p>`); </ins> }); test('render icon in table', () => {

Discussion:
Version: 1.62.0-insider (Universal) Commit: Date: 2021-10-28T05:14:00.367Z Electron: 13.5.1 Chrome: 91.0.4472.164 14.16.0 V8: 9.1.269.39-electron.0 OS: Darwin arm64 20.6.0 Setting , on the markdown document of a completion item, an tag cannot load a PNG file if the path given as a URI with . If the path given as the path of a local filesystem, it can load the file. Steps to Reproduce: one of images cannot be loaded. !
Can I pick this up?
Sure, the relevant code where we fix image paths is:
For the markdown syntax images, if the URI schema is , that's being changed to . For the HTML tag images, the file URI remains as is. The HTML image with URI doesn't load due to CSP violation.
Yes uris are blocked for security reasons. The problem is that raw html tags don't go through the transform that I linked to One thing to try would be to look for image nodes in the rendered markdown and then transform their uris instead of relying on the markdown parser to handle the transform. Try looking at for that
/verified
Change:
} private _render(): void { <ins> const backgroundColor = this._settings.backgroundColor; </ins> if (this._settings.overviewRulerLanes === 0) { // overview ruler is off <del> this._domNode.setBackgroundColor(this._settings.backgroundColor ? this._settings.backgroundColor : ''); </del> <ins> this._domNode.setBackgroundColor(backgroundColor ? Color.Format.CSS.formatHexA(backgroundColor) : ''); </ins> this._domNode.setDisplay('none'); return; }

Discussion:
Ruler background is set to black with 50% transparency, but vscode shows solid black! ! ! Description for editorOverviewRuler.background also says: , but vscode use this background if minimap is enabled or not!
The color description is out of date. We changed the behavior of via so we now always respect . However, it never supported transparency, so we could add support for that.
Change:
return result; } <del> export class LazyDebugEditorContribution extends Disposable implements IDebugEditorContribution { private _contrib: IDebugEditorContribution | undefined; constructor(editor: ICodeEditor, @IInstantiationService instantiationService: IInstantiationService) { super(); const listener = editor.onDidChangeModel(() => { if (editor.hasModel()) { listener.dispose(); this._contrib = this._register(instantiationService.createInstance(DebugEditorContribution, editor)); } }); } showHover(position: Position, focus: boolean): Promise<void> { return this._contrib ? this._contrib.showHover(position, focus) : Promise.resolve(); } addLaunchConfiguration(): Promise<any> { return this._contrib ? this._contrib.addLaunchConfiguration() : Promise.resolve(); } closeExceptionWidget(): void { this._contrib?.closeExceptionWidget(); } } </del> export class DebugEditorContribution implements IDebugEditorContribution { private toDispose: IDisposable[];

Discussion:
With I went over most editor contributions (50+) and adopted idle value instantiation where I could reason that they would still work correctly. But some editor contributions interact in more complex ways, sometimes with each other, and I wasn't sure. Hence, this issue. I would like to ask that all calls explicitly use . If a contribution uses eager, a reason should be written as a comment next to it. There are multiple options available: Some things to keep in mind when changing an editor contribution to something else than : the contribution will not be created necessarily before a text model is attached. Normally, a contribution is created so early, at a point when the editor has no models. So it is safe for a contribution to simply use to check if the contribution needs to do anything. When being instantiated later, it is possible that the contribution will be created at a time when the editor already has a model, so the contribution should be prepared to deal with that in the ctor. if a contribution needs to be activated via editor events (pasting, typing, mouse events), then most likely you can use . if a contribution is mostly driven by actions or commands, then the contribution will be instantiated when the first action that needs it is executed, so it is safe to use . if a contribution is only driven by actions or commands, it is safe to use . Anyways, here's the remaining list of contributions for which I wasn't sure what would be correct:
Replacing me with who took over quick pick.
Change:
.then(undefined, () => findGitWin32InPath(onLookup)); } <del> export function findGit(hint: string | undefined, onLookup: (path: string) => void): Promise<IGit> { const first = hint ? findSpecificGit(hint, onLookup) : Promise.reject<IGit>(null); return first .then(undefined, () => { switch (process.platform) { case 'darwin': return findGitDarwin(onLookup); case 'win32': return findGitWin32(onLookup); default: return findSpecificGit('git', onLookup); } }) .then(null, () => Promise.reject(new Error('Git installation not found.'))); </del> <ins> export async function findGit(hint: string | string[] | undefined, onLookup: (path: string) => void): Promise<IGit> { const hints = Array.isArray(hint) ? hint : hint ? [hint] : []; for (const hint of hints) { try { return await findSpecificGit(hint, onLookup); } catch { // noop } } try { switch (process.platform) { case 'darwin': return await findGitDarwin(onLookup); case 'win32': return await findGitWin32(onLookup); default: return await findSpecificGit('git', onLookup); } } catch { // noop } throw new Error('Git installation not found.'); </ins> } export interface IExecutionResult<T extends string | Buffer> {

Discussion:
I use VSCode in three different places; my home computer, my work computer, and as a portable version I carry on a drive when I need to use a machine that doesn't have it. I use an extension to keep my settings synced up between editors, and the only issue I've encountered so far is that the git path doesn't match between any of them. On my home machine I have it installed to C of course, work likes to be funny and install it on A, and for the one on my drive I have a relative path set so that no matter what letter my drive gets, that VSCode can always find git. I already attempted to use an array myself just to see if it'd work: But VSCode reads it as one entire value. What I'd like is for it to recognize it as an array and then try each path in order until it finds Git or runs out of paths.
It is better to create an issue in extension repo with requesting the settings ignore feature.
Hy
This is a good feature request, please feel free to submit a PR.
Ah, thanks. I must have just seen the section title and completely glossed over it when I was reading through the docs.
I could help out with this feature-request, if you would like. At a glance, it looks like it would require a modification to the "createModel()" function in the "" file (line 34). We could get the "pathHint" as a string array and then possibly modify the logic inside of the "findGit()" function, or, if possible, iterate through the "pathHint" array until a valid "" value is returned. EDIT: Sorry, didn't realize a PR was already submitted...
Raised PR!
Verification The setting now accepts a list of values. The git extension must go through them one by one until it finds a usable git executable.
Change:
import { Extensions as WorkbenchExtensions, IWorkbenchContribution, IWorkbenchContributionsRegistry } from 'vs/workbench/common/contributions'; import { Extensions as ViewExtensions, IViewsRegistry } from 'vs/workbench/common/views'; import { getMultiSelectedResources } from 'vs/workbench/contrib/files/browser/files'; <del> import { ExplorerFolderContext, ExplorerRootContext, FilesExplorerFocusCondition } from 'vs/workbench/contrib/files/common/files'; </del> <ins> import { ExplorerFolderContext, ExplorerRootContext, FilesExplorerFocusCondition, IExplorerService, VIEWLET_ID as VIEWLET_ID_FILES } from 'vs/workbench/contrib/files/common/files'; </ins> import { OpenAnythingHandler } from 'vs/workbench/contrib/search/browser/openAnythingHandler'; import { OpenSymbolHandler } from 'vs/workbench/contrib/search/browser/openSymbolHandler'; import { registerContributions as replaceContributions } from 'vs/workbench/contrib/search/browser/replaceContributions';

Discussion:
Being able to interact with the files that appear in would be useful. A few examples that come to mind: file matched by search. Clicking the file in the search result and then pressing does not work. Right-clicking the file does not show the command. Right-clicking the file does not show (where the file could be renamed). The only option I've found is to click one of the matches to open the file, right click the tab, select and rename the file using the side bar ( or right-click). file matched by search. multiple files matched by search. multiple files from the search result. two files matched by search. When right-clicking a file in , I think all the options that are shown when right-clicking a file in should be shown. Then any options by extensions would also be available. The keyboard shortcuts and should probably keep their current behavior. Also, it should be possible to select multiple files, similar to in .
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.47 --<!-- potentialduplicatescomment --
, can we take this up separately ? ( Like rename , delete etc ) I would like to work on that if that is the case. Please let me know , Thanks :)
I think a "reveal in explorer" command for search results would be really useful and I would take a PR for that. But I don't want to replicate all the the other commands and functionality of the explorer.
Just adding "Reveal in Explorer" goes a long way :) I've created a different feature request for allowing selecting multiple files:
To be consistent the command should be called ! Also I do not understand the logic why it is at the top. Is not this after copy commands?
, The command was called "Reveal in Side Bar" but preferred "Reveal in Explorer". Also i can change the position and add it where ever you both suggest, Thanks :)
You're already looking at the side bar, so I don't think "Reveal in side bar" makes sense. I don't really like it for the tab context menu either, I think we should be more specific. Also I agree, I think it should be at the bottom, not the top
Change:
contributionsState[id] = contribution.saveViewState(); } } state.contributionsState = contributionsState; <ins> state.selectedKernelId = this.activeKernel?.id; </ins> return state; }

Discussion:
Testing microsoft/vscode-jupyter untitled ipynb cells export commands are available in command palette the untitled notebook as ipynb and give it a title command palette :bug: all the export commands are now hidden
I think this is because technically the cells were run in the context of the previous notebook, so I now need to run them again after saving the notebook, which is a rather nasty limitation...
I think this is because after saving we don't have a kernel connected to the newly saved notebook. There is no kernel session transfer (from untitled to saved notebook) currently.
Save As is handled by core. Need to transfer current controller to new ipynb.
Seems related to
Not sure - we are handling this the same way we persist selection and other view state. But the editor still gets reopened with a new model. Dunno how this concept works in custom editors.
Custom editors have one the untitled editor closed and a new one with another URI open, I want a signal that a custom editor can handle to upgrade it so no close/open needs to happen
Steps: Open an untitled jupyter notebook Select a kernel Save the notebook The same kernel should be selected The "Set kernel as default" gear icon in the kernel picker was also removed.
Verified with this "kernel"