Change:
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

Discussion:
import { ICellRange } from 'vs/workbench/contrib/notebook/common/notebookRange'; import { executingStateIcon } from 'vs/workbench/contrib/notebook/browser/notebookIcons'; import { INotebookExecutionStateService } from 'vs/workbench/contrib/notebook/common/notebookExecutionStateService'; <del> import { NotebookCellExecutionState } from 'vs/workbench/contrib/notebook/common/notebookCommon'; </del> <ins> import { CellKind, NotebookCellExecutionState } from 'vs/workbench/contrib/notebook/common/notebookCommon'; </ins> import { MutableDisposable } from 'vs/base/common/lifecycle'; export class FoldedCellHint extends CellContentPart {

const idx = this._notebookEditor.getViewModel().getCellIndex(element); const length = this._notebookEditor.getViewModel().getFoldedLength(idx); <del> DOM.reset(this._container, this.getRunFoldedSectionButton({ start: idx, end: idx + length + 1 }), this.getHiddenCellsLabel(length), this.getHiddenCellHintButton(element)); </del> <ins> const runSectionButton = this.getRunFoldedSectionButton({ start: idx, end: idx + length + 1 }); if (!runSectionButton) { DOM.reset(this._container, this.getHiddenCellsLabel(length), this.getHiddenCellHintButton(element)); } else { DOM.reset(this._container, runSectionButton, this.getHiddenCellsLabel(length), this.getHiddenCellHintButton(element)); } </ins> DOM.show(this._container); const foldHintTop = element.layoutInfo.previewHeight;

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;