{"version":3,"file":"static/js/7745_c85f6698ee5bd52ea7d2.js","mappings":"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","sources":["file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/storage/common/storage.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/telemetry/common/telemetry.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/theme/browser/defaultStyles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/theme/browser/iconsStyleSheet.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/theme/common/colorUtils.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/theme/common/colors/baseColors.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/theme/common/colors/miscColors.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/theme/common/colors/editorColors.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/theme/common/colors/minimapColors.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/theme/common/colors/inputColors.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/theme/common/colors/chartsColors.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/theme/common/colors/listColors.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/theme/common/colors/menuColors.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/theme/common/colors/quickpickColors.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/theme/common/colors/searchColors.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/theme/common/iconRegistry.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/theme/common/theme.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/theme/common/themeService.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/undoRedo/common/undoRedo.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/undoRedo/common/undoRedoService.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/workspace/common/workspace.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/platform/workspace/common/workspaceTrust.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js"],"sourcesContent":["import { Emitter, Event, PauseableEmitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { isUndefinedOrNull } from '../../../base/common/types.js';\nimport { InMemoryStorageDatabase, Storage, StorageHint } from '../../../base/parts/storage/common/storage.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const TARGET_KEY = '__$__targetStorageMarker';\nexport const IStorageService = createDecorator('storageService');\nexport var WillSaveStateReason;\n(function (WillSaveStateReason) {\n /**\n * No specific reason to save state.\n */\n WillSaveStateReason[WillSaveStateReason[\"NONE\"] = 0] = \"NONE\";\n /**\n * A hint that the workbench is about to shutdown.\n */\n WillSaveStateReason[WillSaveStateReason[\"SHUTDOWN\"] = 1] = \"SHUTDOWN\";\n})(WillSaveStateReason || (WillSaveStateReason = {}));\nexport function loadKeyTargets(storage) {\n const keysRaw = storage.get(TARGET_KEY);\n if (keysRaw) {\n try {\n return JSON.parse(keysRaw);\n }\n catch (error) {\n // Fail gracefully\n }\n }\n return Object.create(null);\n}\nexport class AbstractStorageService extends Disposable {\n constructor(options = { flushInterval: AbstractStorageService.DEFAULT_FLUSH_INTERVAL }) {\n super();\n this.options = options;\n this._onDidChangeValue = this._register(new PauseableEmitter());\n this._onDidChangeTarget = this._register(new PauseableEmitter());\n this._onWillSaveState = this._register(new Emitter());\n this.onWillSaveState = this._onWillSaveState.event;\n this._workspaceKeyTargets = undefined;\n this._profileKeyTargets = undefined;\n this._applicationKeyTargets = undefined;\n }\n onDidChangeValue(scope, key, disposable) {\n return Event.filter(this._onDidChangeValue.event, e => e.scope === scope && (key === undefined || e.key === key), disposable);\n }\n emitDidChangeValue(scope, event) {\n const { key, external } = event;\n // Specially handle `TARGET_KEY`\n if (key === TARGET_KEY) {\n // Clear our cached version which is now out of date\n switch (scope) {\n case -1 /* StorageScope.APPLICATION */:\n this._applicationKeyTargets = undefined;\n break;\n case 0 /* StorageScope.PROFILE */:\n this._profileKeyTargets = undefined;\n break;\n case 1 /* StorageScope.WORKSPACE */:\n this._workspaceKeyTargets = undefined;\n break;\n }\n // Emit as `didChangeTarget` event\n this._onDidChangeTarget.fire({ scope });\n }\n // Emit any other key to outside\n else {\n this._onDidChangeValue.fire({ scope, key, target: this.getKeyTargets(scope)[key], external });\n }\n }\n get(key, scope, fallbackValue) {\n var _a;\n return (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.get(key, fallbackValue);\n }\n getBoolean(key, scope, fallbackValue) {\n var _a;\n return (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.getBoolean(key, fallbackValue);\n }\n getNumber(key, scope, fallbackValue) {\n var _a;\n return (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.getNumber(key, fallbackValue);\n }\n store(key, value, scope, target, external = false) {\n // We remove the key for undefined/null values\n if (isUndefinedOrNull(value)) {\n this.remove(key, scope, external);\n return;\n }\n // Update our datastructures but send events only after\n this.withPausedEmitters(() => {\n var _a;\n // Update key-target map\n this.updateKeyTarget(key, scope, target);\n // Store actual value\n (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.set(key, value, external);\n });\n }\n remove(key, scope, external = false) {\n // Update our datastructures but send events only after\n this.withPausedEmitters(() => {\n var _a;\n // Update key-target map\n this.updateKeyTarget(key, scope, undefined);\n // Remove actual key\n (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.delete(key, external);\n });\n }\n withPausedEmitters(fn) {\n // Pause emitters\n this._onDidChangeValue.pause();\n this._onDidChangeTarget.pause();\n try {\n fn();\n }\n finally {\n // Resume emitters\n this._onDidChangeValue.resume();\n this._onDidChangeTarget.resume();\n }\n }\n updateKeyTarget(key, scope, target, external = false) {\n var _a, _b;\n // Add\n const keyTargets = this.getKeyTargets(scope);\n if (typeof target === 'number') {\n if (keyTargets[key] !== target) {\n keyTargets[key] = target;\n (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.set(TARGET_KEY, JSON.stringify(keyTargets), external);\n }\n }\n // Remove\n else {\n if (typeof keyTargets[key] === 'number') {\n delete keyTargets[key];\n (_b = this.getStorage(scope)) === null || _b === void 0 ? void 0 : _b.set(TARGET_KEY, JSON.stringify(keyTargets), external);\n }\n }\n }\n get workspaceKeyTargets() {\n if (!this._workspaceKeyTargets) {\n this._workspaceKeyTargets = this.loadKeyTargets(1 /* StorageScope.WORKSPACE */);\n }\n return this._workspaceKeyTargets;\n }\n get profileKeyTargets() {\n if (!this._profileKeyTargets) {\n this._profileKeyTargets = this.loadKeyTargets(0 /* StorageScope.PROFILE */);\n }\n return this._profileKeyTargets;\n }\n get applicationKeyTargets() {\n if (!this._applicationKeyTargets) {\n this._applicationKeyTargets = this.loadKeyTargets(-1 /* StorageScope.APPLICATION */);\n }\n return this._applicationKeyTargets;\n }\n getKeyTargets(scope) {\n switch (scope) {\n case -1 /* StorageScope.APPLICATION */:\n return this.applicationKeyTargets;\n case 0 /* StorageScope.PROFILE */:\n return this.profileKeyTargets;\n default:\n return this.workspaceKeyTargets;\n }\n }\n loadKeyTargets(scope) {\n const storage = this.getStorage(scope);\n return storage ? loadKeyTargets(storage) : Object.create(null);\n }\n}\nAbstractStorageService.DEFAULT_FLUSH_INTERVAL = 60 * 1000; // every minute\nexport class InMemoryStorageService extends AbstractStorageService {\n constructor() {\n super();\n this.applicationStorage = this._register(new Storage(new InMemoryStorageDatabase(), { hint: StorageHint.STORAGE_IN_MEMORY }));\n this.profileStorage = this._register(new Storage(new InMemoryStorageDatabase(), { hint: StorageHint.STORAGE_IN_MEMORY }));\n this.workspaceStorage = this._register(new Storage(new InMemoryStorageDatabase(), { hint: StorageHint.STORAGE_IN_MEMORY }));\n this._register(this.workspaceStorage.onDidChangeStorage(e => this.emitDidChangeValue(1 /* StorageScope.WORKSPACE */, e)));\n this._register(this.profileStorage.onDidChangeStorage(e => this.emitDidChangeValue(0 /* StorageScope.PROFILE */, e)));\n this._register(this.applicationStorage.onDidChangeStorage(e => this.emitDidChangeValue(-1 /* StorageScope.APPLICATION */, e)));\n }\n getStorage(scope) {\n switch (scope) {\n case -1 /* StorageScope.APPLICATION */:\n return this.applicationStorage;\n case 0 /* StorageScope.PROFILE */:\n return this.profileStorage;\n default:\n return this.workspaceStorage;\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const ITelemetryService = createDecorator('telemetryService');\n","import { keybindingLabelBackground, keybindingLabelBorder, keybindingLabelBottomBorder, keybindingLabelForeground, asCssVariable, widgetShadow, buttonForeground, buttonSeparator, buttonBackground, buttonHoverBackground, buttonSecondaryForeground, buttonSecondaryBackground, buttonSecondaryHoverBackground, buttonBorder, progressBarBackground, inputActiveOptionBorder, inputActiveOptionForeground, inputActiveOptionBackground, editorWidgetBackground, editorWidgetForeground, contrastBorder, checkboxBorder, checkboxBackground, checkboxForeground, problemsErrorIconForeground, problemsWarningIconForeground, problemsInfoIconForeground, inputBackground, inputForeground, inputBorder, textLinkForeground, inputValidationInfoBorder, inputValidationInfoBackground, inputValidationInfoForeground, inputValidationWarningBorder, inputValidationWarningBackground, inputValidationWarningForeground, inputValidationErrorBorder, inputValidationErrorBackground, inputValidationErrorForeground, listFilterWidgetBackground, listFilterWidgetNoMatchesOutline, listFilterWidgetOutline, listFilterWidgetShadow, badgeBackground, badgeForeground, breadcrumbsBackground, breadcrumbsForeground, breadcrumbsFocusForeground, breadcrumbsActiveSelectionForeground, activeContrastBorder, listActiveSelectionBackground, listActiveSelectionForeground, listActiveSelectionIconForeground, listDropOverBackground, listFocusAndSelectionOutline, listFocusBackground, listFocusForeground, listFocusOutline, listHoverBackground, listHoverForeground, listInactiveFocusBackground, listInactiveFocusOutline, listInactiveSelectionBackground, listInactiveSelectionForeground, listInactiveSelectionIconForeground, tableColumnsBorder, tableOddRowsBackgroundColor, treeIndentGuidesStroke, asCssVariableWithDefault, editorWidgetBorder, focusBorder, pickerGroupForeground, quickInputListFocusBackground, quickInputListFocusForeground, quickInputListFocusIconForeground, selectBackground, selectBorder, selectForeground, selectListBackground, treeInactiveIndentGuidesStroke, menuBorder, menuForeground, menuBackground, menuSelectionForeground, menuSelectionBackground, menuSelectionBorder, menuSeparatorBackground, scrollbarShadow, scrollbarSliderActiveBackground, scrollbarSliderBackground, scrollbarSliderHoverBackground, listDropBetweenBackground } from '../common/colorRegistry.js';\nimport { Color } from '../../../base/common/color.js';\nfunction overrideStyles(override, styles) {\n const result = { ...styles };\n for (const key in override) {\n const val = override[key];\n result[key] = val !== undefined ? asCssVariable(val) : undefined;\n }\n return result;\n}\nexport const defaultKeybindingLabelStyles = {\n keybindingLabelBackground: asCssVariable(keybindingLabelBackground),\n keybindingLabelForeground: asCssVariable(keybindingLabelForeground),\n keybindingLabelBorder: asCssVariable(keybindingLabelBorder),\n keybindingLabelBottomBorder: asCssVariable(keybindingLabelBottomBorder),\n keybindingLabelShadow: asCssVariable(widgetShadow)\n};\nexport const defaultButtonStyles = {\n buttonForeground: asCssVariable(buttonForeground),\n buttonSeparator: asCssVariable(buttonSeparator),\n buttonBackground: asCssVariable(buttonBackground),\n buttonHoverBackground: asCssVariable(buttonHoverBackground),\n buttonSecondaryForeground: asCssVariable(buttonSecondaryForeground),\n buttonSecondaryBackground: asCssVariable(buttonSecondaryBackground),\n buttonSecondaryHoverBackground: asCssVariable(buttonSecondaryHoverBackground),\n buttonBorder: asCssVariable(buttonBorder),\n};\nexport const defaultProgressBarStyles = {\n progressBarBackground: asCssVariable(progressBarBackground)\n};\nexport const defaultToggleStyles = {\n inputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),\n inputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),\n inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground)\n};\nexport const defaultCheckboxStyles = {\n checkboxBackground: asCssVariable(checkboxBackground),\n checkboxBorder: asCssVariable(checkboxBorder),\n checkboxForeground: asCssVariable(checkboxForeground)\n};\nexport const defaultDialogStyles = {\n dialogBackground: asCssVariable(editorWidgetBackground),\n dialogForeground: asCssVariable(editorWidgetForeground),\n dialogShadow: asCssVariable(widgetShadow),\n dialogBorder: asCssVariable(contrastBorder),\n errorIconForeground: asCssVariable(problemsErrorIconForeground),\n warningIconForeground: asCssVariable(problemsWarningIconForeground),\n infoIconForeground: asCssVariable(problemsInfoIconForeground),\n textLinkForeground: asCssVariable(textLinkForeground)\n};\nexport const defaultInputBoxStyles = {\n inputBackground: asCssVariable(inputBackground),\n inputForeground: asCssVariable(inputForeground),\n inputBorder: asCssVariable(inputBorder),\n inputValidationInfoBorder: asCssVariable(inputValidationInfoBorder),\n inputValidationInfoBackground: asCssVariable(inputValidationInfoBackground),\n inputValidationInfoForeground: asCssVariable(inputValidationInfoForeground),\n inputValidationWarningBorder: asCssVariable(inputValidationWarningBorder),\n inputValidationWarningBackground: asCssVariable(inputValidationWarningBackground),\n inputValidationWarningForeground: asCssVariable(inputValidationWarningForeground),\n inputValidationErrorBorder: asCssVariable(inputValidationErrorBorder),\n inputValidationErrorBackground: asCssVariable(inputValidationErrorBackground),\n inputValidationErrorForeground: asCssVariable(inputValidationErrorForeground)\n};\nexport const defaultFindWidgetStyles = {\n listFilterWidgetBackground: asCssVariable(listFilterWidgetBackground),\n listFilterWidgetOutline: asCssVariable(listFilterWidgetOutline),\n listFilterWidgetNoMatchesOutline: asCssVariable(listFilterWidgetNoMatchesOutline),\n listFilterWidgetShadow: asCssVariable(listFilterWidgetShadow),\n inputBoxStyles: defaultInputBoxStyles,\n toggleStyles: defaultToggleStyles\n};\nexport const defaultCountBadgeStyles = {\n badgeBackground: asCssVariable(badgeBackground),\n badgeForeground: asCssVariable(badgeForeground),\n badgeBorder: asCssVariable(contrastBorder)\n};\nexport const defaultBreadcrumbsWidgetStyles = {\n breadcrumbsBackground: asCssVariable(breadcrumbsBackground),\n breadcrumbsForeground: asCssVariable(breadcrumbsForeground),\n breadcrumbsHoverForeground: asCssVariable(breadcrumbsFocusForeground),\n breadcrumbsFocusForeground: asCssVariable(breadcrumbsFocusForeground),\n breadcrumbsFocusAndSelectionForeground: asCssVariable(breadcrumbsActiveSelectionForeground)\n};\nexport const defaultListStyles = {\n listBackground: undefined,\n listInactiveFocusForeground: undefined,\n listFocusBackground: asCssVariable(listFocusBackground),\n listFocusForeground: asCssVariable(listFocusForeground),\n listFocusOutline: asCssVariable(listFocusOutline),\n listActiveSelectionBackground: asCssVariable(listActiveSelectionBackground),\n listActiveSelectionForeground: asCssVariable(listActiveSelectionForeground),\n listActiveSelectionIconForeground: asCssVariable(listActiveSelectionIconForeground),\n listFocusAndSelectionOutline: asCssVariable(listFocusAndSelectionOutline),\n listFocusAndSelectionBackground: asCssVariable(listActiveSelectionBackground),\n listFocusAndSelectionForeground: asCssVariable(listActiveSelectionForeground),\n listInactiveSelectionBackground: asCssVariable(listInactiveSelectionBackground),\n listInactiveSelectionIconForeground: asCssVariable(listInactiveSelectionIconForeground),\n listInactiveSelectionForeground: asCssVariable(listInactiveSelectionForeground),\n listInactiveFocusBackground: asCssVariable(listInactiveFocusBackground),\n listInactiveFocusOutline: asCssVariable(listInactiveFocusOutline),\n listHoverBackground: asCssVariable(listHoverBackground),\n listHoverForeground: asCssVariable(listHoverForeground),\n listDropOverBackground: asCssVariable(listDropOverBackground),\n listDropBetweenBackground: asCssVariable(listDropBetweenBackground),\n listSelectionOutline: asCssVariable(activeContrastBorder),\n listHoverOutline: asCssVariable(activeContrastBorder),\n treeIndentGuidesStroke: asCssVariable(treeIndentGuidesStroke),\n treeInactiveIndentGuidesStroke: asCssVariable(treeInactiveIndentGuidesStroke),\n treeStickyScrollBackground: undefined,\n treeStickyScrollBorder: undefined,\n treeStickyScrollShadow: undefined,\n tableColumnsBorder: asCssVariable(tableColumnsBorder),\n tableOddRowsBackgroundColor: asCssVariable(tableOddRowsBackgroundColor),\n};\nexport function getListStyles(override) {\n return overrideStyles(override, defaultListStyles);\n}\nexport const defaultSelectBoxStyles = {\n selectBackground: asCssVariable(selectBackground),\n selectListBackground: asCssVariable(selectListBackground),\n selectForeground: asCssVariable(selectForeground),\n decoratorRightForeground: asCssVariable(pickerGroupForeground),\n selectBorder: asCssVariable(selectBorder),\n focusBorder: asCssVariable(focusBorder),\n listFocusBackground: asCssVariable(quickInputListFocusBackground),\n listInactiveSelectionIconForeground: asCssVariable(quickInputListFocusIconForeground),\n listFocusForeground: asCssVariable(quickInputListFocusForeground),\n listFocusOutline: asCssVariableWithDefault(activeContrastBorder, Color.transparent.toString()),\n listHoverBackground: asCssVariable(listHoverBackground),\n listHoverForeground: asCssVariable(listHoverForeground),\n listHoverOutline: asCssVariable(activeContrastBorder),\n selectListBorder: asCssVariable(editorWidgetBorder),\n listBackground: undefined,\n listActiveSelectionBackground: undefined,\n listActiveSelectionForeground: undefined,\n listActiveSelectionIconForeground: undefined,\n listFocusAndSelectionBackground: undefined,\n listDropOverBackground: undefined,\n listDropBetweenBackground: undefined,\n listInactiveSelectionBackground: undefined,\n listInactiveSelectionForeground: undefined,\n listInactiveFocusBackground: undefined,\n listInactiveFocusOutline: undefined,\n listSelectionOutline: undefined,\n listFocusAndSelectionForeground: undefined,\n listFocusAndSelectionOutline: undefined,\n listInactiveFocusForeground: undefined,\n tableColumnsBorder: undefined,\n tableOddRowsBackgroundColor: undefined,\n treeIndentGuidesStroke: undefined,\n treeInactiveIndentGuidesStroke: undefined,\n treeStickyScrollBackground: undefined,\n treeStickyScrollBorder: undefined,\n treeStickyScrollShadow: undefined\n};\nexport const defaultMenuStyles = {\n shadowColor: asCssVariable(widgetShadow),\n borderColor: asCssVariable(menuBorder),\n foregroundColor: asCssVariable(menuForeground),\n backgroundColor: asCssVariable(menuBackground),\n selectionForegroundColor: asCssVariable(menuSelectionForeground),\n selectionBackgroundColor: asCssVariable(menuSelectionBackground),\n selectionBorderColor: asCssVariable(menuSelectionBorder),\n separatorColor: asCssVariable(menuSeparatorBackground),\n scrollbarShadow: asCssVariable(scrollbarShadow),\n scrollbarSliderBackground: asCssVariable(scrollbarSliderBackground),\n scrollbarSliderHoverBackground: asCssVariable(scrollbarSliderHoverBackground),\n scrollbarSliderActiveBackground: asCssVariable(scrollbarSliderActiveBackground)\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { asCSSPropertyValue, asCSSUrl } from '../../../base/browser/dom.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { DisposableStore } from '../../../base/common/lifecycle.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport { getIconRegistry } from '../common/iconRegistry.js';\nexport function getIconsStyleSheet(themeService) {\n const disposable = new DisposableStore();\n const onDidChangeEmmiter = disposable.add(new Emitter());\n const iconRegistry = getIconRegistry();\n disposable.add(iconRegistry.onDidChange(() => onDidChangeEmmiter.fire()));\n if (themeService) {\n disposable.add(themeService.onDidProductIconThemeChange(() => onDidChangeEmmiter.fire()));\n }\n return {\n dispose: () => disposable.dispose(),\n onDidChange: onDidChangeEmmiter.event,\n getCSS() {\n const productIconTheme = themeService ? themeService.getProductIconTheme() : new UnthemedProductIconTheme();\n const usedFontIds = {};\n const rules = [];\n const rootAttribs = [];\n for (const contribution of iconRegistry.getIcons()) {\n const definition = productIconTheme.getIcon(contribution);\n if (!definition) {\n continue;\n }\n const fontContribution = definition.font;\n const fontFamilyVar = `--vscode-icon-${contribution.id}-font-family`;\n const contentVar = `--vscode-icon-${contribution.id}-content`;\n if (fontContribution) {\n usedFontIds[fontContribution.id] = fontContribution.definition;\n rootAttribs.push(`${fontFamilyVar}: ${asCSSPropertyValue(fontContribution.id)};`, `${contentVar}: '${definition.fontCharacter}';`);\n rules.push(`.codicon-${contribution.id}:before { content: '${definition.fontCharacter}'; font-family: ${asCSSPropertyValue(fontContribution.id)}; }`);\n }\n else {\n rootAttribs.push(`${contentVar}: '${definition.fontCharacter}'; ${fontFamilyVar}: 'codicon';`);\n rules.push(`.codicon-${contribution.id}:before { content: '${definition.fontCharacter}'; }`);\n }\n }\n for (const id in usedFontIds) {\n const definition = usedFontIds[id];\n const fontWeight = definition.weight ? `font-weight: ${definition.weight};` : '';\n const fontStyle = definition.style ? `font-style: ${definition.style};` : '';\n const src = definition.src.map(l => `${asCSSUrl(l.location)} format('${l.format}')`).join(', ');\n rules.push(`@font-face { src: ${src}; font-family: ${asCSSPropertyValue(id)};${fontWeight}${fontStyle} font-display: block; }`);\n }\n rules.push(`:root { ${rootAttribs.join(' ')} }`);\n return rules.join('\\n');\n }\n };\n}\nexport class UnthemedProductIconTheme {\n getIcon(contribution) {\n const iconRegistry = getIconRegistry();\n let definition = contribution.defaults;\n while (ThemeIcon.isThemeIcon(definition)) {\n const c = iconRegistry.getIcon(definition.id);\n if (!c) {\n return undefined;\n }\n definition = c.defaults;\n }\n return definition;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { assertNever } from '../../../base/common/assert.js';\nimport { RunOnceScheduler } from '../../../base/common/async.js';\nimport { Color } from '../../../base/common/color.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Extensions as JSONExtensions } from '../../jsonschemas/common/jsonContributionRegistry.js';\nimport * as platform from '../../registry/common/platform.js';\n/**\n * Returns the css variable name for the given color identifier. Dots (`.`) are replaced with hyphens (`-`) and\n * everything is prefixed with `--vscode-`.\n *\n * @sample `editorSuggestWidget.background` is `--vscode-editorSuggestWidget-background`.\n */\nexport function asCssVariableName(colorIdent) {\n return `--vscode-${colorIdent.replace(/\\./g, '-')}`;\n}\nexport function asCssVariable(color) {\n return `var(${asCssVariableName(color)})`;\n}\nexport function asCssVariableWithDefault(color, defaultCssValue) {\n return `var(${asCssVariableName(color)}, ${defaultCssValue})`;\n}\n// color registry\nexport const Extensions = {\n ColorContribution: 'base.contributions.colors'\n};\nclass ColorRegistry {\n constructor() {\n this._onDidChangeSchema = new Emitter();\n this.onDidChangeSchema = this._onDidChangeSchema.event;\n this.colorSchema = { type: 'object', properties: {} };\n this.colorReferenceSchema = { type: 'string', enum: [], enumDescriptions: [] };\n this.colorsById = {};\n }\n registerColor(id, defaults, description, needsTransparency = false, deprecationMessage) {\n const colorContribution = { id, description, defaults, needsTransparency, deprecationMessage };\n this.colorsById[id] = colorContribution;\n const propertySchema = { type: 'string', description, format: 'color-hex', defaultSnippets: [{ body: '${1:#ff0000}' }] };\n if (deprecationMessage) {\n propertySchema.deprecationMessage = deprecationMessage;\n }\n if (needsTransparency) {\n propertySchema.pattern = '^#(?:(?[0-9a-fA-f]{3}[0-9a-eA-E])|(?:[0-9a-fA-F]{6}(?:(?![fF]{2})(?:[0-9a-fA-F]{2}))))?$';\n propertySchema.patternErrorMessage = 'This color must be transparent or it will obscure content';\n }\n this.colorSchema.properties[id] = propertySchema;\n this.colorReferenceSchema.enum.push(id);\n this.colorReferenceSchema.enumDescriptions.push(description);\n this._onDidChangeSchema.fire();\n return id;\n }\n getColors() {\n return Object.keys(this.colorsById).map(id => this.colorsById[id]);\n }\n resolveDefaultColor(id, theme) {\n const colorDesc = this.colorsById[id];\n if (colorDesc && colorDesc.defaults) {\n const colorValue = colorDesc.defaults[theme.type];\n return resolveColorValue(colorValue, theme);\n }\n return undefined;\n }\n getColorSchema() {\n return this.colorSchema;\n }\n toString() {\n const sorter = (a, b) => {\n const cat1 = a.indexOf('.') === -1 ? 0 : 1;\n const cat2 = b.indexOf('.') === -1 ? 0 : 1;\n if (cat1 !== cat2) {\n return cat1 - cat2;\n }\n return a.localeCompare(b);\n };\n return Object.keys(this.colorsById).sort(sorter).map(k => `- \\`${k}\\`: ${this.colorsById[k].description}`).join('\\n');\n }\n}\nconst colorRegistry = new ColorRegistry();\nplatform.Registry.add(Extensions.ColorContribution, colorRegistry);\nexport function registerColor(id, defaults, description, needsTransparency, deprecationMessage) {\n return colorRegistry.registerColor(id, defaults, description, needsTransparency, deprecationMessage);\n}\n// ----- color functions\nexport function executeTransform(transform, theme) {\n var _a, _b, _c, _d;\n switch (transform.op) {\n case 0 /* ColorTransformType.Darken */:\n return (_a = resolveColorValue(transform.value, theme)) === null || _a === void 0 ? void 0 : _a.darken(transform.factor);\n case 1 /* ColorTransformType.Lighten */:\n return (_b = resolveColorValue(transform.value, theme)) === null || _b === void 0 ? void 0 : _b.lighten(transform.factor);\n case 2 /* ColorTransformType.Transparent */:\n return (_c = resolveColorValue(transform.value, theme)) === null || _c === void 0 ? void 0 : _c.transparent(transform.factor);\n case 3 /* ColorTransformType.Opaque */: {\n const backgroundColor = resolveColorValue(transform.background, theme);\n if (!backgroundColor) {\n return resolveColorValue(transform.value, theme);\n }\n return (_d = resolveColorValue(transform.value, theme)) === null || _d === void 0 ? void 0 : _d.makeOpaque(backgroundColor);\n }\n case 4 /* ColorTransformType.OneOf */:\n for (const candidate of transform.values) {\n const color = resolveColorValue(candidate, theme);\n if (color) {\n return color;\n }\n }\n return undefined;\n case 6 /* ColorTransformType.IfDefinedThenElse */:\n return resolveColorValue(theme.defines(transform.if) ? transform.then : transform.else, theme);\n case 5 /* ColorTransformType.LessProminent */: {\n const from = resolveColorValue(transform.value, theme);\n if (!from) {\n return undefined;\n }\n const backgroundColor = resolveColorValue(transform.background, theme);\n if (!backgroundColor) {\n return from.transparent(transform.factor * transform.transparency);\n }\n return from.isDarkerThan(backgroundColor)\n ? Color.getLighterColor(from, backgroundColor, transform.factor).transparent(transform.transparency)\n : Color.getDarkerColor(from, backgroundColor, transform.factor).transparent(transform.transparency);\n }\n default:\n throw assertNever(transform);\n }\n}\nexport function darken(colorValue, factor) {\n return { op: 0 /* ColorTransformType.Darken */, value: colorValue, factor };\n}\nexport function lighten(colorValue, factor) {\n return { op: 1 /* ColorTransformType.Lighten */, value: colorValue, factor };\n}\nexport function transparent(colorValue, factor) {\n return { op: 2 /* ColorTransformType.Transparent */, value: colorValue, factor };\n}\nexport function oneOf(...colorValues) {\n return { op: 4 /* ColorTransformType.OneOf */, values: colorValues };\n}\nexport function ifDefinedThenElse(ifArg, thenArg, elseArg) {\n return { op: 6 /* ColorTransformType.IfDefinedThenElse */, if: ifArg, then: thenArg, else: elseArg };\n}\nexport function lessProminent(colorValue, backgroundColorValue, factor, transparency) {\n return { op: 5 /* ColorTransformType.LessProminent */, value: colorValue, background: backgroundColorValue, factor, transparency };\n}\n// ----- implementation\n/**\n * @param colorValue Resolve a color value in the context of a theme\n */\nexport function resolveColorValue(colorValue, theme) {\n if (colorValue === null) {\n return undefined;\n }\n else if (typeof colorValue === 'string') {\n if (colorValue[0] === '#') {\n return Color.fromHex(colorValue);\n }\n return theme.getColor(colorValue);\n }\n else if (colorValue instanceof Color) {\n return colorValue;\n }\n else if (typeof colorValue === 'object') {\n return executeTransform(colorValue, theme);\n }\n return undefined;\n}\nexport const workbenchColorsSchemaId = 'vscode://schemas/workbench-colors';\nconst schemaRegistry = platform.Registry.as(JSONExtensions.JSONContribution);\nschemaRegistry.registerSchema(workbenchColorsSchemaId, colorRegistry.getColorSchema());\nconst delayer = new RunOnceScheduler(() => schemaRegistry.notifySchemaChanged(workbenchColorsSchemaId), 200);\ncolorRegistry.onDidChangeSchema(() => {\n if (!delayer.isScheduled()) {\n delayer.schedule();\n }\n});\n// setTimeout(_ => console.log(colorRegistry.toString()), 5000);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color } from '../../../../base/common/color.js';\nimport { registerColor, transparent } from '../colorUtils.js';\nexport const foreground = registerColor('foreground', { dark: '#CCCCCC', light: '#616161', hcDark: '#FFFFFF', hcLight: '#292929' }, nls.localize('foreground', \"Overall foreground color. This color is only used if not overridden by a component.\"));\nexport const disabledForeground = registerColor('disabledForeground', { dark: '#CCCCCC80', light: '#61616180', hcDark: '#A5A5A5', hcLight: '#7F7F7F' }, nls.localize('disabledForeground', \"Overall foreground for disabled elements. This color is only used if not overridden by a component.\"));\nexport const errorForeground = registerColor('errorForeground', { dark: '#F48771', light: '#A1260D', hcDark: '#F48771', hcLight: '#B5200D' }, nls.localize('errorForeground', \"Overall foreground color for error messages. This color is only used if not overridden by a component.\"));\nexport const descriptionForeground = registerColor('descriptionForeground', { light: '#717171', dark: transparent(foreground, 0.7), hcDark: transparent(foreground, 0.7), hcLight: transparent(foreground, 0.7) }, nls.localize('descriptionForeground', \"Foreground color for description text providing additional information, for example for a label.\"));\nexport const iconForeground = registerColor('icon.foreground', { dark: '#C5C5C5', light: '#424242', hcDark: '#FFFFFF', hcLight: '#292929' }, nls.localize('iconForeground', \"The default color for icons in the workbench.\"));\nexport const focusBorder = registerColor('focusBorder', { dark: '#007FD4', light: '#0090F1', hcDark: '#F38518', hcLight: '#006BBD' }, nls.localize('focusBorder', \"Overall border color for focused elements. This color is only used if not overridden by a component.\"));\nexport const contrastBorder = registerColor('contrastBorder', { light: null, dark: null, hcDark: '#6FC3DF', hcLight: '#0F4A85' }, nls.localize('contrastBorder', \"An extra border around elements to separate them from others for greater contrast.\"));\nexport const activeContrastBorder = registerColor('contrastActiveBorder', { light: null, dark: null, hcDark: focusBorder, hcLight: focusBorder }, nls.localize('activeContrastBorder', \"An extra border around active elements to separate them from others for greater contrast.\"));\nexport const selectionBackground = registerColor('selection.background', { light: null, dark: null, hcDark: null, hcLight: null }, nls.localize('selectionBackground', \"The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor.\"));\n// ------ text link\nexport const textLinkForeground = registerColor('textLink.foreground', { light: '#006AB1', dark: '#3794FF', hcDark: '#21A6FF', hcLight: '#0F4A85' }, nls.localize('textLinkForeground', \"Foreground color for links in text.\"));\nexport const textLinkActiveForeground = registerColor('textLink.activeForeground', { light: '#006AB1', dark: '#3794FF', hcDark: '#21A6FF', hcLight: '#0F4A85' }, nls.localize('textLinkActiveForeground', \"Foreground color for links in text when clicked on and on mouse hover.\"));\nexport const textSeparatorForeground = registerColor('textSeparator.foreground', { light: '#0000002e', dark: '#ffffff2e', hcDark: Color.black, hcLight: '#292929' }, nls.localize('textSeparatorForeground', \"Color for text separators.\"));\n// ------ text preformat\nexport const textPreformatForeground = registerColor('textPreformat.foreground', { light: '#A31515', dark: '#D7BA7D', hcDark: '#000000', hcLight: '#FFFFFF' }, nls.localize('textPreformatForeground', \"Foreground color for preformatted text segments.\"));\nexport const textPreformatBackground = registerColor('textPreformat.background', { light: '#0000001A', dark: '#FFFFFF1A', hcDark: '#FFFFFF', hcLight: '#09345f' }, nls.localize('textPreformatBackground', \"Background color for preformatted text segments.\"));\n// ------ text block quote\nexport const textBlockQuoteBackground = registerColor('textBlockQuote.background', { light: '#f2f2f2', dark: '#222222', hcDark: null, hcLight: '#F2F2F2' }, nls.localize('textBlockQuoteBackground', \"Background color for block quotes in text.\"));\nexport const textBlockQuoteBorder = registerColor('textBlockQuote.border', { light: '#007acc80', dark: '#007acc80', hcDark: Color.white, hcLight: '#292929' }, nls.localize('textBlockQuoteBorder', \"Border color for block quotes in text.\"));\n// ------ text code block\nexport const textCodeBlockBackground = registerColor('textCodeBlock.background', { light: '#dcdcdc66', dark: '#0a0a0a66', hcDark: Color.black, hcLight: '#F2F2F2' }, nls.localize('textCodeBlockBackground', \"Background color for code blocks in text.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color } from '../../../../base/common/color.js';\nimport { registerColor, transparent } from '../colorUtils.js';\n// Import the colors we need\nimport { contrastBorder, focusBorder } from './baseColors.js';\n// ----- sash\nexport const sashHoverBorder = registerColor('sash.hoverBorder', { dark: focusBorder, light: focusBorder, hcDark: focusBorder, hcLight: focusBorder }, nls.localize('sashActiveBorder', \"Border color of active sashes.\"));\n// ----- badge\nexport const badgeBackground = registerColor('badge.background', { dark: '#4D4D4D', light: '#C4C4C4', hcDark: Color.black, hcLight: '#0F4A85' }, nls.localize('badgeBackground', \"Badge background color. Badges are small information labels, e.g. for search results count.\"));\nexport const badgeForeground = registerColor('badge.foreground', { dark: Color.white, light: '#333', hcDark: Color.white, hcLight: Color.white }, nls.localize('badgeForeground', \"Badge foreground color. Badges are small information labels, e.g. for search results count.\"));\n// ----- scrollbar\nexport const scrollbarShadow = registerColor('scrollbar.shadow', { dark: '#000000', light: '#DDDDDD', hcDark: null, hcLight: null }, nls.localize('scrollbarShadow', \"Scrollbar shadow to indicate that the view is scrolled.\"));\nexport const scrollbarSliderBackground = registerColor('scrollbarSlider.background', { dark: Color.fromHex('#797979').transparent(0.4), light: Color.fromHex('#646464').transparent(0.4), hcDark: transparent(contrastBorder, 0.6), hcLight: transparent(contrastBorder, 0.4) }, nls.localize('scrollbarSliderBackground', \"Scrollbar slider background color.\"));\nexport const scrollbarSliderHoverBackground = registerColor('scrollbarSlider.hoverBackground', { dark: Color.fromHex('#646464').transparent(0.7), light: Color.fromHex('#646464').transparent(0.7), hcDark: transparent(contrastBorder, 0.8), hcLight: transparent(contrastBorder, 0.8) }, nls.localize('scrollbarSliderHoverBackground', \"Scrollbar slider background color when hovering.\"));\nexport const scrollbarSliderActiveBackground = registerColor('scrollbarSlider.activeBackground', { dark: Color.fromHex('#BFBFBF').transparent(0.4), light: Color.fromHex('#000000').transparent(0.6), hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('scrollbarSliderActiveBackground', \"Scrollbar slider background color when clicked on.\"));\n// ----- progress bar\nexport const progressBarBackground = registerColor('progressBar.background', { dark: Color.fromHex('#0E70C0'), light: Color.fromHex('#0E70C0'), hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('progressBarBackground', \"Background color of the progress bar that can show for long running operations.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color, RGBA } from '../../../../base/common/color.js';\nimport { registerColor, transparent, lessProminent, darken, lighten } from '../colorUtils.js';\n// Import the colors we need\nimport { foreground, contrastBorder, activeContrastBorder } from './baseColors.js';\nimport { scrollbarShadow, badgeBackground } from './miscColors.js';\n// ----- editor\nexport const editorBackground = registerColor('editor.background', { light: '#ffffff', dark: '#1E1E1E', hcDark: Color.black, hcLight: Color.white }, nls.localize('editorBackground', \"Editor background color.\"));\nexport const editorForeground = registerColor('editor.foreground', { light: '#333333', dark: '#BBBBBB', hcDark: Color.white, hcLight: foreground }, nls.localize('editorForeground', \"Editor default foreground color.\"));\nexport const editorStickyScrollBackground = registerColor('editorStickyScroll.background', { light: editorBackground, dark: editorBackground, hcDark: editorBackground, hcLight: editorBackground }, nls.localize('editorStickyScrollBackground', \"Background color of sticky scroll in the editor\"));\nexport const editorStickyScrollHoverBackground = registerColor('editorStickyScrollHover.background', { dark: '#2A2D2E', light: '#F0F0F0', hcDark: null, hcLight: Color.fromHex('#0F4A85').transparent(0.1) }, nls.localize('editorStickyScrollHoverBackground', \"Background color of sticky scroll on hover in the editor\"));\nexport const editorStickyScrollBorder = registerColor('editorStickyScroll.border', { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('editorStickyScrollBorder', \"Border color of sticky scroll in the editor\"));\nexport const editorStickyScrollShadow = registerColor('editorStickyScroll.shadow', { dark: scrollbarShadow, light: scrollbarShadow, hcDark: scrollbarShadow, hcLight: scrollbarShadow }, nls.localize('editorStickyScrollShadow', \" Shadow color of sticky scroll in the editor\"));\nexport const editorWidgetBackground = registerColor('editorWidget.background', { dark: '#252526', light: '#F3F3F3', hcDark: '#0C141F', hcLight: Color.white }, nls.localize('editorWidgetBackground', 'Background color of editor widgets, such as find/replace.'));\nexport const editorWidgetForeground = registerColor('editorWidget.foreground', { dark: foreground, light: foreground, hcDark: foreground, hcLight: foreground }, nls.localize('editorWidgetForeground', 'Foreground color of editor widgets, such as find/replace.'));\nexport const editorWidgetBorder = registerColor('editorWidget.border', { dark: '#454545', light: '#C8C8C8', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('editorWidgetBorder', 'Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.'));\nexport const editorWidgetResizeBorder = registerColor('editorWidget.resizeBorder', { light: null, dark: null, hcDark: null, hcLight: null }, nls.localize('editorWidgetResizeBorder', \"Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.\"));\nexport const editorErrorBackground = registerColor('editorError.background', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('editorError.background', 'Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorErrorForeground = registerColor('editorError.foreground', { dark: '#F14C4C', light: '#E51400', hcDark: '#F48771', hcLight: '#B5200D' }, nls.localize('editorError.foreground', 'Foreground color of error squigglies in the editor.'));\nexport const editorErrorBorder = registerColor('editorError.border', { dark: null, light: null, hcDark: Color.fromHex('#E47777').transparent(0.8), hcLight: '#B5200D' }, nls.localize('errorBorder', 'If set, color of double underlines for errors in the editor.'));\nexport const editorWarningBackground = registerColor('editorWarning.background', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('editorWarning.background', 'Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorWarningForeground = registerColor('editorWarning.foreground', { dark: '#CCA700', light: '#BF8803', hcDark: '#FFD370', hcLight: '#895503' }, nls.localize('editorWarning.foreground', 'Foreground color of warning squigglies in the editor.'));\nexport const editorWarningBorder = registerColor('editorWarning.border', { dark: null, light: null, hcDark: Color.fromHex('#FFCC00').transparent(0.8), hcLight: Color.fromHex('#FFCC00').transparent(0.8) }, nls.localize('warningBorder', 'If set, color of double underlines for warnings in the editor.'));\nexport const editorInfoBackground = registerColor('editorInfo.background', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('editorInfo.background', 'Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorInfoForeground = registerColor('editorInfo.foreground', { dark: '#3794FF', light: '#1a85ff', hcDark: '#3794FF', hcLight: '#1a85ff' }, nls.localize('editorInfo.foreground', 'Foreground color of info squigglies in the editor.'));\nexport const editorInfoBorder = registerColor('editorInfo.border', { dark: null, light: null, hcDark: Color.fromHex('#3794FF').transparent(0.8), hcLight: '#292929' }, nls.localize('infoBorder', 'If set, color of double underlines for infos in the editor.'));\nexport const editorHintForeground = registerColor('editorHint.foreground', { dark: Color.fromHex('#eeeeee').transparent(0.7), light: '#6c6c6c', hcDark: null, hcLight: null }, nls.localize('editorHint.foreground', 'Foreground color of hint squigglies in the editor.'));\nexport const editorHintBorder = registerColor('editorHint.border', { dark: null, light: null, hcDark: Color.fromHex('#eeeeee').transparent(0.8), hcLight: '#292929' }, nls.localize('hintBorder', 'If set, color of double underlines for hints in the editor.'));\nexport const editorActiveLinkForeground = registerColor('editorLink.activeForeground', { dark: '#4E94CE', light: Color.blue, hcDark: Color.cyan, hcLight: '#292929' }, nls.localize('activeLinkForeground', 'Color of active links.'));\n// ----- editor selection\nexport const editorSelectionBackground = registerColor('editor.selectionBackground', { light: '#ADD6FF', dark: '#264F78', hcDark: '#f3f518', hcLight: '#0F4A85' }, nls.localize('editorSelectionBackground', \"Color of the editor selection.\"));\nexport const editorSelectionForeground = registerColor('editor.selectionForeground', { light: null, dark: null, hcDark: '#000000', hcLight: Color.white }, nls.localize('editorSelectionForeground', \"Color of the selected text for high contrast.\"));\nexport const editorInactiveSelection = registerColor('editor.inactiveSelectionBackground', { light: transparent(editorSelectionBackground, 0.5), dark: transparent(editorSelectionBackground, 0.5), hcDark: transparent(editorSelectionBackground, 0.7), hcLight: transparent(editorSelectionBackground, 0.5) }, nls.localize('editorInactiveSelection', \"Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations.\"), true);\nexport const editorSelectionHighlight = registerColor('editor.selectionHighlightBackground', { light: lessProminent(editorSelectionBackground, editorBackground, 0.3, 0.6), dark: lessProminent(editorSelectionBackground, editorBackground, 0.3, 0.6), hcDark: null, hcLight: null }, nls.localize('editorSelectionHighlight', 'Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorSelectionHighlightBorder = registerColor('editor.selectionHighlightBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('editorSelectionHighlightBorder', \"Border color for regions with the same content as the selection.\"));\n// ----- editor find\nexport const editorFindMatch = registerColor('editor.findMatchBackground', { light: '#A8AC94', dark: '#515C6A', hcDark: null, hcLight: null }, nls.localize('editorFindMatch', \"Color of the current search match.\"));\nexport const editorFindMatchForeground = registerColor('editor.findMatchForeground', { light: null, dark: null, hcDark: null, hcLight: null }, nls.localize('editorFindMatchForeground', \"Text color of the current search match.\"));\nexport const editorFindMatchHighlight = registerColor('editor.findMatchHighlightBackground', { light: '#EA5C0055', dark: '#EA5C0055', hcDark: null, hcLight: null }, nls.localize('findMatchHighlight', \"Color of the other search matches. The color must not be opaque so as not to hide underlying decorations.\"), true);\nexport const editorFindMatchHighlightForeground = registerColor('editor.findMatchHighlightForeground', { light: null, dark: null, hcDark: null, hcLight: null }, nls.localize('findMatchHighlightForeground', \"Foreground color of the other search matches.\"), true);\nexport const editorFindRangeHighlight = registerColor('editor.findRangeHighlightBackground', { dark: '#3a3d4166', light: '#b4b4b44d', hcDark: null, hcLight: null }, nls.localize('findRangeHighlight', \"Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\"), true);\nexport const editorFindMatchBorder = registerColor('editor.findMatchBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('editorFindMatchBorder', \"Border color of the current search match.\"));\nexport const editorFindMatchHighlightBorder = registerColor('editor.findMatchHighlightBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('findMatchHighlightBorder', \"Border color of the other search matches.\"));\nexport const editorFindRangeHighlightBorder = registerColor('editor.findRangeHighlightBorder', { dark: null, light: null, hcDark: transparent(activeContrastBorder, 0.4), hcLight: transparent(activeContrastBorder, 0.4) }, nls.localize('findRangeHighlightBorder', \"Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\"), true);\n// ----- editor hover\nexport const editorHoverHighlight = registerColor('editor.hoverHighlightBackground', { light: '#ADD6FF26', dark: '#264f7840', hcDark: '#ADD6FF26', hcLight: null }, nls.localize('hoverHighlight', 'Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorHoverBackground = registerColor('editorHoverWidget.background', { light: editorWidgetBackground, dark: editorWidgetBackground, hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('hoverBackground', 'Background color of the editor hover.'));\nexport const editorHoverForeground = registerColor('editorHoverWidget.foreground', { light: editorWidgetForeground, dark: editorWidgetForeground, hcDark: editorWidgetForeground, hcLight: editorWidgetForeground }, nls.localize('hoverForeground', 'Foreground color of the editor hover.'));\nexport const editorHoverBorder = registerColor('editorHoverWidget.border', { light: editorWidgetBorder, dark: editorWidgetBorder, hcDark: editorWidgetBorder, hcLight: editorWidgetBorder }, nls.localize('hoverBorder', 'Border color of the editor hover.'));\nexport const editorHoverStatusBarBackground = registerColor('editorHoverWidget.statusBarBackground', { dark: lighten(editorHoverBackground, 0.2), light: darken(editorHoverBackground, 0.05), hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('statusBarBackground', \"Background color of the editor hover status bar.\"));\n// ----- editor inlay hint\nexport const editorInlayHintForeground = registerColor('editorInlayHint.foreground', { dark: '#969696', light: '#969696', hcDark: Color.white, hcLight: Color.black }, nls.localize('editorInlayHintForeground', 'Foreground color of inline hints'));\nexport const editorInlayHintBackground = registerColor('editorInlayHint.background', { dark: transparent(badgeBackground, .10), light: transparent(badgeBackground, .10), hcDark: transparent(Color.white, .10), hcLight: transparent(badgeBackground, .10) }, nls.localize('editorInlayHintBackground', 'Background color of inline hints'));\nexport const editorInlayHintTypeForeground = registerColor('editorInlayHint.typeForeground', { dark: editorInlayHintForeground, light: editorInlayHintForeground, hcDark: editorInlayHintForeground, hcLight: editorInlayHintForeground }, nls.localize('editorInlayHintForegroundTypes', 'Foreground color of inline hints for types'));\nexport const editorInlayHintTypeBackground = registerColor('editorInlayHint.typeBackground', { dark: editorInlayHintBackground, light: editorInlayHintBackground, hcDark: editorInlayHintBackground, hcLight: editorInlayHintBackground }, nls.localize('editorInlayHintBackgroundTypes', 'Background color of inline hints for types'));\nexport const editorInlayHintParameterForeground = registerColor('editorInlayHint.parameterForeground', { dark: editorInlayHintForeground, light: editorInlayHintForeground, hcDark: editorInlayHintForeground, hcLight: editorInlayHintForeground }, nls.localize('editorInlayHintForegroundParameter', 'Foreground color of inline hints for parameters'));\nexport const editorInlayHintParameterBackground = registerColor('editorInlayHint.parameterBackground', { dark: editorInlayHintBackground, light: editorInlayHintBackground, hcDark: editorInlayHintBackground, hcLight: editorInlayHintBackground }, nls.localize('editorInlayHintBackgroundParameter', 'Background color of inline hints for parameters'));\n// ----- editor lightbulb\nexport const editorLightBulbForeground = registerColor('editorLightBulb.foreground', { dark: '#FFCC00', light: '#DDB100', hcDark: '#FFCC00', hcLight: '#007ACC' }, nls.localize('editorLightBulbForeground', \"The color used for the lightbulb actions icon.\"));\nexport const editorLightBulbAutoFixForeground = registerColor('editorLightBulbAutoFix.foreground', { dark: '#75BEFF', light: '#007ACC', hcDark: '#75BEFF', hcLight: '#007ACC' }, nls.localize('editorLightBulbAutoFixForeground', \"The color used for the lightbulb auto fix actions icon.\"));\nexport const editorLightBulbAiForeground = registerColor('editorLightBulbAi.foreground', { dark: editorLightBulbForeground, light: editorLightBulbForeground, hcDark: editorLightBulbForeground, hcLight: editorLightBulbForeground }, nls.localize('editorLightBulbAiForeground', \"The color used for the lightbulb AI icon.\"));\n// ----- editor snippet\nexport const snippetTabstopHighlightBackground = registerColor('editor.snippetTabstopHighlightBackground', { dark: new Color(new RGBA(124, 124, 124, 0.3)), light: new Color(new RGBA(10, 50, 100, 0.2)), hcDark: new Color(new RGBA(124, 124, 124, 0.3)), hcLight: new Color(new RGBA(10, 50, 100, 0.2)) }, nls.localize('snippetTabstopHighlightBackground', \"Highlight background color of a snippet tabstop.\"));\nexport const snippetTabstopHighlightBorder = registerColor('editor.snippetTabstopHighlightBorder', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('snippetTabstopHighlightBorder', \"Highlight border color of a snippet tabstop.\"));\nexport const snippetFinalTabstopHighlightBackground = registerColor('editor.snippetFinalTabstopHighlightBackground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('snippetFinalTabstopHighlightBackground', \"Highlight background color of the final tabstop of a snippet.\"));\nexport const snippetFinalTabstopHighlightBorder = registerColor('editor.snippetFinalTabstopHighlightBorder', { dark: '#525252', light: new Color(new RGBA(10, 50, 100, 0.5)), hcDark: '#525252', hcLight: '#292929' }, nls.localize('snippetFinalTabstopHighlightBorder', \"Highlight border color of the final tabstop of a snippet.\"));\n// ----- diff editor\nexport const defaultInsertColor = new Color(new RGBA(155, 185, 85, .2));\nexport const defaultRemoveColor = new Color(new RGBA(255, 0, 0, .2));\nexport const diffInserted = registerColor('diffEditor.insertedTextBackground', { dark: '#9ccc2c33', light: '#9ccc2c40', hcDark: null, hcLight: null }, nls.localize('diffEditorInserted', 'Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const diffRemoved = registerColor('diffEditor.removedTextBackground', { dark: '#ff000033', light: '#ff000033', hcDark: null, hcLight: null }, nls.localize('diffEditorRemoved', 'Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const diffInsertedLine = registerColor('diffEditor.insertedLineBackground', { dark: defaultInsertColor, light: defaultInsertColor, hcDark: null, hcLight: null }, nls.localize('diffEditorInsertedLines', 'Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const diffRemovedLine = registerColor('diffEditor.removedLineBackground', { dark: defaultRemoveColor, light: defaultRemoveColor, hcDark: null, hcLight: null }, nls.localize('diffEditorRemovedLines', 'Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const diffInsertedLineGutter = registerColor('diffEditorGutter.insertedLineBackground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('diffEditorInsertedLineGutter', 'Background color for the margin where lines got inserted.'));\nexport const diffRemovedLineGutter = registerColor('diffEditorGutter.removedLineBackground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('diffEditorRemovedLineGutter', 'Background color for the margin where lines got removed.'));\nexport const diffOverviewRulerInserted = registerColor('diffEditorOverview.insertedForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('diffEditorOverviewInserted', 'Diff overview ruler foreground for inserted content.'));\nexport const diffOverviewRulerRemoved = registerColor('diffEditorOverview.removedForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('diffEditorOverviewRemoved', 'Diff overview ruler foreground for removed content.'));\nexport const diffInsertedOutline = registerColor('diffEditor.insertedTextBorder', { dark: null, light: null, hcDark: '#33ff2eff', hcLight: '#374E06' }, nls.localize('diffEditorInsertedOutline', 'Outline color for the text that got inserted.'));\nexport const diffRemovedOutline = registerColor('diffEditor.removedTextBorder', { dark: null, light: null, hcDark: '#FF008F', hcLight: '#AD0707' }, nls.localize('diffEditorRemovedOutline', 'Outline color for text that got removed.'));\nexport const diffBorder = registerColor('diffEditor.border', { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('diffEditorBorder', 'Border color between the two text editors.'));\nexport const diffDiagonalFill = registerColor('diffEditor.diagonalFill', { dark: '#cccccc33', light: '#22222233', hcDark: null, hcLight: null }, nls.localize('diffDiagonalFill', \"Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.\"));\nexport const diffUnchangedRegionBackground = registerColor('diffEditor.unchangedRegionBackground', { dark: 'sideBar.background', light: 'sideBar.background', hcDark: 'sideBar.background', hcLight: 'sideBar.background' }, nls.localize('diffEditor.unchangedRegionBackground', \"The background color of unchanged blocks in the diff editor.\"));\nexport const diffUnchangedRegionForeground = registerColor('diffEditor.unchangedRegionForeground', { dark: 'foreground', light: 'foreground', hcDark: 'foreground', hcLight: 'foreground' }, nls.localize('diffEditor.unchangedRegionForeground', \"The foreground color of unchanged blocks in the diff editor.\"));\nexport const diffUnchangedTextBackground = registerColor('diffEditor.unchangedCodeBackground', { dark: '#74747429', light: '#b8b8b829', hcDark: null, hcLight: null }, nls.localize('diffEditor.unchangedCodeBackground', \"The background color of unchanged code in the diff editor.\"));\n// ----- widget\nexport const widgetShadow = registerColor('widget.shadow', { dark: transparent(Color.black, .36), light: transparent(Color.black, .16), hcDark: null, hcLight: null }, nls.localize('widgetShadow', 'Shadow color of widgets such as find/replace inside the editor.'));\nexport const widgetBorder = registerColor('widget.border', { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('widgetBorder', 'Border color of widgets such as find/replace inside the editor.'));\n// ----- toolbar\nexport const toolbarHoverBackground = registerColor('toolbar.hoverBackground', { dark: '#5a5d5e50', light: '#b8b8b850', hcDark: null, hcLight: null }, nls.localize('toolbarHoverBackground', \"Toolbar background when hovering over actions using the mouse\"));\nexport const toolbarHoverOutline = registerColor('toolbar.hoverOutline', { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('toolbarHoverOutline', \"Toolbar outline when hovering over actions using the mouse\"));\nexport const toolbarActiveBackground = registerColor('toolbar.activeBackground', { dark: lighten(toolbarHoverBackground, 0.1), light: darken(toolbarHoverBackground, 0.1), hcDark: null, hcLight: null }, nls.localize('toolbarActiveBackground', \"Toolbar background when holding the mouse over actions\"));\n// ----- breadcumbs\nexport const breadcrumbsForeground = registerColor('breadcrumb.foreground', { light: transparent(foreground, 0.8), dark: transparent(foreground, 0.8), hcDark: transparent(foreground, 0.8), hcLight: transparent(foreground, 0.8) }, nls.localize('breadcrumbsFocusForeground', \"Color of focused breadcrumb items.\"));\nexport const breadcrumbsBackground = registerColor('breadcrumb.background', { light: editorBackground, dark: editorBackground, hcDark: editorBackground, hcLight: editorBackground }, nls.localize('breadcrumbsBackground', \"Background color of breadcrumb items.\"));\nexport const breadcrumbsFocusForeground = registerColor('breadcrumb.focusForeground', { light: darken(foreground, 0.2), dark: lighten(foreground, 0.1), hcDark: lighten(foreground, 0.1), hcLight: lighten(foreground, 0.1) }, nls.localize('breadcrumbsFocusForeground', \"Color of focused breadcrumb items.\"));\nexport const breadcrumbsActiveSelectionForeground = registerColor('breadcrumb.activeSelectionForeground', { light: darken(foreground, 0.2), dark: lighten(foreground, 0.1), hcDark: lighten(foreground, 0.1), hcLight: lighten(foreground, 0.1) }, nls.localize('breadcrumbsSelectedForeground', \"Color of selected breadcrumb items.\"));\nexport const breadcrumbsPickerBackground = registerColor('breadcrumbPicker.background', { light: editorWidgetBackground, dark: editorWidgetBackground, hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('breadcrumbsSelectedBackground', \"Background color of breadcrumb item picker.\"));\n// ----- merge\nconst headerTransparency = 0.5;\nconst currentBaseColor = Color.fromHex('#40C8AE').transparent(headerTransparency);\nconst incomingBaseColor = Color.fromHex('#40A6FF').transparent(headerTransparency);\nconst commonBaseColor = Color.fromHex('#606060').transparent(0.4);\nconst contentTransparency = 0.4;\nconst rulerTransparency = 1;\nexport const mergeCurrentHeaderBackground = registerColor('merge.currentHeaderBackground', { dark: currentBaseColor, light: currentBaseColor, hcDark: null, hcLight: null }, nls.localize('mergeCurrentHeaderBackground', 'Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeCurrentContentBackground = registerColor('merge.currentContentBackground', { dark: transparent(mergeCurrentHeaderBackground, contentTransparency), light: transparent(mergeCurrentHeaderBackground, contentTransparency), hcDark: transparent(mergeCurrentHeaderBackground, contentTransparency), hcLight: transparent(mergeCurrentHeaderBackground, contentTransparency) }, nls.localize('mergeCurrentContentBackground', 'Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeIncomingHeaderBackground = registerColor('merge.incomingHeaderBackground', { dark: incomingBaseColor, light: incomingBaseColor, hcDark: null, hcLight: null }, nls.localize('mergeIncomingHeaderBackground', 'Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeIncomingContentBackground = registerColor('merge.incomingContentBackground', { dark: transparent(mergeIncomingHeaderBackground, contentTransparency), light: transparent(mergeIncomingHeaderBackground, contentTransparency), hcDark: transparent(mergeIncomingHeaderBackground, contentTransparency), hcLight: transparent(mergeIncomingHeaderBackground, contentTransparency) }, nls.localize('mergeIncomingContentBackground', 'Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeCommonHeaderBackground = registerColor('merge.commonHeaderBackground', { dark: commonBaseColor, light: commonBaseColor, hcDark: null, hcLight: null }, nls.localize('mergeCommonHeaderBackground', 'Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeCommonContentBackground = registerColor('merge.commonContentBackground', { dark: transparent(mergeCommonHeaderBackground, contentTransparency), light: transparent(mergeCommonHeaderBackground, contentTransparency), hcDark: transparent(mergeCommonHeaderBackground, contentTransparency), hcLight: transparent(mergeCommonHeaderBackground, contentTransparency) }, nls.localize('mergeCommonContentBackground', 'Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeBorder = registerColor('merge.border', { dark: null, light: null, hcDark: '#C3DF6F', hcLight: '#007ACC' }, nls.localize('mergeBorder', 'Border color on headers and the splitter in inline merge-conflicts.'));\nexport const overviewRulerCurrentContentForeground = registerColor('editorOverviewRuler.currentContentForeground', { dark: transparent(mergeCurrentHeaderBackground, rulerTransparency), light: transparent(mergeCurrentHeaderBackground, rulerTransparency), hcDark: mergeBorder, hcLight: mergeBorder }, nls.localize('overviewRulerCurrentContentForeground', 'Current overview ruler foreground for inline merge-conflicts.'));\nexport const overviewRulerIncomingContentForeground = registerColor('editorOverviewRuler.incomingContentForeground', { dark: transparent(mergeIncomingHeaderBackground, rulerTransparency), light: transparent(mergeIncomingHeaderBackground, rulerTransparency), hcDark: mergeBorder, hcLight: mergeBorder }, nls.localize('overviewRulerIncomingContentForeground', 'Incoming overview ruler foreground for inline merge-conflicts.'));\nexport const overviewRulerCommonContentForeground = registerColor('editorOverviewRuler.commonContentForeground', { dark: transparent(mergeCommonHeaderBackground, rulerTransparency), light: transparent(mergeCommonHeaderBackground, rulerTransparency), hcDark: mergeBorder, hcLight: mergeBorder }, nls.localize('overviewRulerCommonContentForeground', 'Common ancestor overview ruler foreground for inline merge-conflicts.'));\nexport const overviewRulerFindMatchForeground = registerColor('editorOverviewRuler.findMatchForeground', { dark: '#d186167e', light: '#d186167e', hcDark: '#AB5A00', hcLight: '' }, nls.localize('overviewRulerFindMatchForeground', 'Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const overviewRulerSelectionHighlightForeground = registerColor('editorOverviewRuler.selectionHighlightForeground', { dark: '#A0A0A0CC', light: '#A0A0A0CC', hcDark: '#A0A0A0CC', hcLight: '#A0A0A0CC' }, nls.localize('overviewRulerSelectionHighlightForeground', 'Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations.'), true);\n// ----- problems\nexport const problemsErrorIconForeground = registerColor('problemsErrorIcon.foreground', { dark: editorErrorForeground, light: editorErrorForeground, hcDark: editorErrorForeground, hcLight: editorErrorForeground }, nls.localize('problemsErrorIconForeground', \"The color used for the problems error icon.\"));\nexport const problemsWarningIconForeground = registerColor('problemsWarningIcon.foreground', { dark: editorWarningForeground, light: editorWarningForeground, hcDark: editorWarningForeground, hcLight: editorWarningForeground }, nls.localize('problemsWarningIconForeground', \"The color used for the problems warning icon.\"));\nexport const problemsInfoIconForeground = registerColor('problemsInfoIcon.foreground', { dark: editorInfoForeground, light: editorInfoForeground, hcDark: editorInfoForeground, hcLight: editorInfoForeground }, nls.localize('problemsInfoIconForeground', \"The color used for the problems info icon.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color, RGBA } from '../../../../base/common/color.js';\nimport { registerColor, transparent } from '../colorUtils.js';\n// Import the colors we need\nimport { editorInfoForeground, editorWarningForeground, editorWarningBorder, editorInfoBorder } from './editorColors.js';\nimport { scrollbarSliderBackground, scrollbarSliderHoverBackground, scrollbarSliderActiveBackground } from './miscColors.js';\nexport const minimapFindMatch = registerColor('minimap.findMatchHighlight', { light: '#d18616', dark: '#d18616', hcDark: '#AB5A00', hcLight: '#0F4A85' }, nls.localize('minimapFindMatchHighlight', 'Minimap marker color for find matches.'), true);\nexport const minimapSelectionOccurrenceHighlight = registerColor('minimap.selectionOccurrenceHighlight', { light: '#c9c9c9', dark: '#676767', hcDark: '#ffffff', hcLight: '#0F4A85' }, nls.localize('minimapSelectionOccurrenceHighlight', 'Minimap marker color for repeating editor selections.'), true);\nexport const minimapSelection = registerColor('minimap.selectionHighlight', { light: '#ADD6FF', dark: '#264F78', hcDark: '#ffffff', hcLight: '#0F4A85' }, nls.localize('minimapSelectionHighlight', 'Minimap marker color for the editor selection.'), true);\nexport const minimapInfo = registerColor('minimap.infoHighlight', { dark: editorInfoForeground, light: editorInfoForeground, hcDark: editorInfoBorder, hcLight: editorInfoBorder }, nls.localize('minimapInfo', 'Minimap marker color for infos.'));\nexport const minimapWarning = registerColor('minimap.warningHighlight', { dark: editorWarningForeground, light: editorWarningForeground, hcDark: editorWarningBorder, hcLight: editorWarningBorder }, nls.localize('overviewRuleWarning', 'Minimap marker color for warnings.'));\nexport const minimapError = registerColor('minimap.errorHighlight', { dark: new Color(new RGBA(255, 18, 18, 0.7)), light: new Color(new RGBA(255, 18, 18, 0.7)), hcDark: new Color(new RGBA(255, 50, 50, 1)), hcLight: '#B5200D' }, nls.localize('minimapError', 'Minimap marker color for errors.'));\nexport const minimapBackground = registerColor('minimap.background', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('minimapBackground', \"Minimap background color.\"));\nexport const minimapForegroundOpacity = registerColor('minimap.foregroundOpacity', { dark: Color.fromHex('#000f'), light: Color.fromHex('#000f'), hcDark: Color.fromHex('#000f'), hcLight: Color.fromHex('#000f') }, nls.localize('minimapForegroundOpacity', 'Opacity of foreground elements rendered in the minimap. For example, \"#000000c0\" will render the elements with 75% opacity.'));\nexport const minimapSliderBackground = registerColor('minimapSlider.background', { light: transparent(scrollbarSliderBackground, 0.5), dark: transparent(scrollbarSliderBackground, 0.5), hcDark: transparent(scrollbarSliderBackground, 0.5), hcLight: transparent(scrollbarSliderBackground, 0.5) }, nls.localize('minimapSliderBackground', \"Minimap slider background color.\"));\nexport const minimapSliderHoverBackground = registerColor('minimapSlider.hoverBackground', { light: transparent(scrollbarSliderHoverBackground, 0.5), dark: transparent(scrollbarSliderHoverBackground, 0.5), hcDark: transparent(scrollbarSliderHoverBackground, 0.5), hcLight: transparent(scrollbarSliderHoverBackground, 0.5) }, nls.localize('minimapSliderHoverBackground', \"Minimap slider background color when hovering.\"));\nexport const minimapSliderActiveBackground = registerColor('minimapSlider.activeBackground', { light: transparent(scrollbarSliderActiveBackground, 0.5), dark: transparent(scrollbarSliderActiveBackground, 0.5), hcDark: transparent(scrollbarSliderActiveBackground, 0.5), hcLight: transparent(scrollbarSliderActiveBackground, 0.5) }, nls.localize('minimapSliderActiveBackground', \"Minimap slider background color when clicked on.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color, RGBA } from '../../../../base/common/color.js';\nimport { registerColor, transparent, lighten, darken } from '../colorUtils.js';\n// Import the colors we need\nimport { foreground, contrastBorder, focusBorder, iconForeground } from './baseColors.js';\nimport { editorWidgetBackground } from './editorColors.js';\n// ----- input\nexport const inputBackground = registerColor('input.background', { dark: '#3C3C3C', light: Color.white, hcDark: Color.black, hcLight: Color.white }, nls.localize('inputBoxBackground', \"Input box background.\"));\nexport const inputForeground = registerColor('input.foreground', { dark: foreground, light: foreground, hcDark: foreground, hcLight: foreground }, nls.localize('inputBoxForeground', \"Input box foreground.\"));\nexport const inputBorder = registerColor('input.border', { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('inputBoxBorder', \"Input box border.\"));\nexport const inputActiveOptionBorder = registerColor('inputOption.activeBorder', { dark: '#007ACC', light: '#007ACC', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('inputBoxActiveOptionBorder', \"Border color of activated options in input fields.\"));\nexport const inputActiveOptionHoverBackground = registerColor('inputOption.hoverBackground', { dark: '#5a5d5e80', light: '#b8b8b850', hcDark: null, hcLight: null }, nls.localize('inputOption.hoverBackground', \"Background color of activated options in input fields.\"));\nexport const inputActiveOptionBackground = registerColor('inputOption.activeBackground', { dark: transparent(focusBorder, 0.4), light: transparent(focusBorder, 0.2), hcDark: Color.transparent, hcLight: Color.transparent }, nls.localize('inputOption.activeBackground', \"Background hover color of options in input fields.\"));\nexport const inputActiveOptionForeground = registerColor('inputOption.activeForeground', { dark: Color.white, light: Color.black, hcDark: foreground, hcLight: foreground }, nls.localize('inputOption.activeForeground', \"Foreground color of activated options in input fields.\"));\nexport const inputPlaceholderForeground = registerColor('input.placeholderForeground', { light: transparent(foreground, 0.5), dark: transparent(foreground, 0.5), hcDark: transparent(foreground, 0.7), hcLight: transparent(foreground, 0.7) }, nls.localize('inputPlaceholderForeground', \"Input box foreground color for placeholder text.\"));\n// ----- input validation\nexport const inputValidationInfoBackground = registerColor('inputValidation.infoBackground', { dark: '#063B49', light: '#D6ECF2', hcDark: Color.black, hcLight: Color.white }, nls.localize('inputValidationInfoBackground', \"Input validation background color for information severity.\"));\nexport const inputValidationInfoForeground = registerColor('inputValidation.infoForeground', { dark: null, light: null, hcDark: null, hcLight: foreground }, nls.localize('inputValidationInfoForeground', \"Input validation foreground color for information severity.\"));\nexport const inputValidationInfoBorder = registerColor('inputValidation.infoBorder', { dark: '#007acc', light: '#007acc', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('inputValidationInfoBorder', \"Input validation border color for information severity.\"));\nexport const inputValidationWarningBackground = registerColor('inputValidation.warningBackground', { dark: '#352A05', light: '#F6F5D2', hcDark: Color.black, hcLight: Color.white }, nls.localize('inputValidationWarningBackground', \"Input validation background color for warning severity.\"));\nexport const inputValidationWarningForeground = registerColor('inputValidation.warningForeground', { dark: null, light: null, hcDark: null, hcLight: foreground }, nls.localize('inputValidationWarningForeground', \"Input validation foreground color for warning severity.\"));\nexport const inputValidationWarningBorder = registerColor('inputValidation.warningBorder', { dark: '#B89500', light: '#B89500', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('inputValidationWarningBorder', \"Input validation border color for warning severity.\"));\nexport const inputValidationErrorBackground = registerColor('inputValidation.errorBackground', { dark: '#5A1D1D', light: '#F2DEDE', hcDark: Color.black, hcLight: Color.white }, nls.localize('inputValidationErrorBackground', \"Input validation background color for error severity.\"));\nexport const inputValidationErrorForeground = registerColor('inputValidation.errorForeground', { dark: null, light: null, hcDark: null, hcLight: foreground }, nls.localize('inputValidationErrorForeground', \"Input validation foreground color for error severity.\"));\nexport const inputValidationErrorBorder = registerColor('inputValidation.errorBorder', { dark: '#BE1100', light: '#BE1100', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('inputValidationErrorBorder', \"Input validation border color for error severity.\"));\n// ----- select\nexport const selectBackground = registerColor('dropdown.background', { dark: '#3C3C3C', light: Color.white, hcDark: Color.black, hcLight: Color.white }, nls.localize('dropdownBackground', \"Dropdown background.\"));\nexport const selectListBackground = registerColor('dropdown.listBackground', { dark: null, light: null, hcDark: Color.black, hcLight: Color.white }, nls.localize('dropdownListBackground', \"Dropdown list background.\"));\nexport const selectForeground = registerColor('dropdown.foreground', { dark: '#F0F0F0', light: foreground, hcDark: Color.white, hcLight: foreground }, nls.localize('dropdownForeground', \"Dropdown foreground.\"));\nexport const selectBorder = registerColor('dropdown.border', { dark: selectBackground, light: '#CECECE', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('dropdownBorder', \"Dropdown border.\"));\n// ------ button\nexport const buttonForeground = registerColor('button.foreground', { dark: Color.white, light: Color.white, hcDark: Color.white, hcLight: Color.white }, nls.localize('buttonForeground', \"Button foreground color.\"));\nexport const buttonSeparator = registerColor('button.separator', { dark: transparent(buttonForeground, .4), light: transparent(buttonForeground, .4), hcDark: transparent(buttonForeground, .4), hcLight: transparent(buttonForeground, .4) }, nls.localize('buttonSeparator', \"Button separator color.\"));\nexport const buttonBackground = registerColor('button.background', { dark: '#0E639C', light: '#007ACC', hcDark: null, hcLight: '#0F4A85' }, nls.localize('buttonBackground', \"Button background color.\"));\nexport const buttonHoverBackground = registerColor('button.hoverBackground', { dark: lighten(buttonBackground, 0.2), light: darken(buttonBackground, 0.2), hcDark: buttonBackground, hcLight: buttonBackground }, nls.localize('buttonHoverBackground', \"Button background color when hovering.\"));\nexport const buttonBorder = registerColor('button.border', { dark: contrastBorder, light: contrastBorder, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('buttonBorder', \"Button border color.\"));\nexport const buttonSecondaryForeground = registerColor('button.secondaryForeground', { dark: Color.white, light: Color.white, hcDark: Color.white, hcLight: foreground }, nls.localize('buttonSecondaryForeground', \"Secondary button foreground color.\"));\nexport const buttonSecondaryBackground = registerColor('button.secondaryBackground', { dark: '#3A3D41', light: '#5F6A79', hcDark: null, hcLight: Color.white }, nls.localize('buttonSecondaryBackground', \"Secondary button background color.\"));\nexport const buttonSecondaryHoverBackground = registerColor('button.secondaryHoverBackground', { dark: lighten(buttonSecondaryBackground, 0.2), light: darken(buttonSecondaryBackground, 0.2), hcDark: null, hcLight: null }, nls.localize('buttonSecondaryHoverBackground', \"Secondary button background color when hovering.\"));\n// ------ checkbox\nexport const checkboxBackground = registerColor('checkbox.background', { dark: selectBackground, light: selectBackground, hcDark: selectBackground, hcLight: selectBackground }, nls.localize('checkbox.background', \"Background color of checkbox widget.\"));\nexport const checkboxSelectBackground = registerColor('checkbox.selectBackground', { dark: editorWidgetBackground, light: editorWidgetBackground, hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('checkbox.select.background', \"Background color of checkbox widget when the element it's in is selected.\"));\nexport const checkboxForeground = registerColor('checkbox.foreground', { dark: selectForeground, light: selectForeground, hcDark: selectForeground, hcLight: selectForeground }, nls.localize('checkbox.foreground', \"Foreground color of checkbox widget.\"));\nexport const checkboxBorder = registerColor('checkbox.border', { dark: selectBorder, light: selectBorder, hcDark: selectBorder, hcLight: selectBorder }, nls.localize('checkbox.border', \"Border color of checkbox widget.\"));\nexport const checkboxSelectBorder = registerColor('checkbox.selectBorder', { dark: iconForeground, light: iconForeground, hcDark: iconForeground, hcLight: iconForeground }, nls.localize('checkbox.select.border', \"Border color of checkbox widget when the element it's in is selected.\"));\n// ------ keybinding label\nexport const keybindingLabelBackground = registerColor('keybindingLabel.background', { dark: new Color(new RGBA(128, 128, 128, 0.17)), light: new Color(new RGBA(221, 221, 221, 0.4)), hcDark: Color.transparent, hcLight: Color.transparent }, nls.localize('keybindingLabelBackground', \"Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.\"));\nexport const keybindingLabelForeground = registerColor('keybindingLabel.foreground', { dark: Color.fromHex('#CCCCCC'), light: Color.fromHex('#555555'), hcDark: Color.white, hcLight: foreground }, nls.localize('keybindingLabelForeground', \"Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.\"));\nexport const keybindingLabelBorder = registerColor('keybindingLabel.border', { dark: new Color(new RGBA(51, 51, 51, 0.6)), light: new Color(new RGBA(204, 204, 204, 0.4)), hcDark: new Color(new RGBA(111, 195, 223)), hcLight: contrastBorder }, nls.localize('keybindingLabelBorder', \"Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.\"));\nexport const keybindingLabelBottomBorder = registerColor('keybindingLabel.bottomBorder', { dark: new Color(new RGBA(68, 68, 68, 0.6)), light: new Color(new RGBA(187, 187, 187, 0.4)), hcDark: new Color(new RGBA(111, 195, 223)), hcLight: foreground }, nls.localize('keybindingLabelBottomBorder', \"Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\nimport { registerColor, transparent } from '../colorUtils.js';\nimport { foreground } from './baseColors.js';\nimport { editorErrorForeground, editorInfoForeground, editorWarningForeground } from './editorColors.js';\nimport { minimapFindMatch } from './minimapColors.js';\nexport const chartsForeground = registerColor('charts.foreground', { dark: foreground, light: foreground, hcDark: foreground, hcLight: foreground }, nls.localize('chartsForeground', \"The foreground color used in charts.\"));\nexport const chartsLines = registerColor('charts.lines', { dark: transparent(foreground, .5), light: transparent(foreground, .5), hcDark: transparent(foreground, .5), hcLight: transparent(foreground, .5) }, nls.localize('chartsLines', \"The color used for horizontal lines in charts.\"));\nexport const chartsRed = registerColor('charts.red', { dark: editorErrorForeground, light: editorErrorForeground, hcDark: editorErrorForeground, hcLight: editorErrorForeground }, nls.localize('chartsRed', \"The red color used in chart visualizations.\"));\nexport const chartsBlue = registerColor('charts.blue', { dark: editorInfoForeground, light: editorInfoForeground, hcDark: editorInfoForeground, hcLight: editorInfoForeground }, nls.localize('chartsBlue', \"The blue color used in chart visualizations.\"));\nexport const chartsYellow = registerColor('charts.yellow', { dark: editorWarningForeground, light: editorWarningForeground, hcDark: editorWarningForeground, hcLight: editorWarningForeground }, nls.localize('chartsYellow', \"The yellow color used in chart visualizations.\"));\nexport const chartsOrange = registerColor('charts.orange', { dark: minimapFindMatch, light: minimapFindMatch, hcDark: minimapFindMatch, hcLight: minimapFindMatch }, nls.localize('chartsOrange', \"The orange color used in chart visualizations.\"));\nexport const chartsGreen = registerColor('charts.green', { dark: '#89D185', light: '#388A34', hcDark: '#89D185', hcLight: '#374e06' }, nls.localize('chartsGreen', \"The green color used in chart visualizations.\"));\nexport const chartsPurple = registerColor('charts.purple', { dark: '#B180D7', light: '#652D90', hcDark: '#B180D7', hcLight: '#652D90' }, nls.localize('chartsPurple', \"The purple color used in chart visualizations.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color } from '../../../../base/common/color.js';\nimport { registerColor, darken, lighten, transparent, ifDefinedThenElse } from '../colorUtils.js';\n// Import the colors we need\nimport { foreground, contrastBorder, activeContrastBorder, focusBorder, iconForeground } from './baseColors.js';\nimport { editorWidgetBackground, editorFindMatchHighlightBorder, editorFindMatchHighlight, widgetShadow } from './editorColors.js';\nexport const listFocusBackground = registerColor('list.focusBackground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listFocusBackground', \"List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listFocusForeground = registerColor('list.focusForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listFocusForeground', \"List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listFocusOutline = registerColor('list.focusOutline', { dark: focusBorder, light: focusBorder, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('listFocusOutline', \"List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listFocusAndSelectionOutline = registerColor('list.focusAndSelectionOutline', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listFocusAndSelectionOutline', \"List/Tree outline color for the focused item when the list/tree is active and selected. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listActiveSelectionBackground = registerColor('list.activeSelectionBackground', { dark: '#04395E', light: '#0060C0', hcDark: null, hcLight: Color.fromHex('#0F4A85').transparent(0.1) }, nls.localize('listActiveSelectionBackground', \"List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listActiveSelectionForeground = registerColor('list.activeSelectionForeground', { dark: Color.white, light: Color.white, hcDark: null, hcLight: null }, nls.localize('listActiveSelectionForeground', \"List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listActiveSelectionIconForeground = registerColor('list.activeSelectionIconForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listActiveSelectionIconForeground', \"List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveSelectionBackground = registerColor('list.inactiveSelectionBackground', { dark: '#37373D', light: '#E4E6F1', hcDark: null, hcLight: Color.fromHex('#0F4A85').transparent(0.1) }, nls.localize('listInactiveSelectionBackground', \"List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveSelectionForeground = registerColor('list.inactiveSelectionForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listInactiveSelectionForeground', \"List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveSelectionIconForeground = registerColor('list.inactiveSelectionIconForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listInactiveSelectionIconForeground', \"List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveFocusBackground = registerColor('list.inactiveFocusBackground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listInactiveFocusBackground', \"List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveFocusOutline = registerColor('list.inactiveFocusOutline', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listInactiveFocusOutline', \"List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listHoverBackground = registerColor('list.hoverBackground', { dark: '#2A2D2E', light: '#F0F0F0', hcDark: Color.white.transparent(0.1), hcLight: Color.fromHex('#0F4A85').transparent(0.1) }, nls.localize('listHoverBackground', \"List/Tree background when hovering over items using the mouse.\"));\nexport const listHoverForeground = registerColor('list.hoverForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listHoverForeground', \"List/Tree foreground when hovering over items using the mouse.\"));\nexport const listDropOverBackground = registerColor('list.dropBackground', { dark: '#062F4A', light: '#D6EBFF', hcDark: null, hcLight: null }, nls.localize('listDropBackground', \"List/Tree drag and drop background when moving items over other items when using the mouse.\"));\nexport const listDropBetweenBackground = registerColor('list.dropBetweenBackground', { dark: iconForeground, light: iconForeground, hcDark: null, hcLight: null }, nls.localize('listDropBetweenBackground', \"List/Tree drag and drop border color when moving items between items when using the mouse.\"));\nexport const listHighlightForeground = registerColor('list.highlightForeground', { dark: '#2AAAFF', light: '#0066BF', hcDark: focusBorder, hcLight: focusBorder }, nls.localize('highlight', 'List/Tree foreground color of the match highlights when searching inside the list/tree.'));\nexport const listFocusHighlightForeground = registerColor('list.focusHighlightForeground', { dark: listHighlightForeground, light: ifDefinedThenElse(listActiveSelectionBackground, listHighlightForeground, '#BBE7FF'), hcDark: listHighlightForeground, hcLight: listHighlightForeground }, nls.localize('listFocusHighlightForeground', 'List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree.'));\nexport const listInvalidItemForeground = registerColor('list.invalidItemForeground', { dark: '#B89500', light: '#B89500', hcDark: '#B89500', hcLight: '#B5200D' }, nls.localize('invalidItemForeground', 'List/Tree foreground color for invalid items, for example an unresolved root in explorer.'));\nexport const listErrorForeground = registerColor('list.errorForeground', { dark: '#F88070', light: '#B01011', hcDark: null, hcLight: null }, nls.localize('listErrorForeground', 'Foreground color of list items containing errors.'));\nexport const listWarningForeground = registerColor('list.warningForeground', { dark: '#CCA700', light: '#855F00', hcDark: null, hcLight: null }, nls.localize('listWarningForeground', 'Foreground color of list items containing warnings.'));\nexport const listFilterWidgetBackground = registerColor('listFilterWidget.background', { light: darken(editorWidgetBackground, 0), dark: lighten(editorWidgetBackground, 0), hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('listFilterWidgetBackground', 'Background color of the type filter widget in lists and trees.'));\nexport const listFilterWidgetOutline = registerColor('listFilterWidget.outline', { dark: Color.transparent, light: Color.transparent, hcDark: '#f38518', hcLight: '#007ACC' }, nls.localize('listFilterWidgetOutline', 'Outline color of the type filter widget in lists and trees.'));\nexport const listFilterWidgetNoMatchesOutline = registerColor('listFilterWidget.noMatchesOutline', { dark: '#BE1100', light: '#BE1100', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('listFilterWidgetNoMatchesOutline', 'Outline color of the type filter widget in lists and trees, when there are no matches.'));\nexport const listFilterWidgetShadow = registerColor('listFilterWidget.shadow', { dark: widgetShadow, light: widgetShadow, hcDark: widgetShadow, hcLight: widgetShadow }, nls.localize('listFilterWidgetShadow', 'Shadow color of the type filter widget in lists and trees.'));\nexport const listFilterMatchHighlight = registerColor('list.filterMatchBackground', { dark: editorFindMatchHighlight, light: editorFindMatchHighlight, hcDark: null, hcLight: null }, nls.localize('listFilterMatchHighlight', 'Background color of the filtered match.'));\nexport const listFilterMatchHighlightBorder = registerColor('list.filterMatchBorder', { dark: editorFindMatchHighlightBorder, light: editorFindMatchHighlightBorder, hcDark: contrastBorder, hcLight: activeContrastBorder }, nls.localize('listFilterMatchHighlightBorder', 'Border color of the filtered match.'));\nexport const listDeemphasizedForeground = registerColor('list.deemphasizedForeground', { dark: '#8C8C8C', light: '#8E8E90', hcDark: '#A7A8A9', hcLight: '#666666' }, nls.localize('listDeemphasizedForeground', \"List/Tree foreground color for items that are deemphasized.\"));\n// ------ tree\nexport const treeIndentGuidesStroke = registerColor('tree.indentGuidesStroke', { dark: '#585858', light: '#a9a9a9', hcDark: '#a9a9a9', hcLight: '#a5a5a5' }, nls.localize('treeIndentGuidesStroke', \"Tree stroke color for the indentation guides.\"));\nexport const treeInactiveIndentGuidesStroke = registerColor('tree.inactiveIndentGuidesStroke', { dark: transparent(treeIndentGuidesStroke, 0.4), light: transparent(treeIndentGuidesStroke, 0.4), hcDark: transparent(treeIndentGuidesStroke, 0.4), hcLight: transparent(treeIndentGuidesStroke, 0.4) }, nls.localize('treeInactiveIndentGuidesStroke', \"Tree stroke color for the indentation guides that are not active.\"));\n// ------ table\nexport const tableColumnsBorder = registerColor('tree.tableColumnsBorder', { dark: '#CCCCCC20', light: '#61616120', hcDark: null, hcLight: null }, nls.localize('tableColumnsBorder', \"Table border color between columns.\"));\nexport const tableOddRowsBackgroundColor = registerColor('tree.tableOddRowsBackground', { dark: transparent(foreground, 0.04), light: transparent(foreground, 0.04), hcDark: null, hcLight: null }, nls.localize('tableOddRowsBackgroundColor', \"Background color for odd table rows.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { registerColor } from '../colorUtils.js';\n// Import the colors we need\nimport { contrastBorder, activeContrastBorder } from './baseColors.js';\nimport { selectForeground, selectBackground } from './inputColors.js';\nimport { listActiveSelectionBackground, listActiveSelectionForeground } from './listColors.js';\nexport const menuBorder = registerColor('menu.border', { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('menuBorder', \"Border color of menus.\"));\nexport const menuForeground = registerColor('menu.foreground', { dark: selectForeground, light: selectForeground, hcDark: selectForeground, hcLight: selectForeground }, nls.localize('menuForeground', \"Foreground color of menu items.\"));\nexport const menuBackground = registerColor('menu.background', { dark: selectBackground, light: selectBackground, hcDark: selectBackground, hcLight: selectBackground }, nls.localize('menuBackground', \"Background color of menu items.\"));\nexport const menuSelectionForeground = registerColor('menu.selectionForeground', { dark: listActiveSelectionForeground, light: listActiveSelectionForeground, hcDark: listActiveSelectionForeground, hcLight: listActiveSelectionForeground }, nls.localize('menuSelectionForeground', \"Foreground color of the selected menu item in menus.\"));\nexport const menuSelectionBackground = registerColor('menu.selectionBackground', { dark: listActiveSelectionBackground, light: listActiveSelectionBackground, hcDark: listActiveSelectionBackground, hcLight: listActiveSelectionBackground }, nls.localize('menuSelectionBackground', \"Background color of the selected menu item in menus.\"));\nexport const menuSelectionBorder = registerColor('menu.selectionBorder', { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('menuSelectionBorder', \"Border color of the selected menu item in menus.\"));\nexport const menuSeparatorBackground = registerColor('menu.separatorBackground', { dark: '#606060', light: '#D4D4D4', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('menuSeparatorBackground', \"Color of a separator menu item in menus.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color, RGBA } from '../../../../base/common/color.js';\nimport { registerColor, oneOf } from '../colorUtils.js';\n// Import the colors we need\nimport { editorWidgetBackground, editorWidgetForeground } from './editorColors.js';\nimport { listActiveSelectionBackground, listActiveSelectionForeground, listActiveSelectionIconForeground } from './listColors.js';\nexport const quickInputBackground = registerColor('quickInput.background', { dark: editorWidgetBackground, light: editorWidgetBackground, hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('pickerBackground', \"Quick picker background color. The quick picker widget is the container for pickers like the command palette.\"));\nexport const quickInputForeground = registerColor('quickInput.foreground', { dark: editorWidgetForeground, light: editorWidgetForeground, hcDark: editorWidgetForeground, hcLight: editorWidgetForeground }, nls.localize('pickerForeground', \"Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.\"));\nexport const quickInputTitleBackground = registerColor('quickInputTitle.background', { dark: new Color(new RGBA(255, 255, 255, 0.105)), light: new Color(new RGBA(0, 0, 0, 0.06)), hcDark: '#000000', hcLight: Color.white }, nls.localize('pickerTitleBackground', \"Quick picker title background color. The quick picker widget is the container for pickers like the command palette.\"));\nexport const pickerGroupForeground = registerColor('pickerGroup.foreground', { dark: '#3794FF', light: '#0066BF', hcDark: Color.white, hcLight: '#0F4A85' }, nls.localize('pickerGroupForeground', \"Quick picker color for grouping labels.\"));\nexport const pickerGroupBorder = registerColor('pickerGroup.border', { dark: '#3F3F46', light: '#CCCEDB', hcDark: Color.white, hcLight: '#0F4A85' }, nls.localize('pickerGroupBorder', \"Quick picker color for grouping borders.\"));\nexport const _deprecatedQuickInputListFocusBackground = registerColor('quickInput.list.focusBackground', { dark: null, light: null, hcDark: null, hcLight: null }, '', undefined, nls.localize('quickInput.list.focusBackground deprecation', \"Please use quickInputList.focusBackground instead\"));\nexport const quickInputListFocusForeground = registerColor('quickInputList.focusForeground', { dark: listActiveSelectionForeground, light: listActiveSelectionForeground, hcDark: listActiveSelectionForeground, hcLight: listActiveSelectionForeground }, nls.localize('quickInput.listFocusForeground', \"Quick picker foreground color for the focused item.\"));\nexport const quickInputListFocusIconForeground = registerColor('quickInputList.focusIconForeground', { dark: listActiveSelectionIconForeground, light: listActiveSelectionIconForeground, hcDark: listActiveSelectionIconForeground, hcLight: listActiveSelectionIconForeground }, nls.localize('quickInput.listFocusIconForeground', \"Quick picker icon foreground color for the focused item.\"));\nexport const quickInputListFocusBackground = registerColor('quickInputList.focusBackground', { dark: oneOf(_deprecatedQuickInputListFocusBackground, listActiveSelectionBackground), light: oneOf(_deprecatedQuickInputListFocusBackground, listActiveSelectionBackground), hcDark: null, hcLight: null }, nls.localize('quickInput.listFocusBackground', \"Quick picker background color for the focused item.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { registerColor, transparent } from '../colorUtils.js';\n// Import the colors we need\nimport { foreground } from './baseColors.js';\nimport { editorFindMatchHighlight, editorFindMatchHighlightBorder } from './editorColors.js';\nexport const searchResultsInfoForeground = registerColor('search.resultsInfoForeground', { light: foreground, dark: transparent(foreground, 0.65), hcDark: foreground, hcLight: foreground }, nls.localize('search.resultsInfoForeground', \"Color of the text in the search viewlet's completion message.\"));\n// ----- search editor (Distinct from normal editor find match to allow for better differentiation)\nexport const searchEditorFindMatch = registerColor('searchEditor.findMatchBackground', { light: transparent(editorFindMatchHighlight, 0.66), dark: transparent(editorFindMatchHighlight, 0.66), hcDark: editorFindMatchHighlight, hcLight: editorFindMatchHighlight }, nls.localize('searchEditor.queryMatch', \"Color of the Search Editor query matches.\"));\nexport const searchEditorFindMatchBorder = registerColor('searchEditor.findMatchBorder', { light: transparent(editorFindMatchHighlightBorder, 0.66), dark: transparent(editorFindMatchHighlightBorder, 0.66), hcDark: editorFindMatchHighlightBorder, hcLight: editorFindMatchHighlightBorder }, nls.localize('searchEditor.editorFindMatchBorder', \"Border color of the Search Editor query matches.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { RunOnceScheduler } from '../../../base/common/async.js';\nimport { Codicon } from '../../../base/common/codicons.js';\nimport { getCodiconFontCharacters } from '../../../base/common/codiconsUtil.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { isString } from '../../../base/common/types.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { localize } from '../../../nls.js';\nimport { Extensions as JSONExtensions } from '../../jsonschemas/common/jsonContributionRegistry.js';\nimport * as platform from '../../registry/common/platform.js';\n// ------ API types\n// icon registry\nexport const Extensions = {\n IconContribution: 'base.contributions.icons'\n};\nexport var IconContribution;\n(function (IconContribution) {\n function getDefinition(contribution, registry) {\n let definition = contribution.defaults;\n while (ThemeIcon.isThemeIcon(definition)) {\n const c = iconRegistry.getIcon(definition.id);\n if (!c) {\n return undefined;\n }\n definition = c.defaults;\n }\n return definition;\n }\n IconContribution.getDefinition = getDefinition;\n})(IconContribution || (IconContribution = {}));\nexport var IconFontDefinition;\n(function (IconFontDefinition) {\n function toJSONObject(iconFont) {\n return {\n weight: iconFont.weight,\n style: iconFont.style,\n src: iconFont.src.map(s => ({ format: s.format, location: s.location.toString() }))\n };\n }\n IconFontDefinition.toJSONObject = toJSONObject;\n function fromJSONObject(json) {\n const stringOrUndef = (s) => isString(s) ? s : undefined;\n if (json && Array.isArray(json.src) && json.src.every((s) => isString(s.format) && isString(s.location))) {\n return {\n weight: stringOrUndef(json.weight),\n style: stringOrUndef(json.style),\n src: json.src.map((s) => ({ format: s.format, location: URI.parse(s.location) }))\n };\n }\n return undefined;\n }\n IconFontDefinition.fromJSONObject = fromJSONObject;\n})(IconFontDefinition || (IconFontDefinition = {}));\nclass IconRegistry {\n constructor() {\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this.iconSchema = {\n definitions: {\n icons: {\n type: 'object',\n properties: {\n fontId: { type: 'string', description: localize('iconDefinition.fontId', 'The id of the font to use. If not set, the font that is defined first is used.') },\n fontCharacter: { type: 'string', description: localize('iconDefinition.fontCharacter', 'The font character associated with the icon definition.') }\n },\n additionalProperties: false,\n defaultSnippets: [{ body: { fontCharacter: '\\\\\\\\e030' } }]\n }\n },\n type: 'object',\n properties: {}\n };\n this.iconReferenceSchema = { type: 'string', pattern: `^${ThemeIcon.iconNameExpression}$`, enum: [], enumDescriptions: [] };\n this.iconsById = {};\n this.iconFontsById = {};\n }\n registerIcon(id, defaults, description, deprecationMessage) {\n const existing = this.iconsById[id];\n if (existing) {\n if (description && !existing.description) {\n existing.description = description;\n this.iconSchema.properties[id].markdownDescription = `${description} $(${id})`;\n const enumIndex = this.iconReferenceSchema.enum.indexOf(id);\n if (enumIndex !== -1) {\n this.iconReferenceSchema.enumDescriptions[enumIndex] = description;\n }\n this._onDidChange.fire();\n }\n return existing;\n }\n const iconContribution = { id, description, defaults, deprecationMessage };\n this.iconsById[id] = iconContribution;\n const propertySchema = { $ref: '#/definitions/icons' };\n if (deprecationMessage) {\n propertySchema.deprecationMessage = deprecationMessage;\n }\n if (description) {\n propertySchema.markdownDescription = `${description}: $(${id})`;\n }\n this.iconSchema.properties[id] = propertySchema;\n this.iconReferenceSchema.enum.push(id);\n this.iconReferenceSchema.enumDescriptions.push(description || '');\n this._onDidChange.fire();\n return { id };\n }\n getIcons() {\n return Object.keys(this.iconsById).map(id => this.iconsById[id]);\n }\n getIcon(id) {\n return this.iconsById[id];\n }\n getIconSchema() {\n return this.iconSchema;\n }\n toString() {\n const sorter = (i1, i2) => {\n return i1.id.localeCompare(i2.id);\n };\n const classNames = (i) => {\n while (ThemeIcon.isThemeIcon(i.defaults)) {\n i = this.iconsById[i.defaults.id];\n }\n return `codicon codicon-${i ? i.id : ''}`;\n };\n const reference = [];\n reference.push(`| preview | identifier | default codicon ID | description`);\n reference.push(`| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |`);\n const contributions = Object.keys(this.iconsById).map(key => this.iconsById[key]);\n for (const i of contributions.filter(i => !!i.description).sort(sorter)) {\n reference.push(`||${i.id}|${ThemeIcon.isThemeIcon(i.defaults) ? i.defaults.id : i.id}|${i.description || ''}|`);\n }\n reference.push(`| preview | identifier `);\n reference.push(`| ----------- | --------------------------------- |`);\n for (const i of contributions.filter(i => !ThemeIcon.isThemeIcon(i.defaults)).sort(sorter)) {\n reference.push(`||${i.id}|`);\n }\n return reference.join('\\n');\n }\n}\nconst iconRegistry = new IconRegistry();\nplatform.Registry.add(Extensions.IconContribution, iconRegistry);\nexport function registerIcon(id, defaults, description, deprecationMessage) {\n return iconRegistry.registerIcon(id, defaults, description, deprecationMessage);\n}\nexport function getIconRegistry() {\n return iconRegistry;\n}\nfunction initialize() {\n const codiconFontCharacters = getCodiconFontCharacters();\n for (const icon in codiconFontCharacters) {\n const fontCharacter = '\\\\' + codiconFontCharacters[icon].toString(16);\n iconRegistry.registerIcon(icon, { fontCharacter });\n }\n}\ninitialize();\nexport const iconsSchemaId = 'vscode://schemas/icons';\nconst schemaRegistry = platform.Registry.as(JSONExtensions.JSONContribution);\nschemaRegistry.registerSchema(iconsSchemaId, iconRegistry.getIconSchema());\nconst delayer = new RunOnceScheduler(() => schemaRegistry.notifySchemaChanged(iconsSchemaId), 200);\niconRegistry.onDidChange(() => {\n if (!delayer.isScheduled()) {\n delayer.schedule();\n }\n});\n//setTimeout(_ => console.log(iconRegistry.toString()), 5000);\n// common icons\nexport const widgetClose = registerIcon('widget-close', Codicon.close, localize('widgetClose', 'Icon for the close action in widgets.'));\nexport const gotoPreviousLocation = registerIcon('goto-previous-location', Codicon.arrowUp, localize('previousChangeIcon', 'Icon for goto previous editor location.'));\nexport const gotoNextLocation = registerIcon('goto-next-location', Codicon.arrowDown, localize('nextChangeIcon', 'Icon for goto next editor location.'));\nexport const syncing = ThemeIcon.modify(Codicon.sync, 'spin');\nexport const spinningLoading = ThemeIcon.modify(Codicon.loading, 'spin');\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Color scheme used by the OS and by color themes.\n */\nexport var ColorScheme;\n(function (ColorScheme) {\n ColorScheme[\"DARK\"] = \"dark\";\n ColorScheme[\"LIGHT\"] = \"light\";\n ColorScheme[\"HIGH_CONTRAST_DARK\"] = \"hcDark\";\n ColorScheme[\"HIGH_CONTRAST_LIGHT\"] = \"hcLight\";\n})(ColorScheme || (ColorScheme = {}));\nexport function isHighContrast(scheme) {\n return scheme === ColorScheme.HIGH_CONTRAST_DARK || scheme === ColorScheme.HIGH_CONTRAST_LIGHT;\n}\nexport function isDark(scheme) {\n return scheme === ColorScheme.DARK || scheme === ColorScheme.HIGH_CONTRAST_DARK;\n}\n","import { Emitter } from '../../../base/common/event.js';\nimport { Disposable, toDisposable } from '../../../base/common/lifecycle.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nimport * as platform from '../../registry/common/platform.js';\nimport { ColorScheme } from './theme.js';\nexport const IThemeService = createDecorator('themeService');\nexport function themeColorFromId(id) {\n return { id };\n}\nexport function getThemeTypeSelector(type) {\n switch (type) {\n case ColorScheme.DARK: return 'vs-dark';\n case ColorScheme.HIGH_CONTRAST_DARK: return 'hc-black';\n case ColorScheme.HIGH_CONTRAST_LIGHT: return 'hc-light';\n default: return 'vs';\n }\n}\n// static theming participant\nexport const Extensions = {\n ThemingContribution: 'base.contributions.theming'\n};\nclass ThemingRegistry {\n constructor() {\n this.themingParticipants = [];\n this.themingParticipants = [];\n this.onThemingParticipantAddedEmitter = new Emitter();\n }\n onColorThemeChange(participant) {\n this.themingParticipants.push(participant);\n this.onThemingParticipantAddedEmitter.fire(participant);\n return toDisposable(() => {\n const idx = this.themingParticipants.indexOf(participant);\n this.themingParticipants.splice(idx, 1);\n });\n }\n getThemingParticipants() {\n return this.themingParticipants;\n }\n}\nconst themingRegistry = new ThemingRegistry();\nplatform.Registry.add(Extensions.ThemingContribution, themingRegistry);\nexport function registerThemingParticipant(participant) {\n return themingRegistry.onColorThemeChange(participant);\n}\n/**\n * Utility base class for all themable components.\n */\nexport class Themable extends Disposable {\n constructor(themeService) {\n super();\n this.themeService = themeService;\n this.theme = themeService.getColorTheme();\n // Hook up to theme changes\n this._register(this.themeService.onDidColorThemeChange(theme => this.onThemeChange(theme)));\n }\n onThemeChange(theme) {\n this.theme = theme;\n this.updateStyles();\n }\n updateStyles() {\n // Subclasses to override\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IUndoRedoService = createDecorator('undoRedoService');\nexport class ResourceEditStackSnapshot {\n constructor(resource, elements) {\n this.resource = resource;\n this.elements = elements;\n }\n}\nexport class UndoRedoGroup {\n constructor() {\n this.id = UndoRedoGroup._ID++;\n this.order = 1;\n }\n nextOrder() {\n if (this.id === 0) {\n return 0;\n }\n return this.order++;\n }\n}\nUndoRedoGroup._ID = 0;\nUndoRedoGroup.None = new UndoRedoGroup();\nexport class UndoRedoSource {\n constructor() {\n this.id = UndoRedoSource._ID++;\n this.order = 1;\n }\n nextOrder() {\n if (this.id === 0) {\n return 0;\n }\n return this.order++;\n }\n}\nUndoRedoSource._ID = 0;\nUndoRedoSource.None = new UndoRedoSource();\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport { Disposable, isDisposable } from '../../../base/common/lifecycle.js';\nimport { Schemas } from '../../../base/common/network.js';\nimport Severity from '../../../base/common/severity.js';\nimport * as nls from '../../../nls.js';\nimport { IDialogService } from '../../dialogs/common/dialogs.js';\nimport { registerSingleton } from '../../instantiation/common/extensions.js';\nimport { INotificationService } from '../../notification/common/notification.js';\nimport { IUndoRedoService, ResourceEditStackSnapshot, UndoRedoGroup, UndoRedoSource } from './undoRedo.js';\nconst DEBUG = false;\nfunction getResourceLabel(resource) {\n return resource.scheme === Schemas.file ? resource.fsPath : resource.path;\n}\nlet stackElementCounter = 0;\nclass ResourceStackElement {\n constructor(actual, resourceLabel, strResource, groupId, groupOrder, sourceId, sourceOrder) {\n this.id = (++stackElementCounter);\n this.type = 0 /* UndoRedoElementType.Resource */;\n this.actual = actual;\n this.label = actual.label;\n this.confirmBeforeUndo = actual.confirmBeforeUndo || false;\n this.resourceLabel = resourceLabel;\n this.strResource = strResource;\n this.resourceLabels = [this.resourceLabel];\n this.strResources = [this.strResource];\n this.groupId = groupId;\n this.groupOrder = groupOrder;\n this.sourceId = sourceId;\n this.sourceOrder = sourceOrder;\n this.isValid = true;\n }\n setValid(isValid) {\n this.isValid = isValid;\n }\n toString() {\n return `[id:${this.id}] [group:${this.groupId}] [${this.isValid ? ' VALID' : 'INVALID'}] ${this.actual.constructor.name} - ${this.actual}`;\n }\n}\nclass ResourceReasonPair {\n constructor(resourceLabel, reason) {\n this.resourceLabel = resourceLabel;\n this.reason = reason;\n }\n}\nclass RemovedResources {\n constructor() {\n this.elements = new Map();\n }\n createMessage() {\n const externalRemoval = [];\n const noParallelUniverses = [];\n for (const [, element] of this.elements) {\n const dest = (element.reason === 0 /* RemovedResourceReason.ExternalRemoval */\n ? externalRemoval\n : noParallelUniverses);\n dest.push(element.resourceLabel);\n }\n const messages = [];\n if (externalRemoval.length > 0) {\n messages.push(nls.localize({ key: 'externalRemoval', comment: ['{0} is a list of filenames'] }, \"The following files have been closed and modified on disk: {0}.\", externalRemoval.join(', ')));\n }\n if (noParallelUniverses.length > 0) {\n messages.push(nls.localize({ key: 'noParallelUniverses', comment: ['{0} is a list of filenames'] }, \"The following files have been modified in an incompatible way: {0}.\", noParallelUniverses.join(', ')));\n }\n return messages.join('\\n');\n }\n get size() {\n return this.elements.size;\n }\n has(strResource) {\n return this.elements.has(strResource);\n }\n set(strResource, value) {\n this.elements.set(strResource, value);\n }\n delete(strResource) {\n return this.elements.delete(strResource);\n }\n}\nclass WorkspaceStackElement {\n constructor(actual, resourceLabels, strResources, groupId, groupOrder, sourceId, sourceOrder) {\n this.id = (++stackElementCounter);\n this.type = 1 /* UndoRedoElementType.Workspace */;\n this.actual = actual;\n this.label = actual.label;\n this.confirmBeforeUndo = actual.confirmBeforeUndo || false;\n this.resourceLabels = resourceLabels;\n this.strResources = strResources;\n this.groupId = groupId;\n this.groupOrder = groupOrder;\n this.sourceId = sourceId;\n this.sourceOrder = sourceOrder;\n this.removedResources = null;\n this.invalidatedResources = null;\n }\n canSplit() {\n return (typeof this.actual.split === 'function');\n }\n removeResource(resourceLabel, strResource, reason) {\n if (!this.removedResources) {\n this.removedResources = new RemovedResources();\n }\n if (!this.removedResources.has(strResource)) {\n this.removedResources.set(strResource, new ResourceReasonPair(resourceLabel, reason));\n }\n }\n setValid(resourceLabel, strResource, isValid) {\n if (isValid) {\n if (this.invalidatedResources) {\n this.invalidatedResources.delete(strResource);\n if (this.invalidatedResources.size === 0) {\n this.invalidatedResources = null;\n }\n }\n }\n else {\n if (!this.invalidatedResources) {\n this.invalidatedResources = new RemovedResources();\n }\n if (!this.invalidatedResources.has(strResource)) {\n this.invalidatedResources.set(strResource, new ResourceReasonPair(resourceLabel, 0 /* RemovedResourceReason.ExternalRemoval */));\n }\n }\n }\n toString() {\n return `[id:${this.id}] [group:${this.groupId}] [${this.invalidatedResources ? 'INVALID' : ' VALID'}] ${this.actual.constructor.name} - ${this.actual}`;\n }\n}\nclass ResourceEditStack {\n constructor(resourceLabel, strResource) {\n this.resourceLabel = resourceLabel;\n this.strResource = strResource;\n this._past = [];\n this._future = [];\n this.locked = false;\n this.versionId = 1;\n }\n dispose() {\n for (const element of this._past) {\n if (element.type === 1 /* UndoRedoElementType.Workspace */) {\n element.removeResource(this.resourceLabel, this.strResource, 0 /* RemovedResourceReason.ExternalRemoval */);\n }\n }\n for (const element of this._future) {\n if (element.type === 1 /* UndoRedoElementType.Workspace */) {\n element.removeResource(this.resourceLabel, this.strResource, 0 /* RemovedResourceReason.ExternalRemoval */);\n }\n }\n this.versionId++;\n }\n toString() {\n const result = [];\n result.push(`* ${this.strResource}:`);\n for (let i = 0; i < this._past.length; i++) {\n result.push(` * [UNDO] ${this._past[i]}`);\n }\n for (let i = this._future.length - 1; i >= 0; i--) {\n result.push(` * [REDO] ${this._future[i]}`);\n }\n return result.join('\\n');\n }\n flushAllElements() {\n this._past = [];\n this._future = [];\n this.versionId++;\n }\n _setElementValidFlag(element, isValid) {\n if (element.type === 1 /* UndoRedoElementType.Workspace */) {\n element.setValid(this.resourceLabel, this.strResource, isValid);\n }\n else {\n element.setValid(isValid);\n }\n }\n setElementsValidFlag(isValid, filter) {\n for (const element of this._past) {\n if (filter(element.actual)) {\n this._setElementValidFlag(element, isValid);\n }\n }\n for (const element of this._future) {\n if (filter(element.actual)) {\n this._setElementValidFlag(element, isValid);\n }\n }\n }\n pushElement(element) {\n // remove the future\n for (const futureElement of this._future) {\n if (futureElement.type === 1 /* UndoRedoElementType.Workspace */) {\n futureElement.removeResource(this.resourceLabel, this.strResource, 1 /* RemovedResourceReason.NoParallelUniverses */);\n }\n }\n this._future = [];\n this._past.push(element);\n this.versionId++;\n }\n createSnapshot(resource) {\n const elements = [];\n for (let i = 0, len = this._past.length; i < len; i++) {\n elements.push(this._past[i].id);\n }\n for (let i = this._future.length - 1; i >= 0; i--) {\n elements.push(this._future[i].id);\n }\n return new ResourceEditStackSnapshot(resource, elements);\n }\n restoreSnapshot(snapshot) {\n const snapshotLength = snapshot.elements.length;\n let isOK = true;\n let snapshotIndex = 0;\n let removePastAfter = -1;\n for (let i = 0, len = this._past.length; i < len; i++, snapshotIndex++) {\n const element = this._past[i];\n if (isOK && (snapshotIndex >= snapshotLength || element.id !== snapshot.elements[snapshotIndex])) {\n isOK = false;\n removePastAfter = 0;\n }\n if (!isOK && element.type === 1 /* UndoRedoElementType.Workspace */) {\n element.removeResource(this.resourceLabel, this.strResource, 0 /* RemovedResourceReason.ExternalRemoval */);\n }\n }\n let removeFutureBefore = -1;\n for (let i = this._future.length - 1; i >= 0; i--, snapshotIndex++) {\n const element = this._future[i];\n if (isOK && (snapshotIndex >= snapshotLength || element.id !== snapshot.elements[snapshotIndex])) {\n isOK = false;\n removeFutureBefore = i;\n }\n if (!isOK && element.type === 1 /* UndoRedoElementType.Workspace */) {\n element.removeResource(this.resourceLabel, this.strResource, 0 /* RemovedResourceReason.ExternalRemoval */);\n }\n }\n if (removePastAfter !== -1) {\n this._past = this._past.slice(0, removePastAfter);\n }\n if (removeFutureBefore !== -1) {\n this._future = this._future.slice(removeFutureBefore + 1);\n }\n this.versionId++;\n }\n getElements() {\n const past = [];\n const future = [];\n for (const element of this._past) {\n past.push(element.actual);\n }\n for (const element of this._future) {\n future.push(element.actual);\n }\n return { past, future };\n }\n getClosestPastElement() {\n if (this._past.length === 0) {\n return null;\n }\n return this._past[this._past.length - 1];\n }\n getSecondClosestPastElement() {\n if (this._past.length < 2) {\n return null;\n }\n return this._past[this._past.length - 2];\n }\n getClosestFutureElement() {\n if (this._future.length === 0) {\n return null;\n }\n return this._future[this._future.length - 1];\n }\n hasPastElements() {\n return (this._past.length > 0);\n }\n hasFutureElements() {\n return (this._future.length > 0);\n }\n splitPastWorkspaceElement(toRemove, individualMap) {\n for (let j = this._past.length - 1; j >= 0; j--) {\n if (this._past[j] === toRemove) {\n if (individualMap.has(this.strResource)) {\n // gets replaced\n this._past[j] = individualMap.get(this.strResource);\n }\n else {\n // gets deleted\n this._past.splice(j, 1);\n }\n break;\n }\n }\n this.versionId++;\n }\n splitFutureWorkspaceElement(toRemove, individualMap) {\n for (let j = this._future.length - 1; j >= 0; j--) {\n if (this._future[j] === toRemove) {\n if (individualMap.has(this.strResource)) {\n // gets replaced\n this._future[j] = individualMap.get(this.strResource);\n }\n else {\n // gets deleted\n this._future.splice(j, 1);\n }\n break;\n }\n }\n this.versionId++;\n }\n moveBackward(element) {\n this._past.pop();\n this._future.push(element);\n this.versionId++;\n }\n moveForward(element) {\n this._future.pop();\n this._past.push(element);\n this.versionId++;\n }\n}\nclass EditStackSnapshot {\n constructor(editStacks) {\n this.editStacks = editStacks;\n this._versionIds = [];\n for (let i = 0, len = this.editStacks.length; i < len; i++) {\n this._versionIds[i] = this.editStacks[i].versionId;\n }\n }\n isValid() {\n for (let i = 0, len = this.editStacks.length; i < len; i++) {\n if (this._versionIds[i] !== this.editStacks[i].versionId) {\n return false;\n }\n }\n return true;\n }\n}\nconst missingEditStack = new ResourceEditStack('', '');\nmissingEditStack.locked = true;\nlet UndoRedoService = class UndoRedoService {\n constructor(_dialogService, _notificationService) {\n this._dialogService = _dialogService;\n this._notificationService = _notificationService;\n this._editStacks = new Map();\n this._uriComparisonKeyComputers = [];\n }\n getUriComparisonKey(resource) {\n for (const uriComparisonKeyComputer of this._uriComparisonKeyComputers) {\n if (uriComparisonKeyComputer[0] === resource.scheme) {\n return uriComparisonKeyComputer[1].getComparisonKey(resource);\n }\n }\n return resource.toString();\n }\n _print(label) {\n console.log(`------------------------------------`);\n console.log(`AFTER ${label}: `);\n const str = [];\n for (const element of this._editStacks) {\n str.push(element[1].toString());\n }\n console.log(str.join('\\n'));\n }\n pushElement(element, group = UndoRedoGroup.None, source = UndoRedoSource.None) {\n if (element.type === 0 /* UndoRedoElementType.Resource */) {\n const resourceLabel = getResourceLabel(element.resource);\n const strResource = this.getUriComparisonKey(element.resource);\n this._pushElement(new ResourceStackElement(element, resourceLabel, strResource, group.id, group.nextOrder(), source.id, source.nextOrder()));\n }\n else {\n const seen = new Set();\n const resourceLabels = [];\n const strResources = [];\n for (const resource of element.resources) {\n const resourceLabel = getResourceLabel(resource);\n const strResource = this.getUriComparisonKey(resource);\n if (seen.has(strResource)) {\n continue;\n }\n seen.add(strResource);\n resourceLabels.push(resourceLabel);\n strResources.push(strResource);\n }\n if (resourceLabels.length === 1) {\n this._pushElement(new ResourceStackElement(element, resourceLabels[0], strResources[0], group.id, group.nextOrder(), source.id, source.nextOrder()));\n }\n else {\n this._pushElement(new WorkspaceStackElement(element, resourceLabels, strResources, group.id, group.nextOrder(), source.id, source.nextOrder()));\n }\n }\n if (DEBUG) {\n this._print('pushElement');\n }\n }\n _pushElement(element) {\n for (let i = 0, len = element.strResources.length; i < len; i++) {\n const resourceLabel = element.resourceLabels[i];\n const strResource = element.strResources[i];\n let editStack;\n if (this._editStacks.has(strResource)) {\n editStack = this._editStacks.get(strResource);\n }\n else {\n editStack = new ResourceEditStack(resourceLabel, strResource);\n this._editStacks.set(strResource, editStack);\n }\n editStack.pushElement(element);\n }\n }\n getLastElement(resource) {\n const strResource = this.getUriComparisonKey(resource);\n if (this._editStacks.has(strResource)) {\n const editStack = this._editStacks.get(strResource);\n if (editStack.hasFutureElements()) {\n return null;\n }\n const closestPastElement = editStack.getClosestPastElement();\n return closestPastElement ? closestPastElement.actual : null;\n }\n return null;\n }\n _splitPastWorkspaceElement(toRemove, ignoreResources) {\n const individualArr = toRemove.actual.split();\n const individualMap = new Map();\n for (const _element of individualArr) {\n const resourceLabel = getResourceLabel(_element.resource);\n const strResource = this.getUriComparisonKey(_element.resource);\n const element = new ResourceStackElement(_element, resourceLabel, strResource, 0, 0, 0, 0);\n individualMap.set(element.strResource, element);\n }\n for (const strResource of toRemove.strResources) {\n if (ignoreResources && ignoreResources.has(strResource)) {\n continue;\n }\n const editStack = this._editStacks.get(strResource);\n editStack.splitPastWorkspaceElement(toRemove, individualMap);\n }\n }\n _splitFutureWorkspaceElement(toRemove, ignoreResources) {\n const individualArr = toRemove.actual.split();\n const individualMap = new Map();\n for (const _element of individualArr) {\n const resourceLabel = getResourceLabel(_element.resource);\n const strResource = this.getUriComparisonKey(_element.resource);\n const element = new ResourceStackElement(_element, resourceLabel, strResource, 0, 0, 0, 0);\n individualMap.set(element.strResource, element);\n }\n for (const strResource of toRemove.strResources) {\n if (ignoreResources && ignoreResources.has(strResource)) {\n continue;\n }\n const editStack = this._editStacks.get(strResource);\n editStack.splitFutureWorkspaceElement(toRemove, individualMap);\n }\n }\n removeElements(resource) {\n const strResource = typeof resource === 'string' ? resource : this.getUriComparisonKey(resource);\n if (this._editStacks.has(strResource)) {\n const editStack = this._editStacks.get(strResource);\n editStack.dispose();\n this._editStacks.delete(strResource);\n }\n if (DEBUG) {\n this._print('removeElements');\n }\n }\n setElementsValidFlag(resource, isValid, filter) {\n const strResource = this.getUriComparisonKey(resource);\n if (this._editStacks.has(strResource)) {\n const editStack = this._editStacks.get(strResource);\n editStack.setElementsValidFlag(isValid, filter);\n }\n if (DEBUG) {\n this._print('setElementsValidFlag');\n }\n }\n createSnapshot(resource) {\n const strResource = this.getUriComparisonKey(resource);\n if (this._editStacks.has(strResource)) {\n const editStack = this._editStacks.get(strResource);\n return editStack.createSnapshot(resource);\n }\n return new ResourceEditStackSnapshot(resource, []);\n }\n restoreSnapshot(snapshot) {\n const strResource = this.getUriComparisonKey(snapshot.resource);\n if (this._editStacks.has(strResource)) {\n const editStack = this._editStacks.get(strResource);\n editStack.restoreSnapshot(snapshot);\n if (!editStack.hasPastElements() && !editStack.hasFutureElements()) {\n // the edit stack is now empty, just remove it entirely\n editStack.dispose();\n this._editStacks.delete(strResource);\n }\n }\n if (DEBUG) {\n this._print('restoreSnapshot');\n }\n }\n getElements(resource) {\n const strResource = this.getUriComparisonKey(resource);\n if (this._editStacks.has(strResource)) {\n const editStack = this._editStacks.get(strResource);\n return editStack.getElements();\n }\n return { past: [], future: [] };\n }\n _findClosestUndoElementWithSource(sourceId) {\n if (!sourceId) {\n return [null, null];\n }\n // find an element with the sourceId and with the highest sourceOrder ready to be undone\n let matchedElement = null;\n let matchedStrResource = null;\n for (const [strResource, editStack] of this._editStacks) {\n const candidate = editStack.getClosestPastElement();\n if (!candidate) {\n continue;\n }\n if (candidate.sourceId === sourceId) {\n if (!matchedElement || candidate.sourceOrder > matchedElement.sourceOrder) {\n matchedElement = candidate;\n matchedStrResource = strResource;\n }\n }\n }\n return [matchedElement, matchedStrResource];\n }\n canUndo(resourceOrSource) {\n if (resourceOrSource instanceof UndoRedoSource) {\n const [, matchedStrResource] = this._findClosestUndoElementWithSource(resourceOrSource.id);\n return matchedStrResource ? true : false;\n }\n const strResource = this.getUriComparisonKey(resourceOrSource);\n if (this._editStacks.has(strResource)) {\n const editStack = this._editStacks.get(strResource);\n return editStack.hasPastElements();\n }\n return false;\n }\n _onError(err, element) {\n onUnexpectedError(err);\n // An error occurred while undoing or redoing => drop the undo/redo stack for all affected resources\n for (const strResource of element.strResources) {\n this.removeElements(strResource);\n }\n this._notificationService.error(err);\n }\n _acquireLocks(editStackSnapshot) {\n // first, check if all locks can be acquired\n for (const editStack of editStackSnapshot.editStacks) {\n if (editStack.locked) {\n throw new Error('Cannot acquire edit stack lock');\n }\n }\n // can acquire all locks\n for (const editStack of editStackSnapshot.editStacks) {\n editStack.locked = true;\n }\n return () => {\n // release all locks\n for (const editStack of editStackSnapshot.editStacks) {\n editStack.locked = false;\n }\n };\n }\n _safeInvokeWithLocks(element, invoke, editStackSnapshot, cleanup, continuation) {\n const releaseLocks = this._acquireLocks(editStackSnapshot);\n let result;\n try {\n result = invoke();\n }\n catch (err) {\n releaseLocks();\n cleanup.dispose();\n return this._onError(err, element);\n }\n if (result) {\n // result is Promise\n return result.then(() => {\n releaseLocks();\n cleanup.dispose();\n return continuation();\n }, (err) => {\n releaseLocks();\n cleanup.dispose();\n return this._onError(err, element);\n });\n }\n else {\n // result is void\n releaseLocks();\n cleanup.dispose();\n return continuation();\n }\n }\n async _invokeWorkspacePrepare(element) {\n if (typeof element.actual.prepareUndoRedo === 'undefined') {\n return Disposable.None;\n }\n const result = element.actual.prepareUndoRedo();\n if (typeof result === 'undefined') {\n return Disposable.None;\n }\n return result;\n }\n _invokeResourcePrepare(element, callback) {\n if (element.actual.type !== 1 /* UndoRedoElementType.Workspace */ || typeof element.actual.prepareUndoRedo === 'undefined') {\n // no preparation needed\n return callback(Disposable.None);\n }\n const r = element.actual.prepareUndoRedo();\n if (!r) {\n // nothing to clean up\n return callback(Disposable.None);\n }\n if (isDisposable(r)) {\n return callback(r);\n }\n return r.then((disposable) => {\n return callback(disposable);\n });\n }\n _getAffectedEditStacks(element) {\n const affectedEditStacks = [];\n for (const strResource of element.strResources) {\n affectedEditStacks.push(this._editStacks.get(strResource) || missingEditStack);\n }\n return new EditStackSnapshot(affectedEditStacks);\n }\n _tryToSplitAndUndo(strResource, element, ignoreResources, message) {\n if (element.canSplit()) {\n this._splitPastWorkspaceElement(element, ignoreResources);\n this._notificationService.warn(message);\n return new WorkspaceVerificationError(this._undo(strResource, 0, true));\n }\n else {\n // Cannot safely split this workspace element => flush all undo/redo stacks\n for (const strResource of element.strResources) {\n this.removeElements(strResource);\n }\n this._notificationService.warn(message);\n return new WorkspaceVerificationError();\n }\n }\n _checkWorkspaceUndo(strResource, element, editStackSnapshot, checkInvalidatedResources) {\n if (element.removedResources) {\n return this._tryToSplitAndUndo(strResource, element, element.removedResources, nls.localize({ key: 'cannotWorkspaceUndo', comment: ['{0} is a label for an operation. {1} is another message.'] }, \"Could not undo '{0}' across all files. {1}\", element.label, element.removedResources.createMessage()));\n }\n if (checkInvalidatedResources && element.invalidatedResources) {\n return this._tryToSplitAndUndo(strResource, element, element.invalidatedResources, nls.localize({ key: 'cannotWorkspaceUndo', comment: ['{0} is a label for an operation. {1} is another message.'] }, \"Could not undo '{0}' across all files. {1}\", element.label, element.invalidatedResources.createMessage()));\n }\n // this must be the last past element in all the impacted resources!\n const cannotUndoDueToResources = [];\n for (const editStack of editStackSnapshot.editStacks) {\n if (editStack.getClosestPastElement() !== element) {\n cannotUndoDueToResources.push(editStack.resourceLabel);\n }\n }\n if (cannotUndoDueToResources.length > 0) {\n return this._tryToSplitAndUndo(strResource, element, null, nls.localize({ key: 'cannotWorkspaceUndoDueToChanges', comment: ['{0} is a label for an operation. {1} is a list of filenames.'] }, \"Could not undo '{0}' across all files because changes were made to {1}\", element.label, cannotUndoDueToResources.join(', ')));\n }\n const cannotLockDueToResources = [];\n for (const editStack of editStackSnapshot.editStacks) {\n if (editStack.locked) {\n cannotLockDueToResources.push(editStack.resourceLabel);\n }\n }\n if (cannotLockDueToResources.length > 0) {\n return this._tryToSplitAndUndo(strResource, element, null, nls.localize({ key: 'cannotWorkspaceUndoDueToInProgressUndoRedo', comment: ['{0} is a label for an operation. {1} is a list of filenames.'] }, \"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}\", element.label, cannotLockDueToResources.join(', ')));\n }\n // check if new stack elements were added in the meantime...\n if (!editStackSnapshot.isValid()) {\n return this._tryToSplitAndUndo(strResource, element, null, nls.localize({ key: 'cannotWorkspaceUndoDueToInMeantimeUndoRedo', comment: ['{0} is a label for an operation. {1} is a list of filenames.'] }, \"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime\", element.label));\n }\n return null;\n }\n _workspaceUndo(strResource, element, undoConfirmed) {\n const affectedEditStacks = this._getAffectedEditStacks(element);\n const verificationError = this._checkWorkspaceUndo(strResource, element, affectedEditStacks, /*invalidated resources will be checked after the prepare call*/ false);\n if (verificationError) {\n return verificationError.returnValue;\n }\n return this._confirmAndExecuteWorkspaceUndo(strResource, element, affectedEditStacks, undoConfirmed);\n }\n _isPartOfUndoGroup(element) {\n if (!element.groupId) {\n return false;\n }\n // check that there is at least another element with the same groupId ready to be undone\n for (const [, editStack] of this._editStacks) {\n const pastElement = editStack.getClosestPastElement();\n if (!pastElement) {\n continue;\n }\n if (pastElement === element) {\n const secondPastElement = editStack.getSecondClosestPastElement();\n if (secondPastElement && secondPastElement.groupId === element.groupId) {\n // there is another element with the same group id in the same stack!\n return true;\n }\n }\n if (pastElement.groupId === element.groupId) {\n // there is another element with the same group id in another stack!\n return true;\n }\n }\n return false;\n }\n async _confirmAndExecuteWorkspaceUndo(strResource, element, editStackSnapshot, undoConfirmed) {\n if (element.canSplit() && !this._isPartOfUndoGroup(element)) {\n // this element can be split\n let UndoChoice;\n (function (UndoChoice) {\n UndoChoice[UndoChoice[\"All\"] = 0] = \"All\";\n UndoChoice[UndoChoice[\"This\"] = 1] = \"This\";\n UndoChoice[UndoChoice[\"Cancel\"] = 2] = \"Cancel\";\n })(UndoChoice || (UndoChoice = {}));\n const { result } = await this._dialogService.prompt({\n type: Severity.Info,\n message: nls.localize('confirmWorkspace', \"Would you like to undo '{0}' across all files?\", element.label),\n buttons: [\n {\n label: nls.localize({ key: 'ok', comment: ['{0} denotes a number that is > 1, && denotes a mnemonic'] }, \"&&Undo in {0} Files\", editStackSnapshot.editStacks.length),\n run: () => UndoChoice.All\n },\n {\n label: nls.localize({ key: 'nok', comment: ['&& denotes a mnemonic'] }, \"Undo this &&File\"),\n run: () => UndoChoice.This\n }\n ],\n cancelButton: {\n run: () => UndoChoice.Cancel\n }\n });\n if (result === UndoChoice.Cancel) {\n // choice: cancel\n return;\n }\n if (result === UndoChoice.This) {\n // choice: undo this file\n this._splitPastWorkspaceElement(element, null);\n return this._undo(strResource, 0, true);\n }\n // choice: undo in all files\n // At this point, it is possible that the element has been made invalid in the meantime (due to the confirmation await)\n const verificationError1 = this._checkWorkspaceUndo(strResource, element, editStackSnapshot, /*invalidated resources will be checked after the prepare call*/ false);\n if (verificationError1) {\n return verificationError1.returnValue;\n }\n undoConfirmed = true;\n }\n // prepare\n let cleanup;\n try {\n cleanup = await this._invokeWorkspacePrepare(element);\n }\n catch (err) {\n return this._onError(err, element);\n }\n // At this point, it is possible that the element has been made invalid in the meantime (due to the prepare await)\n const verificationError2 = this._checkWorkspaceUndo(strResource, element, editStackSnapshot, /*now also check that there are no more invalidated resources*/ true);\n if (verificationError2) {\n cleanup.dispose();\n return verificationError2.returnValue;\n }\n for (const editStack of editStackSnapshot.editStacks) {\n editStack.moveBackward(element);\n }\n return this._safeInvokeWithLocks(element, () => element.actual.undo(), editStackSnapshot, cleanup, () => this._continueUndoInGroup(element.groupId, undoConfirmed));\n }\n _resourceUndo(editStack, element, undoConfirmed) {\n if (!element.isValid) {\n // invalid element => immediately flush edit stack!\n editStack.flushAllElements();\n return;\n }\n if (editStack.locked) {\n const message = nls.localize({ key: 'cannotResourceUndoDueToInProgressUndoRedo', comment: ['{0} is a label for an operation.'] }, \"Could not undo '{0}' because there is already an undo or redo operation running.\", element.label);\n this._notificationService.warn(message);\n return;\n }\n return this._invokeResourcePrepare(element, (cleanup) => {\n editStack.moveBackward(element);\n return this._safeInvokeWithLocks(element, () => element.actual.undo(), new EditStackSnapshot([editStack]), cleanup, () => this._continueUndoInGroup(element.groupId, undoConfirmed));\n });\n }\n _findClosestUndoElementInGroup(groupId) {\n if (!groupId) {\n return [null, null];\n }\n // find another element with the same groupId and with the highest groupOrder ready to be undone\n let matchedElement = null;\n let matchedStrResource = null;\n for (const [strResource, editStack] of this._editStacks) {\n const candidate = editStack.getClosestPastElement();\n if (!candidate) {\n continue;\n }\n if (candidate.groupId === groupId) {\n if (!matchedElement || candidate.groupOrder > matchedElement.groupOrder) {\n matchedElement = candidate;\n matchedStrResource = strResource;\n }\n }\n }\n return [matchedElement, matchedStrResource];\n }\n _continueUndoInGroup(groupId, undoConfirmed) {\n if (!groupId) {\n return;\n }\n const [, matchedStrResource] = this._findClosestUndoElementInGroup(groupId);\n if (matchedStrResource) {\n return this._undo(matchedStrResource, 0, undoConfirmed);\n }\n }\n undo(resourceOrSource) {\n if (resourceOrSource instanceof UndoRedoSource) {\n const [, matchedStrResource] = this._findClosestUndoElementWithSource(resourceOrSource.id);\n return matchedStrResource ? this._undo(matchedStrResource, resourceOrSource.id, false) : undefined;\n }\n if (typeof resourceOrSource === 'string') {\n return this._undo(resourceOrSource, 0, false);\n }\n return this._undo(this.getUriComparisonKey(resourceOrSource), 0, false);\n }\n _undo(strResource, sourceId = 0, undoConfirmed) {\n if (!this._editStacks.has(strResource)) {\n return;\n }\n const editStack = this._editStacks.get(strResource);\n const element = editStack.getClosestPastElement();\n if (!element) {\n return;\n }\n if (element.groupId) {\n // this element is a part of a group, we need to make sure undoing in a group is in order\n const [matchedElement, matchedStrResource] = this._findClosestUndoElementInGroup(element.groupId);\n if (element !== matchedElement && matchedStrResource) {\n // there is an element in the same group that should be undone before this one\n return this._undo(matchedStrResource, sourceId, undoConfirmed);\n }\n }\n const shouldPromptForConfirmation = (element.sourceId !== sourceId || element.confirmBeforeUndo);\n if (shouldPromptForConfirmation && !undoConfirmed) {\n // Hit a different source or the element asks for prompt before undo, prompt for confirmation\n return this._confirmAndContinueUndo(strResource, sourceId, element);\n }\n try {\n if (element.type === 1 /* UndoRedoElementType.Workspace */) {\n return this._workspaceUndo(strResource, element, undoConfirmed);\n }\n else {\n return this._resourceUndo(editStack, element, undoConfirmed);\n }\n }\n finally {\n if (DEBUG) {\n this._print('undo');\n }\n }\n }\n async _confirmAndContinueUndo(strResource, sourceId, element) {\n const result = await this._dialogService.confirm({\n message: nls.localize('confirmDifferentSource', \"Would you like to undo '{0}'?\", element.label),\n primaryButton: nls.localize({ key: 'confirmDifferentSource.yes', comment: ['&& denotes a mnemonic'] }, \"&&Yes\"),\n cancelButton: nls.localize('confirmDifferentSource.no', \"No\")\n });\n if (!result.confirmed) {\n return;\n }\n return this._undo(strResource, sourceId, true);\n }\n _findClosestRedoElementWithSource(sourceId) {\n if (!sourceId) {\n return [null, null];\n }\n // find an element with sourceId and with the lowest sourceOrder ready to be redone\n let matchedElement = null;\n let matchedStrResource = null;\n for (const [strResource, editStack] of this._editStacks) {\n const candidate = editStack.getClosestFutureElement();\n if (!candidate) {\n continue;\n }\n if (candidate.sourceId === sourceId) {\n if (!matchedElement || candidate.sourceOrder < matchedElement.sourceOrder) {\n matchedElement = candidate;\n matchedStrResource = strResource;\n }\n }\n }\n return [matchedElement, matchedStrResource];\n }\n canRedo(resourceOrSource) {\n if (resourceOrSource instanceof UndoRedoSource) {\n const [, matchedStrResource] = this._findClosestRedoElementWithSource(resourceOrSource.id);\n return matchedStrResource ? true : false;\n }\n const strResource = this.getUriComparisonKey(resourceOrSource);\n if (this._editStacks.has(strResource)) {\n const editStack = this._editStacks.get(strResource);\n return editStack.hasFutureElements();\n }\n return false;\n }\n _tryToSplitAndRedo(strResource, element, ignoreResources, message) {\n if (element.canSplit()) {\n this._splitFutureWorkspaceElement(element, ignoreResources);\n this._notificationService.warn(message);\n return new WorkspaceVerificationError(this._redo(strResource));\n }\n else {\n // Cannot safely split this workspace element => flush all undo/redo stacks\n for (const strResource of element.strResources) {\n this.removeElements(strResource);\n }\n this._notificationService.warn(message);\n return new WorkspaceVerificationError();\n }\n }\n _checkWorkspaceRedo(strResource, element, editStackSnapshot, checkInvalidatedResources) {\n if (element.removedResources) {\n return this._tryToSplitAndRedo(strResource, element, element.removedResources, nls.localize({ key: 'cannotWorkspaceRedo', comment: ['{0} is a label for an operation. {1} is another message.'] }, \"Could not redo '{0}' across all files. {1}\", element.label, element.removedResources.createMessage()));\n }\n if (checkInvalidatedResources && element.invalidatedResources) {\n return this._tryToSplitAndRedo(strResource, element, element.invalidatedResources, nls.localize({ key: 'cannotWorkspaceRedo', comment: ['{0} is a label for an operation. {1} is another message.'] }, \"Could not redo '{0}' across all files. {1}\", element.label, element.invalidatedResources.createMessage()));\n }\n // this must be the last future element in all the impacted resources!\n const cannotRedoDueToResources = [];\n for (const editStack of editStackSnapshot.editStacks) {\n if (editStack.getClosestFutureElement() !== element) {\n cannotRedoDueToResources.push(editStack.resourceLabel);\n }\n }\n if (cannotRedoDueToResources.length > 0) {\n return this._tryToSplitAndRedo(strResource, element, null, nls.localize({ key: 'cannotWorkspaceRedoDueToChanges', comment: ['{0} is a label for an operation. {1} is a list of filenames.'] }, \"Could not redo '{0}' across all files because changes were made to {1}\", element.label, cannotRedoDueToResources.join(', ')));\n }\n const cannotLockDueToResources = [];\n for (const editStack of editStackSnapshot.editStacks) {\n if (editStack.locked) {\n cannotLockDueToResources.push(editStack.resourceLabel);\n }\n }\n if (cannotLockDueToResources.length > 0) {\n return this._tryToSplitAndRedo(strResource, element, null, nls.localize({ key: 'cannotWorkspaceRedoDueToInProgressUndoRedo', comment: ['{0} is a label for an operation. {1} is a list of filenames.'] }, \"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}\", element.label, cannotLockDueToResources.join(', ')));\n }\n // check if new stack elements were added in the meantime...\n if (!editStackSnapshot.isValid()) {\n return this._tryToSplitAndRedo(strResource, element, null, nls.localize({ key: 'cannotWorkspaceRedoDueToInMeantimeUndoRedo', comment: ['{0} is a label for an operation. {1} is a list of filenames.'] }, \"Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime\", element.label));\n }\n return null;\n }\n _workspaceRedo(strResource, element) {\n const affectedEditStacks = this._getAffectedEditStacks(element);\n const verificationError = this._checkWorkspaceRedo(strResource, element, affectedEditStacks, /*invalidated resources will be checked after the prepare call*/ false);\n if (verificationError) {\n return verificationError.returnValue;\n }\n return this._executeWorkspaceRedo(strResource, element, affectedEditStacks);\n }\n async _executeWorkspaceRedo(strResource, element, editStackSnapshot) {\n // prepare\n let cleanup;\n try {\n cleanup = await this._invokeWorkspacePrepare(element);\n }\n catch (err) {\n return this._onError(err, element);\n }\n // At this point, it is possible that the element has been made invalid in the meantime (due to the prepare await)\n const verificationError = this._checkWorkspaceRedo(strResource, element, editStackSnapshot, /*now also check that there are no more invalidated resources*/ true);\n if (verificationError) {\n cleanup.dispose();\n return verificationError.returnValue;\n }\n for (const editStack of editStackSnapshot.editStacks) {\n editStack.moveForward(element);\n }\n return this._safeInvokeWithLocks(element, () => element.actual.redo(), editStackSnapshot, cleanup, () => this._continueRedoInGroup(element.groupId));\n }\n _resourceRedo(editStack, element) {\n if (!element.isValid) {\n // invalid element => immediately flush edit stack!\n editStack.flushAllElements();\n return;\n }\n if (editStack.locked) {\n const message = nls.localize({ key: 'cannotResourceRedoDueToInProgressUndoRedo', comment: ['{0} is a label for an operation.'] }, \"Could not redo '{0}' because there is already an undo or redo operation running.\", element.label);\n this._notificationService.warn(message);\n return;\n }\n return this._invokeResourcePrepare(element, (cleanup) => {\n editStack.moveForward(element);\n return this._safeInvokeWithLocks(element, () => element.actual.redo(), new EditStackSnapshot([editStack]), cleanup, () => this._continueRedoInGroup(element.groupId));\n });\n }\n _findClosestRedoElementInGroup(groupId) {\n if (!groupId) {\n return [null, null];\n }\n // find another element with the same groupId and with the lowest groupOrder ready to be redone\n let matchedElement = null;\n let matchedStrResource = null;\n for (const [strResource, editStack] of this._editStacks) {\n const candidate = editStack.getClosestFutureElement();\n if (!candidate) {\n continue;\n }\n if (candidate.groupId === groupId) {\n if (!matchedElement || candidate.groupOrder < matchedElement.groupOrder) {\n matchedElement = candidate;\n matchedStrResource = strResource;\n }\n }\n }\n return [matchedElement, matchedStrResource];\n }\n _continueRedoInGroup(groupId) {\n if (!groupId) {\n return;\n }\n const [, matchedStrResource] = this._findClosestRedoElementInGroup(groupId);\n if (matchedStrResource) {\n return this._redo(matchedStrResource);\n }\n }\n redo(resourceOrSource) {\n if (resourceOrSource instanceof UndoRedoSource) {\n const [, matchedStrResource] = this._findClosestRedoElementWithSource(resourceOrSource.id);\n return matchedStrResource ? this._redo(matchedStrResource) : undefined;\n }\n if (typeof resourceOrSource === 'string') {\n return this._redo(resourceOrSource);\n }\n return this._redo(this.getUriComparisonKey(resourceOrSource));\n }\n _redo(strResource) {\n if (!this._editStacks.has(strResource)) {\n return;\n }\n const editStack = this._editStacks.get(strResource);\n const element = editStack.getClosestFutureElement();\n if (!element) {\n return;\n }\n if (element.groupId) {\n // this element is a part of a group, we need to make sure redoing in a group is in order\n const [matchedElement, matchedStrResource] = this._findClosestRedoElementInGroup(element.groupId);\n if (element !== matchedElement && matchedStrResource) {\n // there is an element in the same group that should be redone before this one\n return this._redo(matchedStrResource);\n }\n }\n try {\n if (element.type === 1 /* UndoRedoElementType.Workspace */) {\n return this._workspaceRedo(strResource, element);\n }\n else {\n return this._resourceRedo(editStack, element);\n }\n }\n finally {\n if (DEBUG) {\n this._print('redo');\n }\n }\n }\n};\nUndoRedoService = __decorate([\n __param(0, IDialogService),\n __param(1, INotificationService)\n], UndoRedoService);\nexport { UndoRedoService };\nclass WorkspaceVerificationError {\n constructor(returnValue) {\n this.returnValue = returnValue;\n }\n}\nregisterSingleton(IUndoRedoService, UndoRedoService, 1 /* InstantiationType.Delayed */);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { localize } from '../../../nls.js';\nimport { basename } from '../../../base/common/path.js';\nimport { TernarySearchTree } from '../../../base/common/ternarySearchTree.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IWorkspaceContextService = createDecorator('contextService');\nexport function isSingleFolderWorkspaceIdentifier(obj) {\n const singleFolderIdentifier = obj;\n return typeof (singleFolderIdentifier === null || singleFolderIdentifier === void 0 ? void 0 : singleFolderIdentifier.id) === 'string' && URI.isUri(singleFolderIdentifier.uri);\n}\nexport function isEmptyWorkspaceIdentifier(obj) {\n const emptyWorkspaceIdentifier = obj;\n return typeof (emptyWorkspaceIdentifier === null || emptyWorkspaceIdentifier === void 0 ? void 0 : emptyWorkspaceIdentifier.id) === 'string'\n && !isSingleFolderWorkspaceIdentifier(obj)\n && !isWorkspaceIdentifier(obj);\n}\nexport const EXTENSION_DEVELOPMENT_EMPTY_WINDOW_WORKSPACE = { id: 'ext-dev' };\nexport const UNKNOWN_EMPTY_WINDOW_WORKSPACE = { id: 'empty-window' };\nexport function toWorkspaceIdentifier(arg0, isExtensionDevelopment) {\n // Empty workspace\n if (typeof arg0 === 'string' || typeof arg0 === 'undefined') {\n // With a backupPath, the basename is the empty workspace identifier\n if (typeof arg0 === 'string') {\n return {\n id: basename(arg0)\n };\n }\n // Extension development empty windows have backups disabled\n // so we return a constant workspace identifier for extension\n // authors to allow to restore their workspace state even then.\n if (isExtensionDevelopment) {\n return EXTENSION_DEVELOPMENT_EMPTY_WINDOW_WORKSPACE;\n }\n return UNKNOWN_EMPTY_WINDOW_WORKSPACE;\n }\n // Multi root\n const workspace = arg0;\n if (workspace.configuration) {\n return {\n id: workspace.id,\n configPath: workspace.configuration\n };\n }\n // Single folder\n if (workspace.folders.length === 1) {\n return {\n id: workspace.id,\n uri: workspace.folders[0].uri\n };\n }\n // Empty window\n return {\n id: workspace.id\n };\n}\nexport function isWorkspaceIdentifier(obj) {\n const workspaceIdentifier = obj;\n return typeof (workspaceIdentifier === null || workspaceIdentifier === void 0 ? void 0 : workspaceIdentifier.id) === 'string' && URI.isUri(workspaceIdentifier.configPath);\n}\nexport class Workspace {\n constructor(_id, folders, _transient, _configuration, _ignorePathCasing) {\n this._id = _id;\n this._transient = _transient;\n this._configuration = _configuration;\n this._ignorePathCasing = _ignorePathCasing;\n this._foldersMap = TernarySearchTree.forUris(this._ignorePathCasing, () => true);\n this.folders = folders;\n }\n get folders() {\n return this._folders;\n }\n set folders(folders) {\n this._folders = folders;\n this.updateFoldersMap();\n }\n get id() {\n return this._id;\n }\n get transient() {\n return this._transient;\n }\n get configuration() {\n return this._configuration;\n }\n set configuration(configuration) {\n this._configuration = configuration;\n }\n getFolder(resource) {\n if (!resource) {\n return null;\n }\n return this._foldersMap.findSubstr(resource) || null;\n }\n updateFoldersMap() {\n this._foldersMap = TernarySearchTree.forUris(this._ignorePathCasing, () => true);\n for (const folder of this.folders) {\n this._foldersMap.set(folder.uri, folder);\n }\n }\n toJSON() {\n return { id: this.id, folders: this.folders, transient: this.transient, configuration: this.configuration };\n }\n}\nexport class WorkspaceFolder {\n constructor(data, \n /**\n * Provides access to the original metadata for this workspace\n * folder. This can be different from the metadata provided in\n * this class:\n * - raw paths can be relative\n * - raw paths are not normalized\n */\n raw) {\n this.raw = raw;\n this.uri = data.uri;\n this.index = data.index;\n this.name = data.name;\n }\n toJSON() {\n return { uri: this.uri, name: this.name, index: this.index };\n }\n}\nexport const WORKSPACE_EXTENSION = 'code-workspace';\nexport const WORKSPACE_FILTER = [{ name: localize('codeWorkspace', \"Code Workspace\"), extensions: [WORKSPACE_EXTENSION] }];\nexport const STANDALONE_EDITOR_WORKSPACE_ID = '4064f6ec-cb38-4ad0-af64-ee6467e63c82';\nexport function isStandaloneEditorWorkspace(workspace) {\n return workspace.id === STANDALONE_EDITOR_WORKSPACE_ID;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IWorkspaceTrustManagementService = createDecorator('workspaceTrustManagementService');\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n"],"names":["TARGET_KEY","IStorageService","WillSaveStateReason","AbstractStorageService","constructor","options","flushInterval","DEFAULT_FLUSH_INTERVAL","super","this","_onDidChangeValue","_register","_onDidChangeTarget","_onWillSaveState","onWillSaveState","event","_workspaceKeyTargets","undefined","_profileKeyTargets","_applicationKeyTargets","onDidChangeValue","scope","key","disposable","e","emitDidChangeValue","external","fire","target","getKeyTargets","get","fallbackValue","_a","getStorage","getBoolean","getNumber","store","value","remove","withPausedEmitters","updateKeyTarget","set","delete","fn","pause","resume","_b","keyTargets","JSON","stringify","workspaceKeyTargets","loadKeyTargets","profileKeyTargets","applicationKeyTargets","storage","keysRaw","parse","error","Object","create","InMemoryStorageService","applicationStorage","hint","profileStorage","workspaceStorage","onDidChangeStorage","ITelemetryService","defaultKeybindingLabelStyles","keybindingLabelBackground","keybindingLabelForeground","keybindingLabelBorder","keybindingLabelBottomBorder","keybindingLabelShadow","defaultButtonStyles","buttonForeground","buttonSeparator","buttonBackground","buttonHoverBackground","buttonSecondaryForeground","buttonSecondaryBackground","buttonSecondaryHoverBackground","buttonBorder","defaultProgressBarStyles","progressBarBackground","defaultToggleStyles","inputActiveOptionBorder","inputActiveOptionForeground","inputActiveOptionBackground","defaultInputBoxStyles","inputBackground","inputForeground","inputBorder","inputValidationInfoBorder","inputValidationInfoBackground","inputValidationInfoForeground","inputValidationWarningBorder","inputValidationWarningBackground","inputValidationWarningForeground","inputValidationErrorBorder","inputValidationErrorBackground","inputValidationErrorForeground","defaultFindWidgetStyles","listFilterWidgetBackground","listFilterWidgetOutline","listFilterWidgetNoMatchesOutline","listFilterWidgetShadow","inputBoxStyles","toggleStyles","defaultCountBadgeStyles","badgeBackground","badgeForeground","badgeBorder","defaultListStyles","listBackground","listInactiveFocusForeground","listFocusBackground","listFocusForeground","listFocusOutline","listActiveSelectionBackground","listActiveSelectionForeground","listActiveSelectionIconForeground","listFocusAndSelectionOutline","listFocusAndSelectionBackground","listFocusAndSelectionForeground","listInactiveSelectionBackground","listInactiveSelectionIconForeground","listInactiveSelectionForeground","listInactiveFocusBackground","listInactiveFocusOutline","listHoverBackground","listHoverForeground","listDropOverBackground","listDropBetweenBackground","listSelectionOutline","listHoverOutline","treeIndentGuidesStroke","treeInactiveIndentGuidesStroke","treeStickyScrollBackground","treeStickyScrollBorder","treeStickyScrollShadow","tableColumnsBorder","tableOddRowsBackgroundColor","getListStyles","override","styles","result","val","overrideStyles","defaultSelectBoxStyles","selectBackground","selectListBackground","selectForeground","decoratorRightForeground","selectBorder","focusBorder","selectListBorder","defaultMenuStyles","shadowColor","borderColor","foregroundColor","backgroundColor","selectionForegroundColor","selectionBackgroundColor","selectionBorderColor","separatorColor","scrollbarShadow","scrollbarSliderBackground","scrollbarSliderHoverBackground","scrollbarSliderActiveBackground","getIconsStyleSheet","themeService","onDidChangeEmmiter","add","iconRegistry","onDidChange","onDidProductIconThemeChange","dispose","getCSS","productIconTheme","getProductIconTheme","UnthemedProductIconTheme","usedFontIds","rules","rootAttribs","contribution","getIcons","definition","getIcon","fontContribution","font","fontFamilyVar","id","contentVar","push","fontCharacter","fontWeight","weight","fontStyle","style","src","map","l","location","format","join","defaults","c","asCssVariableName","colorIdent","replace","asCssVariable","color","asCssVariableWithDefault","defaultCssValue","Extensions","ColorContribution","colorRegistry","_onDidChangeSchema","onDidChangeSchema","colorSchema","type","properties","colorReferenceSchema","enum","enumDescriptions","colorsById","registerColor","description","needsTransparency","deprecationMessage","colorContribution","propertySchema","defaultSnippets","body","pattern","patternErrorMessage","getColors","keys","resolveDefaultColor","theme","colorDesc","resolveColorValue","getColorSchema","toString","sort","a","b","cat1","indexOf","cat2","localeCompare","k","darken","colorValue","factor","op","lighten","transparent","oneOf","colorValues","values","lessProminent","backgroundColorValue","transparency","background","getColor","transform","_c","_d","makeOpaque","candidate","defines","if","then","else","from","isDarkerThan","assert","executeTransform","platform","workbenchColorsSchemaId","schemaRegistry","registerSchema","delayer","notifySchemaChanged","isScheduled","schedule","foreground","dark","light","hcDark","hcLight","nls","iconForeground","contrastBorder","activeContrastBorder","textLinkForeground","editorBackground","editorForeground","editorWidgetBackground","editorWidgetForeground","editorWidgetBorder","editorErrorForeground","editorErrorBorder","editorWarningBackground","editorWarningForeground","editorWarningBorder","editorInfoForeground","editorInfoBorder","editorHintForeground","editorActiveLinkForeground","editorSelectionBackground","editorSelectionForeground","editorInactiveSelection","editorSelectionHighlight","editorFindMatchForeground","editorFindMatchHighlight","editorFindMatchHighlightForeground","editorFindMatchHighlightBorder","editorFindRangeHighlightBorder","editorHoverBackground","editorHoverBorder","editorInlayHintForeground","editorInlayHintBackground","editorInlayHintTypeForeground","editorInlayHintTypeBackground","editorInlayHintParameterForeground","editorInlayHintParameterBackground","editorLightBulbForeground","defaultInsertColor","defaultRemoveColor","diffInserted","diffRemoved","diffOverviewRulerInserted","diffOverviewRulerRemoved","widgetShadow","widgetBorder","toolbarHoverBackground","breadcrumbsForeground","breadcrumbsBackground","breadcrumbsFocusForeground","breadcrumbsActiveSelectionForeground","currentBaseColor","incomingBaseColor","commonBaseColor","contentTransparency","mergeCurrentHeaderBackground","mergeIncomingHeaderBackground","mergeCommonHeaderBackground","mergeBorder","overviewRulerFindMatchForeground","overviewRulerSelectionHighlightForeground","problemsErrorIconForeground","problemsWarningIconForeground","problemsInfoIconForeground","minimapFindMatch","minimapSelectionOccurrenceHighlight","minimapSelection","minimapInfo","minimapWarning","minimapError","minimapBackground","minimapForegroundOpacity","checkboxBackground","checkboxForeground","checkboxBorder","listHighlightForeground","listFocusHighlightForeground","ifArg","thenArg","elseArg","menuBorder","menuForeground","menuBackground","menuSelectionForeground","menuSelectionBackground","menuSelectionBorder","menuSeparatorBackground","quickInputBackground","quickInputForeground","quickInputTitleBackground","pickerGroupForeground","pickerGroupBorder","_deprecatedQuickInputListFocusBackground","quickInputListFocusForeground","quickInputListFocusIconForeground","quickInputListFocusBackground","IconContribution","IconFontDefinition","getDefinition","registry","toJSONObject","iconFont","s","fromJSONObject","json","stringOrUndef","Array","isArray","every","_onDidChange","iconSchema","definitions","icons","fontId","additionalProperties","iconReferenceSchema","iconsById","iconFontsById","registerIcon","existing","markdownDescription","enumIndex","iconContribution","$ref","getIconSchema","sorter","i1","i2","classNames","i","reference","contributions","filter","getIconRegistry","codiconFontCharacters","icon","initialize","iconsSchemaId","widgetClose","ColorScheme","isHighContrast","scheme","HIGH_CONTRAST_DARK","HIGH_CONTRAST_LIGHT","isDark","DARK","IThemeService","themeColorFromId","getThemeTypeSelector","ThemingContribution","themingRegistry","themingParticipants","onThemingParticipantAddedEmitter","onColorThemeChange","participant","idx","splice","getThemingParticipants","registerThemingParticipant","Themable","getColorTheme","onDidColorThemeChange","onThemeChange","updateStyles","IUndoRedoService","ResourceEditStackSnapshot","resource","elements","UndoRedoGroup","_ID","order","nextOrder","None","UndoRedoSource","__decorate","decorators","desc","d","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","DEBUG","getResourceLabel","fsPath","path","stackElementCounter","ResourceStackElement","actual","resourceLabel","strResource","groupId","groupOrder","sourceId","sourceOrder","label","confirmBeforeUndo","resourceLabels","strResources","isValid","setValid","name","ResourceReasonPair","reason","RemovedResources","Map","createMessage","externalRemoval","noParallelUniverses","element","messages","comment","size","has","WorkspaceStackElement","removedResources","invalidatedResources","canSplit","split","removeResource","ResourceEditStack","_past","_future","locked","versionId","flushAllElements","_setElementValidFlag","setElementsValidFlag","pushElement","futureElement","createSnapshot","len","restoreSnapshot","snapshot","snapshotLength","isOK","snapshotIndex","removePastAfter","removeFutureBefore","slice","getElements","past","future","getClosestPastElement","getSecondClosestPastElement","getClosestFutureElement","hasPastElements","hasFutureElements","splitPastWorkspaceElement","toRemove","individualMap","j","splitFutureWorkspaceElement","moveBackward","pop","moveForward","EditStackSnapshot","editStacks","_versionIds","missingEditStack","UndoRedoService","_dialogService","_notificationService","_editStacks","_uriComparisonKeyComputers","getUriComparisonKey","uriComparisonKeyComputer","getComparisonKey","_print","console","log","str","group","source","_pushElement","seen","Set","resources","editStack","getLastElement","closestPastElement","_splitPastWorkspaceElement","ignoreResources","individualArr","_element","_splitFutureWorkspaceElement","removeElements","_findClosestUndoElementWithSource","matchedElement","matchedStrResource","canUndo","resourceOrSource","_onError","err","_acquireLocks","editStackSnapshot","Error","_safeInvokeWithLocks","invoke","cleanup","continuation","releaseLocks","_invokeWorkspacePrepare","prepareUndoRedo","_invokeResourcePrepare","callback","_getAffectedEditStacks","affectedEditStacks","_tryToSplitAndUndo","message","warn","WorkspaceVerificationError","_undo","_checkWorkspaceUndo","checkInvalidatedResources","cannotUndoDueToResources","cannotLockDueToResources","_workspaceUndo","undoConfirmed","verificationError","returnValue","_confirmAndExecuteWorkspaceUndo","_isPartOfUndoGroup","pastElement","secondPastElement","UndoChoice","prompt","buttons","run","All","This","cancelButton","Cancel","verificationError1","verificationError2","undo","_continueUndoInGroup","_resourceUndo","_findClosestUndoElementInGroup","_confirmAndContinueUndo","confirm","primaryButton","confirmed","_findClosestRedoElementWithSource","canRedo","_tryToSplitAndRedo","_redo","_checkWorkspaceRedo","cannotRedoDueToResources","_workspaceRedo","_executeWorkspaceRedo","redo","_continueRedoInGroup","_resourceRedo","_findClosestRedoElementInGroup","IWorkspaceContextService","isSingleFolderWorkspaceIdentifier","obj","singleFolderIdentifier","uri","isEmptyWorkspaceIdentifier","emptyWorkspaceIdentifier","workspaceIdentifier","configPath","isWorkspaceIdentifier","EXTENSION_DEVELOPMENT_EMPTY_WINDOW_WORKSPACE","UNKNOWN_EMPTY_WINDOW_WORKSPACE","toWorkspaceIdentifier","arg0","isExtensionDevelopment","workspace","configuration","folders","WorkspaceFolder","data","raw","index","toJSON","WORKSPACE_EXTENSION","STANDALONE_EDITOR_WORKSPACE_ID","isStandaloneEditorWorkspace","IWorkspaceTrustManagementService","m","h","w","y","plural","ms","msAbs","n","isPlural","Math","round","module","exports","String","match","exec","parseFloat","toLowerCase","isFinite","long","abs","fmtLong","fmtShort"],"sourceRoot":""}