jiebi/CodeConvo huggingface dataset:
Change:
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.

Discussion:
} 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>();

this.splitView.setViewVisible(0, true); } } <ins> progressRunner.done(); </ins> } /**

const searchInProgress = this.searchInProgress = new CancellationTokenSource(); return this.localSearchDelayer.trigger(async () => { if (searchInProgress && !searchInProgress.token.isCancellationRequested) { <del> const progressRunner = this.editorProgressService.show(true); </del> const result = await this.localFilterPreferences(query); if (result && !result.exactMatch) { this.remoteSearchThrottle.trigger(async () => { if (searchInProgress && !searchInProgress.token.isCancellationRequested) { <del> await this.remoteSearchPreferences(query, this.searchInProgress!.token); </del> <ins> await this.remoteSearchPreferences(query, this.searchInProgress?.token); </ins> } <del> progressRunner.done(); </del> }); <del> } else { progressRunner.done(); </del> } } });
Change:
Testing 1 Create New Jupyter Notebook what I see (image below). There is only one line visible and it is covered by the hint, the notebook does not have focus. do not have any space where I can click just to pass focus inside the notebook to start typing If I click below, the focus is passed to this weird mini status bar (image 2) imho this is a ux bug. The point of the hint is not to be in your way. It works better in the regular VS Code editor because there are more lines visible. If there is only one line, it is very much in user's face. ! ! fyi
Makes good sense to me. I pushed a change to disable this for Stable first. I'd like to provide a non-clickable editor hint in empty cell once the main is open for business/Insiders again.
We disabled mouse clicking now <img width="1187" alt="image" src=""

Discussion:
@IInlineChatSessionService inlineChatSessionService: IInlineChatSessionService, @IInlineChatService protected readonly inlineChatService: IInlineChatService, @ITelemetryService private readonly telemetryService: ITelemetryService, <del> @IProductService private readonly productService: IProductService, </del> <ins> @IProductService protected readonly productService: IProductService, </ins> ) { this.toDispose = []; this.toDispose.push(this.editor.onDidChangeModel(() => this.update()));

} protected override _shouldRenderHint(): boolean { <ins> // TODO@rebornix, remove this when we have a better way to present the editor hints in empty cells if (this.productService.quality === 'stable') { return false; } </ins> const shouldRenderHint = super._shouldRenderHint(); if (!shouldRenderHint) { return false;
Change:
Testing It seems like multiple selection is enabled in this list/tree, though without any value. Let's disable it for now.

Discussion:
compressionEnabled: true, horizontalScrolling: false, autoExpandSingleChildren: true, <ins> multipleSelectionSupport: false, </ins> collapseByDefault: (e) => !ResourceTree.isResourceNode(e), accessibilityProvider: this.instantiationService.createInstance(SCMSyncViewPaneAccessibilityProvider), identityProvider: this.instantiationService.createInstance(SCMSyncViewPaneTreeIdentityProvider),
Change:
Testing Although technically correct, we should use the actual commit's short hash, not the syntax, for left side: !

Discussion:
} async provideHistoryItemChanges(historyItemId: string): Promise<SourceControlHistoryItemChange[]> { <del> const [ref1, ref2] = historyItemId.includes('..') ? historyItemId.split('..') : [`${historyItemId}^`, historyItemId]; </del> <ins> // The "All Changes" history item uses a special id // which is a commit range instead of a single commit id let [originalRef, modifiedRef] = historyItemId.includes('..') ? historyItemId.split('..') : [undefined, historyItemId]; if (!originalRef) { const commit = await this.repository.getCommit(modifiedRef); originalRef = commit.parents.length > 0 ? commit.parents[0] : `${modifiedRef}^`; } </ins> const historyItemChangesUri: Uri[] = []; const historyItemChanges: SourceControlHistoryItemChange[] = []; <del> const changes = await this.repository.diffBetween(ref1, ref2); </del> <ins> const changes = await this.repository.diffBetween(originalRef, modifiedRef); </ins> for (const change of changes) { const historyItemUri = change.uri.with({

// History item change historyItemChanges.push({ uri: historyItemUri, <del> originalUri: toGitUri(change.originalUri, ref1), modifiedUri: toGitUri(change.originalUri, ref2), </del> <ins> originalUri: toGitUri(change.originalUri, originalRef), modifiedUri: toGitUri(change.originalUri, modifiedRef), </ins> renameUri: change.renameUri, });
Change:
White on gray is not readable. I think the explorer tree has a different behavior here. !
Which theme is this?
Default Light+

Discussion:
/* #endregion */ <del> .interactive-response-progress-tree .monaco-tl-row:hover { </del> <ins> .interactive-response-progress-tree .monaco-list-row:not(.selected) .monaco-tl-row:hover { </ins> background-color: var(--vscode-list-hoverBackground); }
Change:
open inline chat on a mid sized method/function the whole function gets included (by the chat extension) the background color isn't contiguous <img width="963" alt="Screenshot 2023-09-26 at 16 15 59" src=""

Discussion:
if (!needsMargin) { this._zone.value.setWidgetMargins(widgetPosition, 0); } <ins> } if (this._activeSession) { </ins> this._zone.value.updateBackgroundColor(widgetPosition, this._activeSession.wholeRange.value); } this._zone.value.show(widgetPosition);

this._messages.fire(msg); })); <ins> const altVersionNow = this._editor.getModel()?.getAlternativeVersionId(); </ins> this._sessionStore.add(this._editor.onDidChangeModelContent(e => { if (!this._ignoreModelContentChanged && this._strategy?.hasFocus()) { <del> this._ctxUserDidEdit.set(true); </del> <ins> this._ctxUserDidEdit.set(altVersionNow !== this._editor.getModel()?.getAlternativeVersionId()); </ins> } if (this._ignoreModelContentChanged || this._strategy?.hasFocus()) {

const { lastExchange } = this._activeSession; this._activeSession.addInput(lastExchange.prompt.retry()); if (lastExchange.response instanceof EditResponse) { <del> await this._strategy.undoChanges(lastExchange.response); </del> <ins> try { this._ignoreModelContentChanged = true; await this._strategy.undoChanges(lastExchange.response); } finally { this._ignoreModelContentChanged = false; } </ins> } return State.MAKE_REQUEST; }
Change:
Testing Opened just now and saw the shadow on the top of the executed cell and the scroll bar on the right: ! Similar to this issue I'm on zoom level 1, see my settings here:

Discussion:
border-color: var(--theme-input-focus-border-color); } #container div.output .scrollable { <del> overflow-y: scroll; </del> <ins> overflow-y: auto; </ins> max-height: var(--notebook-cell-output-max-height); } #container div.output .scrollable.scrollbar-visible {

'notebook-markdown-line-height': typeof this.options.markdownLineHeight === 'number' && this.options.markdownLineHeight > 0 ? `${this.options.markdownLineHeight}px` : `normal`, 'notebook-cell-output-font-size': `${this.options.outputFontSize || this.options.fontSize}px`, 'notebook-cell-output-line-height': `${this.options.outputLineHeight}px`, <del> 'notebook-cell-output-max-height': `${this.options.outputLineHeight * this.options.outputLineLimit}px`, </del> <ins> 'notebook-cell-output-max-height': `${this.options.outputLineHeight * this.options.outputLineLimit + 2}px`, </ins> 'notebook-cell-output-font-family': this.options.outputFontFamily || this.options.fontFamily, 'notebook-cell-markup-empty-content': nls.localize('notebook.emptyMarkdownPlaceholder', "Empty markdown cell, double-click or press enter to edit."), 'notebook-cell-renderer-not-found-error': nls.localize({
Change:
Testing Provided I understand the setting, the focused cell shouldn't be able to scroll off the page without user input as I've said to anchor the focused cell: ! I was expecting as the setting said, for the selected cell to remain steady and not move at all, while the content above changed and the scroll position was adjusted each time.
I think I might be seeing , scrolling down to show the full cell below including its output would keep it stable.
The anchoring also doesn't work when both cells are fully in the viewport: !
I've noticed that the anchoring works when you scroll the resizing cell off the viewport and then scroll back. If the resizing cell continues to be in view, then the behavior of this bug remains.
This seems to be working for me for some reason if the cell underneath the executing cell has a long output that causes a scroll bar. !
yeah this is completely broken after my late change yesterday, sorry about that
should work now if you and/or want to try playing around with that a bit
Would auto have the same behavior as true in this case?
no, we left auto as the old behavior because we couldn't decide on a good default behavior so we're looking to get some feedback with the setting. auto is currently: If the cell being resized is partially visible at the top of the viewport, anchor to the focused cell. Otherwise anchor to the resizing cell.
see I think with the user's ability to select what cell is focused after execution, we should just always anchor to the focused cell, regardless of whether it's fully or partially visible. An extra setting is just complexity.
OK, I just wanted to make sure you still felt that way after trying it out first hand (I'm not a fan of that behavior in certain senarios)

Discussion:
const focused = this.getFocus(); const focus = focused.length ? focused[0] : null; <del> if (this.view.elementTop(index) >= this.view.getScrollTop()) { return this.view.updateElementHeight(index, size, index); } </del> const anchorFocusedSetting = this.configurationService.getValue(NotebookSetting.anchorToFocusedCell); const allowScrolling = this.configurationService.getValue(NotebookSetting.scrollToRevealCell) !== 'none'; const scrollHeuristic = allowScrolling && anchorFocusedSetting === 'auto' && this.view.elementTop(index) < this.view.getScrollTop();
Change:
Testing We don't normally use "false" and "true" as strings, so this looks wrong beside all my other settings: !

Discussion:
default: 'fullCell' }, [NotebookSetting.anchorToFocusedCell]: { <del> markdownDescription: nls.localize('notebook.scrolling.anchorToFocusedCell.description', "Keep the focused cell steady while surrounding cells change size"), </del> <ins> markdownDescription: nls.localize('notebook.scrolling.anchorToFocusedCell.description', "Keep the focused cell steady while surrounding cells change size."), </ins> type: 'string', <del> enum: ['auto', 'true', 'false'], </del> <ins> enum: ['auto', 'on', 'off'], </ins> markdownEnumDescriptions: [ <del> nls.localize('notebook.scrolling.anchorToFocusedCell.auto.description', "Anchor to the focused cell when the resized cell is partially visible unless {0} is set to {1}", 'notebook.scrolling.revealCellBehavior', 'none') </del> <ins> nls.localize('notebook.scrolling.anchorToFocusedCell.auto.description', "Anchor the viewport to the focused cell depending on context unless {0} is set to {1}.", 'notebook.scrolling.revealCellBehavior', 'none'), nls.localize('notebook.scrolling.anchorToFocusedCell.on.description', "Always anchor the viewport to the focused cell."), nls.localize('notebook.scrolling.anchorToFocusedCell.off.description', "The focused cell may shift around as cells resize.") </ins> ], default: 'auto' }

const anchorFocusedSetting = this.configurationService.getValue(NotebookSetting.anchorToFocusedCell); const allowScrolling = this.configurationService.getValue(NotebookSetting.scrollToRevealCell) !== 'none'; const scrollHeuristic = allowScrolling && anchorFocusedSetting === 'auto' && this.view.elementTop(index) < this.view.getScrollTop(); <del> if (focused && (anchorFocusedSetting === 'true' || scrollHeuristic)) { </del> <ins> if (focused && (anchorFocusedSetting === 'on' || scrollHeuristic)) { </ins> this.view.updateElementHeight(index, size, focus); }

remoteSaving: 'notebook.experimental.remoteSave', gotoSymbolsAllSymbols: 'notebook.gotoSymbols.showAllSymbols', scrollToRevealCell: 'notebook.scrolling.revealCellBehavior', <del> anchorToFocusedCell: 'notebook.scrolling.anchorToFocusedCell' </del> <ins> anchorToFocusedCell: 'notebook.scrolling.experimental.anchorToFocusedCell' </ins> } as const; export const enum CellStatusbarAlignment {
Change:
Testing This setting seems like overkill to me and there is a good behavior we should be aiming towards which is notebook.scrolling.anchorToFocusedCell = auto. You could also do something clever like disable the anchoring when a user starts scrolling, and when they focus a cell or type it re-enables the anchoring. I rarely use notebooks but to me this seems like a setting that will see very low usage and is not worth the cost of an extra setting imo. Note that anchorToFocusedCell = auto doesn't work as expected currently, the setting only seems to do anything after I scroll: !
I can change the setting to be experimental to give more leniency to change/remove it, but the behaviors are very different, so we'd like to give users a way to both experiment and revert back in case we missed some case of bad behavior
I like the idea of using experimental and seeing how many users change it to see if it's worth a setting

Discussion:
default: 'fullCell' }, [NotebookSetting.anchorToFocusedCell]: { <del> markdownDescription: nls.localize('notebook.scrolling.anchorToFocusedCell.description', "Keep the focused cell steady while surrounding cells change size"), </del> <ins> markdownDescription: nls.localize('notebook.scrolling.anchorToFocusedCell.description', "Keep the focused cell steady while surrounding cells change size."), </ins> type: 'string', <del> enum: ['auto', 'true', 'false'], </del> <ins> enum: ['auto', 'on', 'off'], </ins> markdownEnumDescriptions: [ <del> nls.localize('notebook.scrolling.anchorToFocusedCell.auto.description', "Anchor to the focused cell when the resized cell is partially visible unless {0} is set to {1}", 'notebook.scrolling.revealCellBehavior', 'none') </del> <ins> nls.localize('notebook.scrolling.anchorToFocusedCell.auto.description', "Anchor the viewport to the focused cell depending on context unless {0} is set to {1}.", 'notebook.scrolling.revealCellBehavior', 'none'), nls.localize('notebook.scrolling.anchorToFocusedCell.on.description', "Always anchor the viewport to the focused cell."), nls.localize('notebook.scrolling.anchorToFocusedCell.off.description', "The focused cell may shift around as cells resize.") </ins> ], default: 'auto' }

const anchorFocusedSetting = this.configurationService.getValue(NotebookSetting.anchorToFocusedCell); const allowScrolling = this.configurationService.getValue(NotebookSetting.scrollToRevealCell) !== 'none'; const scrollHeuristic = allowScrolling && anchorFocusedSetting === 'auto' && this.view.elementTop(index) < this.view.getScrollTop(); <del> if (focused && (anchorFocusedSetting === 'true' || scrollHeuristic)) { </del> <ins> if (focused && (anchorFocusedSetting === 'on' || scrollHeuristic)) { </ins> this.view.updateElementHeight(index, size, focus); }

remoteSaving: 'notebook.experimental.remoteSave', gotoSymbolsAllSymbols: 'notebook.gotoSymbols.showAllSymbols', scrollToRevealCell: 'notebook.scrolling.revealCellBehavior', <del> anchorToFocusedCell: 'notebook.scrolling.anchorToFocusedCell' </del> <ins> anchorToFocusedCell: 'notebook.scrolling.experimental.anchorToFocusedCell' </ins> } as const; export const enum CellStatusbarAlignment {
Change:
Testing ! Also the use of e.g. there doesn't flow nicely to me. it would be better to spell out imo

Discussion:
default: typeof product.quality === 'string' && product.quality !== 'stable' // only enable as default in insiders }, [NotebookSetting.scrollToRevealCell]: { <del> markdownDescription: nls.localize('notebook.scrolling.revealCellBehavior.description', "How far to scroll when revealing the selected, e.g. when exectuting {0}.", 'notebook.cell.executeAndSelectBelow'), </del> <ins> markdownDescription: nls.localize('notebook.scrolling.revealNextCellOnExecute.description', "How far to scroll when revealing the next cell upon running {0}.", 'notebook.cell.executeAndSelectBelow'), </ins> type: 'string', enum: ['fullCell', 'firstLine', 'none'], markdownEnumDescriptions: [ <del> nls.localize('notebook.scrolling.revealCellBehavior.fullCell.description', 'Scroll to fully reveal the selected cell.'), nls.localize('notebook.scrolling.revealCellBehavior.firstLine.description', 'Scroll to reveal the first line of the selected cell.'), nls.localize('notebook.scrolling.revealCellBehavior.nonedescription', 'Do not scroll to reveal the selected cell.'), </del> <ins> nls.localize('notebook.scrolling.revealNextCellOnExecute.fullCell.description', 'Scroll to fully reveal the next cell.'), nls.localize('notebook.scrolling.revealNextCellOnExecute.firstLine.description', 'Scroll to reveal the first line of the next cell.'), nls.localize('notebook.scrolling.revealNextCellOnExecute.none.description', 'Do not scroll.'), </ins> ], default: 'fullCell' },

confirmDeleteRunningCell: 'notebook.confirmDeleteRunningCell', remoteSaving: 'notebook.experimental.remoteSave', gotoSymbolsAllSymbols: 'notebook.gotoSymbols.showAllSymbols', <del> scrollToRevealCell: 'notebook.scrolling.revealCellBehavior', </del> <ins> scrollToRevealCell: 'notebook.scrolling.revealNextCellOnExecute', </ins> anchorToFocusedCell: 'notebook.scrolling.experimental.anchorToFocusedCell' } as const;
Change:
Testing The setting description is as follows: I'm not sure what the exhaustive list of actions is, but if it's only on execution the name should include that. For example this does not control revealing when navigating by symbol which always reveals the cell in the center. !

Discussion:
default: typeof product.quality === 'string' && product.quality !== 'stable' // only enable as default in insiders }, [NotebookSetting.scrollToRevealCell]: { <del> markdownDescription: nls.localize('notebook.scrolling.revealCellBehavior.description', "How far to scroll when revealing the selected, e.g. when exectuting {0}.", 'notebook.cell.executeAndSelectBelow'), </del> <ins> markdownDescription: nls.localize('notebook.scrolling.revealNextCellOnExecute.description', "How far to scroll when revealing the next cell upon running {0}.", 'notebook.cell.executeAndSelectBelow'), </ins> type: 'string', enum: ['fullCell', 'firstLine', 'none'], markdownEnumDescriptions: [ <del> nls.localize('notebook.scrolling.revealCellBehavior.fullCell.description', 'Scroll to fully reveal the selected cell.'), nls.localize('notebook.scrolling.revealCellBehavior.firstLine.description', 'Scroll to reveal the first line of the selected cell.'), nls.localize('notebook.scrolling.revealCellBehavior.nonedescription', 'Do not scroll to reveal the selected cell.'), </del> <ins> nls.localize('notebook.scrolling.revealNextCellOnExecute.fullCell.description', 'Scroll to fully reveal the next cell.'), nls.localize('notebook.scrolling.revealNextCellOnExecute.firstLine.description', 'Scroll to reveal the first line of the next cell.'), nls.localize('notebook.scrolling.revealNextCellOnExecute.none.description', 'Do not scroll.'), </ins> ], default: 'fullCell' },

confirmDeleteRunningCell: 'notebook.confirmDeleteRunningCell', remoteSaving: 'notebook.experimental.remoteSave', gotoSymbolsAllSymbols: 'notebook.gotoSymbols.showAllSymbols', <del> scrollToRevealCell: 'notebook.scrolling.revealCellBehavior', </del> <ins> scrollToRevealCell: 'notebook.scrolling.revealNextCellOnExecute', </ins> anchorToFocusedCell: 'notebook.scrolling.experimental.anchorToFocusedCell' } as const;
Change:
Testing The accessibility help says this should work, but it does not appear to do anything
if you use a different keybinding, does it work ?
I switched it to with no effect
keyboard shortcuts troubleshooting show anything of interest?
Here it is. I ran the keybinding twice, the first time worked when I wasn't on a comment and navigated to a comment. The second time did nothing once I was there.

Discussion:
controller.nextCommentThread(); }, weight: KeybindingWeight.EditorContrib, <del> when: EditorContextKeys.focus, </del> primary: KeyMod.Alt | KeyCode.F9, });

controller.previousCommentThread(); }, weight: KeybindingWeight.EditorContrib, <del> when: EditorContextKeys.focus, </del> primary: KeyMod.Shift | KeyMod.Alt | KeyCode.F9 });
Change:
I'm expecting it to trim the newlines on this cell. I'm pressing cmd+s too ! Originally posted by in

Discussion:
) { } async participate(workingCopy: IStoredFileWorkingCopy<IStoredFileWorkingCopyModel>, context: { reason: SaveReason }, progress: IProgress<IProgressStep>, _token: CancellationToken): Promise<void> { <del> if (this.configurationService.getValue<boolean>('files.trimTrailingWhitespace')) { </del> <ins> if (this.configurationService.getValue<boolean>('files.trimFinalNewlines')) { </ins> this.doTrimFinalNewLines(workingCopy, context.reason === SaveReason.AUTO, progress); } }
Change:
Testing With the default light modern theme and this layout: ! See how the active tab in the first row shows no border to the bottom row. I think I would have expected the border to go through here.

Discussion:
} .monaco-workbench .part.editor > .content .editor-group-container > .title .tabs-container > .tab.active.tab-border-top > .tab-border-top-container, <del> .monaco-workbench .part.editor > .content .editor-group-container > .title .tabs-container > .tab.active.tab-border-bottom > .tab-border-bottom-container, </del> <ins> .monaco-workbench .part.editor > .content .editor-group-container > .title:not(.two-tab-bars) .tabs-container > .tab.active.tab-border-bottom > .tab-border-bottom-container, .monaco-workbench .part.editor > .content .editor-group-container > .title.two-tab-bars .tabs-and-actions-container:not(:first-child)  .tabs-container > .tab.active.tab-border-bottom > .tab-border-bottom-container, </ins> .monaco-workbench .part.editor > .content .editor-group-container > .title .tabs-container > .tab.dirty-border-top > .tab-border-top-container { display: block; position: absolute;