| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | diff --git a/src/vs/workbench/browser/parts/banner/bannerPart.ts b/src/vs/workbench/browser/parts/banner/bannerPart.tsindex b522e75..5205e2b 100644--- a/src/vs/workbench/browser/parts/banner/bannerPart.ts+++ b/src/vs/workbench/browser/parts/banner/bannerPart.ts@@ -11,3 +11,3 @@ import { InstantiationType, registerSingleton } from 'vs/platform/instantiation/ import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';-import { IStorageService } from 'vs/platform/storage/common/storage';+import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage'; import { IThemeService } from 'vs/platform/theme/common/themeService';@@ -30,2 +30,3 @@ import { widgetClose } from 'vs/platform/theme/common/iconRegistry'; import { BannerFocused } from 'vs/workbench/common/contextkeys';+import { INeverShowAgainOptions, NeverShowAgainScope } from 'vs/platform/notification/common/notification'; @@ -67,3 +68,3 @@ export class BannerPart extends Part implements IBannerService { 		@IWorkbenchLayoutService layoutService: IWorkbenchLayoutService,-		@IStorageService storageService: IStorageService,+		@IStorageService private readonly storageService: IStorageService, 		@IContextKeyService private readonly contextKeyService: IContextKeyService,@@ -187,2 +188,14 @@ export class BannerPart extends Part implements IBannerService { +		if (item.neverShowAgain) {+			const scope = this.toStorageScope(item.neverShowAgain);+			const id = item.neverShowAgain.id;++			// If the user already picked to not show the notification+			// again, we return with a no-op notification here+			if (this.storageService.getBoolean(id, scope)) {+				this.close(item);+				return;+			}+		}+ 		// Clear previous item@@ -236,2 +249,15 @@ export class BannerPart extends Part implements IBannerService { +	private toStorageScope(options: INeverShowAgainOptions): StorageScope {+		switch (options.scope) {+			case NeverShowAgainScope.APPLICATION:+				return StorageScope.APPLICATION;+			case NeverShowAgainScope.PROFILE:+				return StorageScope.PROFILE;+			case NeverShowAgainScope.WORKSPACE:+				return StorageScope.WORKSPACE;+			default:+				return StorageScope.APPLICATION;+		}+	}+ 	toJSON(): object {diff --git a/src/vs/workbench/services/banner/browser/bannerService.ts b/src/vs/workbench/services/banner/browser/bannerService.tsindex d8560ce..23f5c0c 100644--- a/src/vs/workbench/services/banner/browser/bannerService.ts+++ b/src/vs/workbench/services/banner/browser/bannerService.ts@@ -10,2 +10,3 @@ import { ILinkDescriptor } from 'vs/platform/opener/browser/link'; import { ThemeIcon } from 'vs/base/common/themables';+import { INeverShowAgainOptions } from 'vs/platform/notification/common/notification'; @@ -18,2 +19,3 @@ export interface IBannerItem { 	readonly onClose?: () => void;+	readonly neverShowAgain?: INeverShowAgainOptions; 	readonly disableCloseAction?: boolean;
 |