src/vs/workbench/contrib/notebook/browser/view/notebookCellList.ts/NotebookCellList/getVisibleRangesPlusViewportAboveBelow
class NotebookCellList:	getVisibleRangesPlusViewportAboveBelow() {
		if (this.view.length <= 0) {
			return [];
		}

		const top = clamp(this.getViewScrollTop() - this.renderHeight, 0, this.scrollHeight);
		const bottom = clamp(this.getViewScrollBottom() + this.renderHeight, 0, this.scrollHeight);
		const topViewIndex = clamp(this.view.indexAt(top), 0, this.view.length - 1);
		const topElement = this.view.element(topViewIndex);
		const topModelIndex = this._viewModel!.getCellIndex(topElement);
		const bottomViewIndex = clamp(this.view.indexAt(bottom), 0, this.view.length - 1);
		const bottomElement = this.view.element(bottomViewIndex);
		const bottomModelIndex = this._viewModel!.getCellIndex(bottomElement);

		if (bottomModelIndex - topModelIndex === bottomViewIndex - topViewIndex) {
			return [{ start: topModelIndex, end: bottomModelIndex }];
		} else {
			return this._getVisibleRangesFromIndex(topViewIndex, topModelIndex, bottomViewIndex, bottomModelIndex);
		}
	}