src/vs/workbench/contrib/files/browser/views/explorerView.ts/ExplorerView/refresh
class ExplorerView:	refresh(recursive: boolean, item?: ExplorerItem, cancelEditing: boolean = true): Promise<void> {
		if (!this.tree || !this.isBodyVisible() || (item && !this.tree.hasNode(item))) {
			// Tree node doesn't exist yet, when it becomes visible we will refresh
			return Promise.resolve(undefined);
		}

		if (cancelEditing && this.explorerService.isEditable(undefined)) {
			this.tree.domFocus();
		}

		const toRefresh = item || this.tree.getInput();
		if (this.configurationService.getValue<IFilesConfiguration>({ resource: item?.root.resource }).explorer.experimental.fileNesting.enabled) {
			return (async () => {
				try {
					await this.tree.updateChildren(toRefresh, recursive, false, {
						diffIdentityProvider: identityProvider
					});
				} catch (e) {
					this.notificationService.error('Internal error in file explorer. This may be due to experimental file nesting.');
					console.error('Unepxected error', e, 'in refreshing explorer. This may be due to experimental file nesting.');
					return;
				}
			})();
		} else {
			return this.tree.updateChildren(toRefresh, recursive, false, {
				diffIdentityProvider: identityProvider
			});
		}
	}