src/vs/workbench/contrib/notebook/browser/view/cellParts/cellComments.ts/CellComments/_bindListeners
class CellComments:	private _bindListeners() {
		this.cellDisposables.add(this.commentService.onDidUpdateCommentThreads(async () => {
			if (this.currentElement) {
				const info = await this._getCommentThreadForCell(this.currentElement);
				if (!this._commentThreadWidget && info) {
					this._createCommentTheadWidget(info.owner, info.thread);
					const layoutInfo = (this.currentElement as CodeCellViewModel).layoutInfo;
					this.container.style.top = `${layoutInfo.outputContainerOffset + layoutInfo.outputTotalHeight}px`;
					this.currentElement.commentHeight = this._calculateCommentThreadHeight(this._commentThreadWidget!.getDimensions().height);
					return;
				}

				if (this._commentThreadWidget) {
					if (!info) {
						this._commentThreadWidget.dispose();
						this.currentElement.commentHeight = 0;
						return;
					}
					if (this._commentThreadWidget.commentThread === info.thread) {
						this.currentElement.commentHeight = this._calculateCommentThreadHeight(this._commentThreadWidget.getDimensions().height);
						return;
					}

					this._commentThreadWidget.updateCommentThread(info.thread);
					this.currentElement.commentHeight = this._calculateCommentThreadHeight(this._commentThreadWidget.getDimensions().height);
				}
			}
		}));
	}