monaco-editor-core 0.54.0-dev-20250922 → 0.54.0-dev-20250924
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/nls.keys.json +1 -1
- package/esm/nls.messages.de.js +2 -2
- package/esm/nls.messages.es.js +2 -2
- package/esm/nls.messages.fr.js +2 -2
- package/esm/nls.messages.it.js +2 -2
- package/esm/nls.messages.ja.js +2 -2
- package/esm/nls.messages.js +1 -1
- package/esm/nls.messages.json +1 -1
- package/esm/nls.messages.ko.js +2 -2
- package/esm/nls.messages.ru.js +2 -2
- package/esm/nls.messages.zh-cn.js +2 -2
- package/esm/nls.messages.zh-tw.js +2 -2
- package/esm/nls.metadata.json +2 -0
- package/esm/vs/base/browser/ui/toolbar/toolbar.js +7 -0
- package/esm/vs/base/browser/ui/toolbar/toolbar.js.map +1 -1
- package/esm/vs/base/common/htmlContent.js +8 -0
- package/esm/vs/base/common/htmlContent.js.map +1 -1
- package/esm/vs/editor/common/config/editorOptions.js +274 -267
- package/esm/vs/editor/common/config/editorOptions.js.map +1 -1
- package/esm/vs/editor/common/core/editorColorRegistry.js +68 -68
- package/esm/vs/editor/common/editorContextKeys.js +46 -46
- package/esm/vs/editor/common/languages/modesRegistry.js +1 -1
- package/esm/vs/editor/common/languages.js +56 -56
- package/esm/vs/editor/common/model/editStack.js +1 -1
- package/esm/vs/editor/common/standaloneStrings.js +10 -10
- package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
- package/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
- package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +6 -6
- package/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
- package/esm/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
- package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +17 -17
- package/esm/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js +29 -29
- package/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
- package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
- package/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
- package/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
- package/esm/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
- package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
- package/esm/vs/editor/contrib/comment/browser/comment.js +6 -6
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +10 -10
- package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
- package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
- package/esm/vs/editor/contrib/find/browser/findController.js +16 -16
- package/esm/vs/editor/contrib/find/browser/findWidget.js +26 -26
- package/esm/vs/editor/contrib/floatingMenu/browser/floatingMenu.css +10 -0
- package/esm/vs/editor/contrib/floatingMenu/browser/floatingMenu.js +28 -5
- package/esm/vs/editor/contrib/floatingMenu/browser/floatingMenu.js.map +1 -1
- package/esm/vs/editor/contrib/folding/browser/folding.js +20 -20
- package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
- package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js.map +1 -1
- package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
- package/esm/vs/editor/contrib/format/browser/format.js +3 -0
- package/esm/vs/editor/contrib/format/browser/format.js.map +1 -1
- package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
- package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
- package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
- package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
- package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
- package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
- package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
- package/esm/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
- package/esm/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
- package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +9 -9
- package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
- package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
- package/esm/vs/editor/contrib/indentation/browser/indentation.js +20 -20
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHints.js +2 -7
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHints.js.map +1 -1
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +19 -19
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +12 -12
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +6 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +5 -5
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
- package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
- package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
- package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +31 -31
- package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
- package/esm/vs/editor/contrib/links/browser/links.js +10 -10
- package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
- package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
- package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
- package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +5 -5
- package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
- package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
- package/esm/vs/editor/contrib/rename/browser/rename.js +11 -11
- package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
- package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
- package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +12 -4
- package/esm/vs/editor/contrib/snippet/browser/snippetController2.js.map +1 -1
- package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
- package/esm/vs/editor/contrib/suggest/browser/suggest.js +8 -8
- package/esm/vs/editor/contrib/suggest/browser/suggestController.js +10 -10
- package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
- package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
- package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
- package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +26 -26
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js.map +1 -1
- package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
- package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
- package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
- package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +1 -1
- package/esm/vs/editor/editor.api.d.ts +1 -0
- package/esm/vs/editor/standalone/browser/standaloneThemeService.js +10 -0
- package/esm/vs/editor/standalone/browser/standaloneThemeService.js.map +1 -1
- package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
- package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
- package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
- package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
- package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
- package/esm/vs/platform/actions/browser/toolbar.js +2 -2
- package/esm/vs/platform/actions/common/menuService.js +2 -2
- package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
- package/esm/vs/platform/contextkey/browser/contextKeyService.js +37 -3
- package/esm/vs/platform/contextkey/browser/contextKeyService.js.map +1 -1
- package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
- package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
- package/esm/vs/platform/contextkey/common/scanner.js +5 -5
- package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
- package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
- package/esm/vs/platform/list/browser/listService.js +27 -27
- package/esm/vs/platform/markers/common/markerService.js +2 -2
- package/esm/vs/platform/markers/common/markers.js +6 -6
- package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +7 -7
- package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
- package/esm/vs/platform/quickinput/browser/quickInput.js +10 -10
- package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
- package/esm/vs/platform/quickinput/browser/quickInputController.js +6 -6
- package/esm/vs/platform/quickinput/browser/quickInputList.js +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
- package/esm/vs/platform/theme/common/colorUtils.js +2 -2
- package/esm/vs/platform/theme/common/colors/baseColors.js +17 -17
- package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
- package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
- package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
- package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
- package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
- package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
- package/esm/vs/platform/theme/common/colors/miscColors.js +15 -15
- package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
- package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
- package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
- package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
- package/esm/vs/platform/workspace/common/workspace.js +1 -1
- package/monaco.d.ts +1 -0
- package/package.json +2 -2
- package/version.txt +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/standalone/browser/standaloneThemeService.ts","vs/editor/standalone/browser/standaloneThemeService.ts"],"names":[],"mappings":"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","file":"standaloneThemeService.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\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\nimport * as dom from '../../../base/browser/dom.js';\nimport * as domStylesheetsJs from '../../../base/browser/domStylesheets.js';\nimport { addMatchMediaChangeListener } from '../../../base/browser/browser.js';\nimport { Color } from '../../../base/common/color.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { TokenizationRegistry } from '../../common/languages.js';\nimport { FontStyle, TokenMetadata } from '../../common/encodedTokenAttributes.js';\nimport { ITokenThemeRule, TokenTheme, generateTokensCSSForColorMap } from '../../common/languages/supports/tokenization.js';\nimport { BuiltinTheme, IStandaloneTheme, IStandaloneThemeData, IStandaloneThemeService } from '../common/standaloneTheme.js';\nimport { hc_black, hc_light, vs, vs_dark } from '../common/themes.js';\nimport { IEnvironmentService } from '../../../platform/environment/common/environment.js';\nimport { Registry } from '../../../platform/registry/common/platform.js';\nimport { asCssVariableName, ColorIdentifier, Extensions, IColorRegistry } from '../../../platform/theme/common/colorRegistry.js';\nimport { Extensions as ThemingExtensions, ICssStyleCollector, IFileIconTheme, IProductIconTheme, IThemingRegistry, ITokenStyle } from '../../../platform/theme/common/themeService.js';\nimport { IDisposable, Disposable } from '../../../base/common/lifecycle.js';\nimport { ColorScheme, isDark, isHighContrast } from '../../../platform/theme/common/theme.js';\nimport { getIconsStyleSheet, UnthemedProductIconTheme } from '../../../platform/theme/browser/iconsStyleSheet.js';\nimport { mainWindow } from '../../../base/browser/window.js';\n\nexport const VS_LIGHT_THEME_NAME = 'vs';\nexport const VS_DARK_THEME_NAME = 'vs-dark';\nexport const HC_BLACK_THEME_NAME = 'hc-black';\nexport const HC_LIGHT_THEME_NAME = 'hc-light';\n\nconst colorRegistry = Registry.as<IColorRegistry>(Extensions.ColorContribution);\nconst themingRegistry = Registry.as<IThemingRegistry>(ThemingExtensions.ThemingContribution);\n\nclass StandaloneTheme implements IStandaloneTheme {\n\n\tpublic readonly id: string;\n\tpublic readonly themeName: string;\n\n\tprivate readonly themeData: IStandaloneThemeData;\n\tprivate colors: Map<string, Color> | null;\n\tprivate readonly defaultColors: { [colorId: string]: Color | undefined };\n\tprivate _tokenTheme: TokenTheme | null;\n\n\tconstructor(name: string, standaloneThemeData: IStandaloneThemeData) {\n\t\tthis.themeData = standaloneThemeData;\n\t\tconst base = standaloneThemeData.base;\n\t\tif (name.length > 0) {\n\t\t\tif (isBuiltinTheme(name)) {\n\t\t\t\tthis.id = name;\n\t\t\t} else {\n\t\t\t\tthis.id = base + ' ' + name;\n\t\t\t}\n\t\t\tthis.themeName = name;\n\t\t} else {\n\t\t\tthis.id = base;\n\t\t\tthis.themeName = base;\n\t\t}\n\t\tthis.colors = null;\n\t\tthis.defaultColors = Object.create(null);\n\t\tthis._tokenTheme = null;\n\t}\n\n\tpublic get base(): string {\n\t\treturn this.themeData.base;\n\t}\n\n\tpublic notifyBaseUpdated() {\n\t\tif (this.themeData.inherit) {\n\t\t\tthis.colors = null;\n\t\t\tthis._tokenTheme = null;\n\t\t}\n\t}\n\n\tprivate getColors(): Map<string, Color> {\n\t\tif (!this.colors) {\n\t\t\tconst colors = new Map<string, Color>();\n\t\t\tfor (const id in this.themeData.colors) {\n\t\t\t\tcolors.set(id, Color.fromHex(this.themeData.colors[id]));\n\t\t\t}\n\t\t\tif (this.themeData.inherit) {\n\t\t\t\tconst baseData = getBuiltinRules(this.themeData.base);\n\t\t\t\tfor (const id in baseData.colors) {\n\t\t\t\t\tif (!colors.has(id)) {\n\t\t\t\t\t\tcolors.set(id, Color.fromHex(baseData.colors[id]));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.colors = colors;\n\t\t}\n\t\treturn this.colors;\n\t}\n\n\tpublic getColor(colorId: ColorIdentifier, useDefault?: boolean): Color | undefined {\n\t\tconst color = this.getColors().get(colorId);\n\t\tif (color) {\n\t\t\treturn color;\n\t\t}\n\t\tif (useDefault !== false) {\n\t\t\treturn this.getDefault(colorId);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprivate getDefault(colorId: ColorIdentifier): Color | undefined {\n\t\tlet color = this.defaultColors[colorId];\n\t\tif (color) {\n\t\t\treturn color;\n\t\t}\n\t\tcolor = colorRegistry.resolveDefaultColor(colorId, this);\n\t\tthis.defaultColors[colorId] = color;\n\t\treturn color;\n\t}\n\n\tpublic defines(colorId: ColorIdentifier): boolean {\n\t\treturn this.getColors().has(colorId);\n\t}\n\n\tpublic get type(): ColorScheme {\n\t\tswitch (this.base) {\n\t\t\tcase VS_LIGHT_THEME_NAME: return ColorScheme.LIGHT;\n\t\t\tcase HC_BLACK_THEME_NAME: return ColorScheme.HIGH_CONTRAST_DARK;\n\t\t\tcase HC_LIGHT_THEME_NAME: return ColorScheme.HIGH_CONTRAST_LIGHT;\n\t\t\tdefault: return ColorScheme.DARK;\n\t\t}\n\t}\n\n\tpublic get tokenTheme(): TokenTheme {\n\t\tif (!this._tokenTheme) {\n\t\t\tlet rules: ITokenThemeRule[] = [];\n\t\t\tlet encodedTokensColors: string[] = [];\n\t\t\tif (this.themeData.inherit) {\n\t\t\t\tconst baseData = getBuiltinRules(this.themeData.base);\n\t\t\t\trules = baseData.rules;\n\t\t\t\tif (baseData.encodedTokensColors) {\n\t\t\t\t\tencodedTokensColors = baseData.encodedTokensColors;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Pick up default colors from `editor.foreground` and `editor.background` if available\n\t\t\tconst editorForeground = this.themeData.colors['editor.foreground'];\n\t\t\tconst editorBackground = this.themeData.colors['editor.background'];\n\t\t\tif (editorForeground || editorBackground) {\n\t\t\t\tconst rule: ITokenThemeRule = { token: '' };\n\t\t\t\tif (editorForeground) {\n\t\t\t\t\trule.foreground = editorForeground;\n\t\t\t\t}\n\t\t\t\tif (editorBackground) {\n\t\t\t\t\trule.background = editorBackground;\n\t\t\t\t}\n\t\t\t\trules.push(rule);\n\t\t\t}\n\t\t\trules = rules.concat(this.themeData.rules);\n\t\t\tif (this.themeData.encodedTokensColors) {\n\t\t\t\tencodedTokensColors = this.themeData.encodedTokensColors;\n\t\t\t}\n\t\t\tthis._tokenTheme = TokenTheme.createFromRawTokenTheme(rules, encodedTokensColors);\n\t\t}\n\t\treturn this._tokenTheme;\n\t}\n\n\tpublic getTokenStyleMetadata(type: string, modifiers: string[], modelLanguage: string): ITokenStyle | undefined {\n\t\t// use theme rules match\n\t\tconst style = this.tokenTheme._match([type].concat(modifiers).join('.'));\n\t\tconst metadata = style.metadata;\n\t\tconst foreground = TokenMetadata.getForeground(metadata);\n\t\tconst fontStyle = TokenMetadata.getFontStyle(metadata);\n\t\treturn {\n\t\t\tforeground: foreground,\n\t\t\titalic: Boolean(fontStyle & FontStyle.Italic),\n\t\t\tbold: Boolean(fontStyle & FontStyle.Bold),\n\t\t\tunderline: Boolean(fontStyle & FontStyle.Underline),\n\t\t\tstrikethrough: Boolean(fontStyle & FontStyle.Strikethrough)\n\t\t};\n\t}\n\n\tpublic get tokenColorMap(): string[] {\n\t\treturn [];\n\t}\n\n\tpublic readonly semanticHighlighting = false;\n}\n\nfunction isBuiltinTheme(themeName: string): themeName is BuiltinTheme {\n\treturn (\n\t\tthemeName === VS_LIGHT_THEME_NAME\n\t\t|| themeName === VS_DARK_THEME_NAME\n\t\t|| themeName === HC_BLACK_THEME_NAME\n\t\t|| themeName === HC_LIGHT_THEME_NAME\n\t);\n}\n\nfunction getBuiltinRules(builtinTheme: BuiltinTheme): IStandaloneThemeData {\n\tswitch (builtinTheme) {\n\t\tcase VS_LIGHT_THEME_NAME:\n\t\t\treturn vs;\n\t\tcase VS_DARK_THEME_NAME:\n\t\t\treturn vs_dark;\n\t\tcase HC_BLACK_THEME_NAME:\n\t\t\treturn hc_black;\n\t\tcase HC_LIGHT_THEME_NAME:\n\t\t\treturn hc_light;\n\t}\n}\n\nfunction newBuiltInTheme(builtinTheme: BuiltinTheme): StandaloneTheme {\n\tconst themeData = getBuiltinRules(builtinTheme);\n\treturn new StandaloneTheme(builtinTheme, themeData);\n}\n\nexport class StandaloneThemeService extends Disposable implements IStandaloneThemeService {\n\n\tdeclare readonly _serviceBrand: undefined;\n\n\tprivate readonly _onColorThemeChange = this._register(new Emitter<IStandaloneTheme>());\n\tpublic readonly onDidColorThemeChange = this._onColorThemeChange.event;\n\n\tprivate readonly _onProductIconThemeChange = this._register(new Emitter<IProductIconTheme>());\n\tpublic readonly onDidProductIconThemeChange = this._onProductIconThemeChange.event;\n\n\tprivate readonly _environment: IEnvironmentService = Object.create(null);\n\tprivate readonly _knownThemes: Map<string, StandaloneTheme>;\n\tprivate _autoDetectHighContrast: boolean;\n\tprivate _codiconCSS: string;\n\tprivate _themeCSS: string;\n\tprivate _allCSS: string;\n\tprivate _globalStyleElement: HTMLStyleElement | null;\n\tprivate _styleElements: HTMLStyleElement[];\n\tprivate _colorMapOverride: Color[] | null;\n\tprivate _theme!: IStandaloneTheme;\n\n\tprivate _builtInProductIconTheme = new UnthemedProductIconTheme();\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._autoDetectHighContrast = true;\n\n\t\tthis._knownThemes = new Map<string, StandaloneTheme>();\n\t\tthis._knownThemes.set(VS_LIGHT_THEME_NAME, newBuiltInTheme(VS_LIGHT_THEME_NAME));\n\t\tthis._knownThemes.set(VS_DARK_THEME_NAME, newBuiltInTheme(VS_DARK_THEME_NAME));\n\t\tthis._knownThemes.set(HC_BLACK_THEME_NAME, newBuiltInTheme(HC_BLACK_THEME_NAME));\n\t\tthis._knownThemes.set(HC_LIGHT_THEME_NAME, newBuiltInTheme(HC_LIGHT_THEME_NAME));\n\n\t\tconst iconsStyleSheet = this._register(getIconsStyleSheet(this));\n\n\t\tthis._codiconCSS = iconsStyleSheet.getCSS();\n\t\tthis._themeCSS = '';\n\t\tthis._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`;\n\t\tthis._globalStyleElement = null;\n\t\tthis._styleElements = [];\n\t\tthis._colorMapOverride = null;\n\t\tthis.setTheme(VS_LIGHT_THEME_NAME);\n\t\tthis._onOSSchemeChanged();\n\n\t\tthis._register(iconsStyleSheet.onDidChange(() => {\n\t\t\tthis._codiconCSS = iconsStyleSheet.getCSS();\n\t\t\tthis._updateCSS();\n\t\t}));\n\n\t\taddMatchMediaChangeListener(mainWindow, '(forced-colors: active)', () => {\n\t\t\tthis._onOSSchemeChanged();\n\t\t});\n\t}\n\n\tpublic registerEditorContainer(domNode: HTMLElement): IDisposable {\n\t\tif (dom.isInShadowDOM(domNode)) {\n\t\t\treturn this._registerShadowDomContainer(domNode);\n\t\t}\n\t\treturn this._registerRegularEditorContainer();\n\t}\n\n\tprivate _registerRegularEditorContainer(): IDisposable {\n\t\tif (!this._globalStyleElement) {\n\t\t\tthis._globalStyleElement = domStylesheetsJs.createStyleSheet(undefined, style => {\n\t\t\t\tstyle.className = 'monaco-colors';\n\t\t\t\tstyle.textContent = this._allCSS;\n\t\t\t});\n\t\t\tthis._styleElements.push(this._globalStyleElement);\n\t\t}\n\t\treturn Disposable.None;\n\t}\n\n\tprivate _registerShadowDomContainer(domNode: HTMLElement): IDisposable {\n\t\tconst styleElement = domStylesheetsJs.createStyleSheet(domNode, style => {\n\t\t\tstyle.className = 'monaco-colors';\n\t\t\tstyle.textContent = this._allCSS;\n\t\t});\n\t\tthis._styleElements.push(styleElement);\n\t\treturn {\n\t\t\tdispose: () => {\n\t\t\t\tfor (let i = 0; i < this._styleElements.length; i++) {\n\t\t\t\t\tif (this._styleElements[i] === styleElement) {\n\t\t\t\t\t\tthis._styleElements.splice(i, 1);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tpublic defineTheme(themeName: string, themeData: IStandaloneThemeData): void {\n\t\tif (!/^[a-z0-9\\-]+$/i.test(themeName)) {\n\t\t\tthrow new Error('Illegal theme name!');\n\t\t}\n\t\tif (!isBuiltinTheme(themeData.base) && !isBuiltinTheme(themeName)) {\n\t\t\tthrow new Error('Illegal theme base!');\n\t\t}\n\t\t// set or replace theme\n\t\tthis._knownThemes.set(themeName, new StandaloneTheme(themeName, themeData));\n\n\t\tif (isBuiltinTheme(themeName)) {\n\t\t\tthis._knownThemes.forEach(theme => {\n\t\t\t\tif (theme.base === themeName) {\n\t\t\t\t\ttheme.notifyBaseUpdated();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (this._theme.themeName === themeName) {\n\t\t\tthis.setTheme(themeName); // refresh theme\n\t\t}\n\t}\n\n\tpublic getColorTheme(): IStandaloneTheme {\n\t\treturn this._theme;\n\t}\n\n\tpublic setColorMapOverride(colorMapOverride: Color[] | null): void {\n\t\tthis._colorMapOverride = colorMapOverride;\n\t\tthis._updateThemeOrColorMap();\n\t}\n\n\tpublic setTheme(themeName: string): void {\n\t\tlet theme: StandaloneTheme | undefined;\n\t\tif (this._knownThemes.has(themeName)) {\n\t\t\ttheme = this._knownThemes.get(themeName);\n\t\t} else {\n\t\t\ttheme = this._knownThemes.get(VS_LIGHT_THEME_NAME);\n\t\t}\n\t\tthis._updateActualTheme(theme);\n\t}\n\n\tprivate _updateActualTheme(desiredTheme: IStandaloneTheme | undefined): void {\n\t\tif (!desiredTheme || this._theme === desiredTheme) {\n\t\t\t// Nothing to do\n\t\t\treturn;\n\t\t}\n\t\tthis._theme = desiredTheme;\n\t\tthis._updateThemeOrColorMap();\n\t}\n\n\tprivate _onOSSchemeChanged() {\n\t\tif (this._autoDetectHighContrast) {\n\t\t\tconst wantsHighContrast = mainWindow.matchMedia(`(forced-colors: active)`).matches;\n\t\t\tif (wantsHighContrast !== isHighContrast(this._theme.type)) {\n\t\t\t\t// switch to high contrast or non-high contrast but stick to dark or light\n\t\t\t\tlet newThemeName;\n\t\t\t\tif (isDark(this._theme.type)) {\n\t\t\t\t\tnewThemeName = wantsHighContrast ? HC_BLACK_THEME_NAME : VS_DARK_THEME_NAME;\n\t\t\t\t} else {\n\t\t\t\t\tnewThemeName = wantsHighContrast ? HC_LIGHT_THEME_NAME : VS_LIGHT_THEME_NAME;\n\t\t\t\t}\n\t\t\t\tthis._updateActualTheme(this._knownThemes.get(newThemeName));\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic setAutoDetectHighContrast(autoDetectHighContrast: boolean): void {\n\t\tthis._autoDetectHighContrast = autoDetectHighContrast;\n\t\tthis._onOSSchemeChanged();\n\t}\n\n\tprivate _updateThemeOrColorMap(): void {\n\t\tconst cssRules: string[] = [];\n\t\tconst hasRule: { [rule: string]: boolean } = {};\n\t\tconst ruleCollector: ICssStyleCollector = {\n\t\t\taddRule: (rule: string) => {\n\t\t\t\tif (!hasRule[rule]) {\n\t\t\t\t\tcssRules.push(rule);\n\t\t\t\t\thasRule[rule] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tthemingRegistry.getThemingParticipants().forEach(p => p(this._theme, ruleCollector, this._environment));\n\n\t\tconst colorVariables: string[] = [];\n\t\tfor (const item of colorRegistry.getColors()) {\n\t\t\tconst color = this._theme.getColor(item.id, true);\n\t\t\tif (color) {\n\t\t\t\tcolorVariables.push(`${asCssVariableName(item.id)}: ${color.toString()};`);\n\t\t\t}\n\t\t}\n\t\truleCollector.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { ${colorVariables.join('\\n')} }`);\n\n\t\tconst colorMap = this._colorMapOverride || this._theme.tokenTheme.getColorMap();\n\t\truleCollector.addRule(generateTokensCSSForColorMap(colorMap));\n\n\t\tthis._themeCSS = cssRules.join('\\n');\n\t\tthis._updateCSS();\n\n\t\tTokenizationRegistry.setColorMap(colorMap);\n\t\tthis._onColorThemeChange.fire(this._theme);\n\t}\n\n\tprivate _updateCSS(): void {\n\t\tthis._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`;\n\t\tthis._styleElements.forEach(styleElement => styleElement.textContent = this._allCSS);\n\t}\n\n\tpublic getFileIconTheme(): IFileIconTheme {\n\t\treturn {\n\t\t\thasFileIcons: false,\n\t\t\thasFolderIcons: false,\n\t\t\thidesExplorerArrows: false\n\t\t};\n\t}\n\n\tpublic getProductIconTheme(): IProductIconTheme {\n\t\treturn this._builtInProductIconTheme;\n\t}\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 *--------------------------------------------------------------------------------------------*/\n\nimport * as dom from '../../../base/browser/dom.js';\nimport * as domStylesheetsJs from '../../../base/browser/domStylesheets.js';\nimport { addMatchMediaChangeListener } from '../../../base/browser/browser.js';\nimport { Color } from '../../../base/common/color.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { TokenizationRegistry } from '../../common/languages.js';\nimport { FontStyle, TokenMetadata } from '../../common/encodedTokenAttributes.js';\nimport { ITokenThemeRule, TokenTheme, generateTokensCSSForColorMap } from '../../common/languages/supports/tokenization.js';\nimport { BuiltinTheme, IStandaloneTheme, IStandaloneThemeData, IStandaloneThemeService } from '../common/standaloneTheme.js';\nimport { hc_black, hc_light, vs, vs_dark } from '../common/themes.js';\nimport { IEnvironmentService } from '../../../platform/environment/common/environment.js';\nimport { Registry } from '../../../platform/registry/common/platform.js';\nimport { asCssVariableName, ColorIdentifier, Extensions, IColorRegistry } from '../../../platform/theme/common/colorRegistry.js';\nimport { Extensions as ThemingExtensions, ICssStyleCollector, IFileIconTheme, IProductIconTheme, IThemingRegistry, ITokenStyle } from '../../../platform/theme/common/themeService.js';\nimport { IDisposable, Disposable } from '../../../base/common/lifecycle.js';\nimport { ColorScheme, isDark, isHighContrast } from '../../../platform/theme/common/theme.js';\nimport { getIconsStyleSheet, UnthemedProductIconTheme } from '../../../platform/theme/browser/iconsStyleSheet.js';\nimport { mainWindow } from '../../../base/browser/window.js';\n\nexport const VS_LIGHT_THEME_NAME = 'vs';\nexport const VS_DARK_THEME_NAME = 'vs-dark';\nexport const HC_BLACK_THEME_NAME = 'hc-black';\nexport const HC_LIGHT_THEME_NAME = 'hc-light';\n\nconst colorRegistry = Registry.as<IColorRegistry>(Extensions.ColorContribution);\nconst themingRegistry = Registry.as<IThemingRegistry>(ThemingExtensions.ThemingContribution);\n\nclass StandaloneTheme implements IStandaloneTheme {\n\n\tpublic readonly id: string;\n\tpublic readonly themeName: string;\n\n\tprivate readonly themeData: IStandaloneThemeData;\n\tprivate colors: Map<string, Color> | null;\n\tprivate readonly defaultColors: { [colorId: string]: Color | undefined };\n\tprivate _tokenTheme: TokenTheme | null;\n\n\tconstructor(name: string, standaloneThemeData: IStandaloneThemeData) {\n\t\tthis.themeData = standaloneThemeData;\n\t\tconst base = standaloneThemeData.base;\n\t\tif (name.length > 0) {\n\t\t\tif (isBuiltinTheme(name)) {\n\t\t\t\tthis.id = name;\n\t\t\t} else {\n\t\t\t\tthis.id = base + ' ' + name;\n\t\t\t}\n\t\t\tthis.themeName = name;\n\t\t} else {\n\t\t\tthis.id = base;\n\t\t\tthis.themeName = base;\n\t\t}\n\t\tthis.colors = null;\n\t\tthis.defaultColors = Object.create(null);\n\t\tthis._tokenTheme = null;\n\t}\n\n\tpublic get base(): string {\n\t\treturn this.themeData.base;\n\t}\n\n\tpublic notifyBaseUpdated() {\n\t\tif (this.themeData.inherit) {\n\t\t\tthis.colors = null;\n\t\t\tthis._tokenTheme = null;\n\t\t}\n\t}\n\n\tprivate getColors(): Map<string, Color> {\n\t\tif (!this.colors) {\n\t\t\tconst colors = new Map<string, Color>();\n\t\t\tfor (const id in this.themeData.colors) {\n\t\t\t\tcolors.set(id, Color.fromHex(this.themeData.colors[id]));\n\t\t\t}\n\t\t\tif (this.themeData.inherit) {\n\t\t\t\tconst baseData = getBuiltinRules(this.themeData.base);\n\t\t\t\tfor (const id in baseData.colors) {\n\t\t\t\t\tif (!colors.has(id)) {\n\t\t\t\t\t\tcolors.set(id, Color.fromHex(baseData.colors[id]));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.colors = colors;\n\t\t}\n\t\treturn this.colors;\n\t}\n\n\tpublic getColor(colorId: ColorIdentifier, useDefault?: boolean): Color | undefined {\n\t\tconst color = this.getColors().get(colorId);\n\t\tif (color) {\n\t\t\treturn color;\n\t\t}\n\t\tif (useDefault !== false) {\n\t\t\treturn this.getDefault(colorId);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprivate getDefault(colorId: ColorIdentifier): Color | undefined {\n\t\tlet color = this.defaultColors[colorId];\n\t\tif (color) {\n\t\t\treturn color;\n\t\t}\n\t\tcolor = colorRegistry.resolveDefaultColor(colorId, this);\n\t\tthis.defaultColors[colorId] = color;\n\t\treturn color;\n\t}\n\n\tpublic defines(colorId: ColorIdentifier): boolean {\n\t\treturn this.getColors().has(colorId);\n\t}\n\n\tpublic get type(): ColorScheme {\n\t\tswitch (this.base) {\n\t\t\tcase VS_LIGHT_THEME_NAME: return ColorScheme.LIGHT;\n\t\t\tcase HC_BLACK_THEME_NAME: return ColorScheme.HIGH_CONTRAST_DARK;\n\t\t\tcase HC_LIGHT_THEME_NAME: return ColorScheme.HIGH_CONTRAST_LIGHT;\n\t\t\tdefault: return ColorScheme.DARK;\n\t\t}\n\t}\n\n\tpublic get tokenTheme(): TokenTheme {\n\t\tif (!this._tokenTheme) {\n\t\t\tlet rules: ITokenThemeRule[] = [];\n\t\t\tlet encodedTokensColors: string[] = [];\n\t\t\tif (this.themeData.inherit) {\n\t\t\t\tconst baseData = getBuiltinRules(this.themeData.base);\n\t\t\t\trules = baseData.rules;\n\t\t\t\tif (baseData.encodedTokensColors) {\n\t\t\t\t\tencodedTokensColors = baseData.encodedTokensColors;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Pick up default colors from `editor.foreground` and `editor.background` if available\n\t\t\tconst editorForeground = this.themeData.colors['editor.foreground'];\n\t\t\tconst editorBackground = this.themeData.colors['editor.background'];\n\t\t\tif (editorForeground || editorBackground) {\n\t\t\t\tconst rule: ITokenThemeRule = { token: '' };\n\t\t\t\tif (editorForeground) {\n\t\t\t\t\trule.foreground = editorForeground;\n\t\t\t\t}\n\t\t\t\tif (editorBackground) {\n\t\t\t\t\trule.background = editorBackground;\n\t\t\t\t}\n\t\t\t\trules.push(rule);\n\t\t\t}\n\t\t\trules = rules.concat(this.themeData.rules);\n\t\t\tif (this.themeData.encodedTokensColors) {\n\t\t\t\tencodedTokensColors = this.themeData.encodedTokensColors;\n\t\t\t}\n\t\t\tthis._tokenTheme = TokenTheme.createFromRawTokenTheme(rules, encodedTokensColors);\n\t\t}\n\t\treturn this._tokenTheme;\n\t}\n\n\tpublic getTokenStyleMetadata(type: string, modifiers: string[], modelLanguage: string): ITokenStyle | undefined {\n\t\t// use theme rules match\n\t\tconst style = this.tokenTheme._match([type].concat(modifiers).join('.'));\n\t\tconst metadata = style.metadata;\n\t\tconst foreground = TokenMetadata.getForeground(metadata);\n\t\tconst fontStyle = TokenMetadata.getFontStyle(metadata);\n\t\treturn {\n\t\t\tforeground: foreground,\n\t\t\titalic: Boolean(fontStyle & FontStyle.Italic),\n\t\t\tbold: Boolean(fontStyle & FontStyle.Bold),\n\t\t\tunderline: Boolean(fontStyle & FontStyle.Underline),\n\t\t\tstrikethrough: Boolean(fontStyle & FontStyle.Strikethrough)\n\t\t};\n\t}\n\n\tpublic get tokenColorMap(): string[] {\n\t\treturn [];\n\t}\n\n\tpublic readonly semanticHighlighting = false;\n}\n\nfunction isBuiltinTheme(themeName: string): themeName is BuiltinTheme {\n\treturn (\n\t\tthemeName === VS_LIGHT_THEME_NAME\n\t\t|| themeName === VS_DARK_THEME_NAME\n\t\t|| themeName === HC_BLACK_THEME_NAME\n\t\t|| themeName === HC_LIGHT_THEME_NAME\n\t);\n}\n\nfunction getBuiltinRules(builtinTheme: BuiltinTheme): IStandaloneThemeData {\n\tswitch (builtinTheme) {\n\t\tcase VS_LIGHT_THEME_NAME:\n\t\t\treturn vs;\n\t\tcase VS_DARK_THEME_NAME:\n\t\t\treturn vs_dark;\n\t\tcase HC_BLACK_THEME_NAME:\n\t\t\treturn hc_black;\n\t\tcase HC_LIGHT_THEME_NAME:\n\t\t\treturn hc_light;\n\t}\n}\n\nfunction newBuiltInTheme(builtinTheme: BuiltinTheme): StandaloneTheme {\n\tconst themeData = getBuiltinRules(builtinTheme);\n\treturn new StandaloneTheme(builtinTheme, themeData);\n}\n\nexport class StandaloneThemeService extends Disposable implements IStandaloneThemeService {\n\n\tdeclare readonly _serviceBrand: undefined;\n\n\tprivate readonly _onColorThemeChange = this._register(new Emitter<IStandaloneTheme>());\n\tpublic readonly onDidColorThemeChange = this._onColorThemeChange.event;\n\n\tprivate readonly _onProductIconThemeChange = this._register(new Emitter<IProductIconTheme>());\n\tpublic readonly onDidProductIconThemeChange = this._onProductIconThemeChange.event;\n\n\tprivate readonly _environment: IEnvironmentService = Object.create(null);\n\tprivate readonly _knownThemes: Map<string, StandaloneTheme>;\n\tprivate _autoDetectHighContrast: boolean;\n\tprivate _codiconCSS: string;\n\tprivate _themeCSS: string;\n\tprivate _allCSS: string;\n\tprivate _globalStyleElement: HTMLStyleElement | null;\n\tprivate _styleElements: HTMLStyleElement[];\n\tprivate _colorMapOverride: Color[] | null;\n\tprivate _theme!: IStandaloneTheme;\n\n\tprivate _builtInProductIconTheme = new UnthemedProductIconTheme();\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._autoDetectHighContrast = true;\n\n\t\tthis._knownThemes = new Map<string, StandaloneTheme>();\n\t\tthis._knownThemes.set(VS_LIGHT_THEME_NAME, newBuiltInTheme(VS_LIGHT_THEME_NAME));\n\t\tthis._knownThemes.set(VS_DARK_THEME_NAME, newBuiltInTheme(VS_DARK_THEME_NAME));\n\t\tthis._knownThemes.set(HC_BLACK_THEME_NAME, newBuiltInTheme(HC_BLACK_THEME_NAME));\n\t\tthis._knownThemes.set(HC_LIGHT_THEME_NAME, newBuiltInTheme(HC_LIGHT_THEME_NAME));\n\n\t\tconst iconsStyleSheet = this._register(getIconsStyleSheet(this));\n\n\t\tthis._codiconCSS = iconsStyleSheet.getCSS();\n\t\tthis._themeCSS = '';\n\t\tthis._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`;\n\t\tthis._globalStyleElement = null;\n\t\tthis._styleElements = [];\n\t\tthis._colorMapOverride = null;\n\t\tthis.setTheme(VS_LIGHT_THEME_NAME);\n\t\tthis._onOSSchemeChanged();\n\n\t\tthis._register(iconsStyleSheet.onDidChange(() => {\n\t\t\tthis._codiconCSS = iconsStyleSheet.getCSS();\n\t\t\tthis._updateCSS();\n\t\t}));\n\n\t\taddMatchMediaChangeListener(mainWindow, '(forced-colors: active)', () => {\n\t\t\tthis._onOSSchemeChanged();\n\t\t});\n\t}\n\n\tpublic registerEditorContainer(domNode: HTMLElement): IDisposable {\n\t\tif (dom.isInShadowDOM(domNode)) {\n\t\t\treturn this._registerShadowDomContainer(domNode);\n\t\t}\n\t\treturn this._registerRegularEditorContainer();\n\t}\n\n\tprivate _registerRegularEditorContainer(): IDisposable {\n\t\tif (!this._globalStyleElement) {\n\t\t\tthis._globalStyleElement = domStylesheetsJs.createStyleSheet(undefined, style => {\n\t\t\t\tstyle.className = 'monaco-colors';\n\t\t\t\tstyle.textContent = this._allCSS;\n\t\t\t});\n\t\t\tthis._styleElements.push(this._globalStyleElement);\n\t\t}\n\t\treturn Disposable.None;\n\t}\n\n\tprivate _registerShadowDomContainer(domNode: HTMLElement): IDisposable {\n\t\tconst styleElement = domStylesheetsJs.createStyleSheet(domNode, style => {\n\t\t\tstyle.className = 'monaco-colors';\n\t\t\tstyle.textContent = this._allCSS;\n\t\t});\n\t\tthis._styleElements.push(styleElement);\n\t\treturn {\n\t\t\tdispose: () => {\n\t\t\t\tfor (let i = 0; i < this._styleElements.length; i++) {\n\t\t\t\t\tif (this._styleElements[i] === styleElement) {\n\t\t\t\t\t\tthis._styleElements.splice(i, 1);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tpublic defineTheme(themeName: string, themeData: IStandaloneThemeData): void {\n\t\tif (!/^[a-z0-9\\-]+$/i.test(themeName)) {\n\t\t\tthrow new Error('Illegal theme name!');\n\t\t}\n\t\tif (!isBuiltinTheme(themeData.base) && !isBuiltinTheme(themeName)) {\n\t\t\tthrow new Error('Illegal theme base!');\n\t\t}\n\t\t// set or replace theme\n\t\tthis._knownThemes.set(themeName, new StandaloneTheme(themeName, themeData));\n\n\t\tif (isBuiltinTheme(themeName)) {\n\t\t\tthis._knownThemes.forEach(theme => {\n\t\t\t\tif (theme.base === themeName) {\n\t\t\t\t\ttheme.notifyBaseUpdated();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (this._theme.themeName === themeName) {\n\t\t\tthis.setTheme(themeName); // refresh theme\n\t\t}\n\t}\n\n\tpublic getColorTheme(): IStandaloneTheme {\n\t\treturn this._theme;\n\t}\n\n\tpublic setColorMapOverride(colorMapOverride: Color[] | null): void {\n\t\tthis._colorMapOverride = colorMapOverride;\n\t\tthis._updateThemeOrColorMap();\n\t}\n\n\tpublic setTheme(themeName: string): void {\n\t\tlet theme: StandaloneTheme | undefined;\n\t\tif (this._knownThemes.has(themeName)) {\n\t\t\ttheme = this._knownThemes.get(themeName);\n\t\t} else {\n\t\t\ttheme = this._knownThemes.get(VS_LIGHT_THEME_NAME);\n\t\t}\n\t\tthis._updateActualTheme(theme);\n\t}\n\n\tprivate _updateActualTheme(desiredTheme: IStandaloneTheme | undefined): void {\n\t\tif (!desiredTheme || this._theme === desiredTheme) {\n\t\t\t// Nothing to do\n\t\t\treturn;\n\t\t}\n\t\tthis._theme = desiredTheme;\n\t\tthis._updateThemeOrColorMap();\n\t}\n\n\tprivate _onOSSchemeChanged() {\n\t\tif (this._autoDetectHighContrast) {\n\t\t\tconst wantsHighContrast = mainWindow.matchMedia(`(forced-colors: active)`).matches;\n\t\t\tif (wantsHighContrast !== isHighContrast(this._theme.type)) {\n\t\t\t\t// switch to high contrast or non-high contrast but stick to dark or light\n\t\t\t\tlet newThemeName;\n\t\t\t\tif (isDark(this._theme.type)) {\n\t\t\t\t\tnewThemeName = wantsHighContrast ? HC_BLACK_THEME_NAME : VS_DARK_THEME_NAME;\n\t\t\t\t} else {\n\t\t\t\t\tnewThemeName = wantsHighContrast ? HC_LIGHT_THEME_NAME : VS_LIGHT_THEME_NAME;\n\t\t\t\t}\n\t\t\t\tthis._updateActualTheme(this._knownThemes.get(newThemeName));\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic setAutoDetectHighContrast(autoDetectHighContrast: boolean): void {\n\t\tthis._autoDetectHighContrast = autoDetectHighContrast;\n\t\tthis._onOSSchemeChanged();\n\t}\n\n\tprivate _updateThemeOrColorMap(): void {\n\t\tconst cssRules: string[] = [];\n\t\tconst hasRule: { [rule: string]: boolean } = {};\n\t\tconst ruleCollector: ICssStyleCollector = {\n\t\t\taddRule: (rule: string) => {\n\t\t\t\tif (!hasRule[rule]) {\n\t\t\t\t\tcssRules.push(rule);\n\t\t\t\t\thasRule[rule] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tthemingRegistry.getThemingParticipants().forEach(p => p(this._theme, ruleCollector, this._environment));\n\n\t\tconst colorVariables: string[] = [];\n\t\tfor (const item of colorRegistry.getColors()) {\n\t\t\tconst color = this._theme.getColor(item.id, true);\n\t\t\tif (color) {\n\t\t\t\tcolorVariables.push(`${asCssVariableName(item.id)}: ${color.toString()};`);\n\t\t\t}\n\t\t}\n\t\truleCollector.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { ${colorVariables.join('\\n')} }`);\n\n\t\tconst colorMap = this._colorMapOverride || this._theme.tokenTheme.getColorMap();\n\t\truleCollector.addRule(generateTokensCSSForColorMap(colorMap));\n\n\t\tthis._themeCSS = cssRules.join('\\n');\n\t\tthis._updateCSS();\n\n\t\tTokenizationRegistry.setColorMap(colorMap);\n\t\tthis._onColorThemeChange.fire(this._theme);\n\t}\n\n\tprivate _updateCSS(): void {\n\t\tthis._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`;\n\t\tthis._styleElements.forEach(styleElement => styleElement.textContent = this._allCSS);\n\t}\n\n\tpublic getFileIconTheme(): IFileIconTheme {\n\t\treturn {\n\t\t\thasFileIcons: false,\n\t\t\thasFolderIcons: false,\n\t\t\thidesExplorerArrows: false\n\t\t};\n\t}\n\n\tpublic getProductIconTheme(): IProductIconTheme {\n\t\treturn this._builtInProductIconTheme;\n\t}\n\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/standalone/browser/standaloneThemeService.ts","vs/editor/standalone/browser/standaloneThemeService.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,GAAG,MAAM,8BAA8B,CAAC;AACpD,OAAO,KAAK,gBAAgB,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAa,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAmB,UAAU,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AAE5H,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEtE,OAAO,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAmB,UAAU,EAAkB,MAAM,iDAAiD,CAAC;AACjI,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAwF,MAAM,gDAAgD,CAAC;AACvL,OAAO,EAAe,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAClH,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACxC,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAC5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAC9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAE9C,MAAM,aAAa,GAAG,QAAQ,CAAC,EAAE,CAAiB,UAAU,CAAC,iBAAiB,CAAC,CAAC;AAChF,MAAM,eAAe,GAAG,QAAQ,CAAC,EAAE,CAAmB,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AAE7F,MAAM,eAAe;IAUpB,YAAY,IAAY,EAAE,mBAAyC;QAuInD,yBAAoB,GAAG,KAAK,CAAC;QAtI5C,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC;QACrC,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;QACtC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;YACf,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC5B,CAAC;IAEM,iBAAiB;QACvB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACzB,CAAC;IACF,CAAC;IAEO,SAAS;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;YACxC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBACxC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACtD,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;wBACrB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACpD,CAAC;gBACF,CAAC;YACF,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAEM,QAAQ,CAAC,OAAwB,EAAE,UAAoB;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACd,CAAC;QACD,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAEO,UAAU,CAAC,OAAwB;QAC1C,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACd,CAAC;QACD,KAAK,GAAG,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QACpC,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,OAAO,CAAC,OAAwB;QACtC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,IAAW,IAAI;QACd,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,mBAAmB,CAAC,CAAC,OAAO,WAAW,CAAC,KAAK,CAAC;YACnD,KAAK,mBAAmB,CAAC,CAAC,OAAO,WAAW,CAAC,kBAAkB,CAAC;YAChE,KAAK,mBAAmB,CAAC,CAAC,OAAO,WAAW,CAAC,mBAAmB,CAAC;YACjE,OAAO,CAAC,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC;QAClC,CAAC;IACF,CAAC;IAED,IAAW,UAAU;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,KAAK,GAAsB,EAAE,CAAC;YAClC,IAAI,mBAAmB,GAAa,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACtD,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACvB,IAAI,QAAQ,CAAC,mBAAmB,EAAE,CAAC;oBAClC,mBAAmB,GAAG,QAAQ,CAAC,mBAAmB,CAAC;gBACpD,CAAC;YACF,CAAC;YACD,uFAAuF;YACvF,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACpE,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACpE,IAAI,gBAAgB,IAAI,gBAAgB,EAAE,CAAC;gBAC1C,MAAM,IAAI,GAAoB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBAC5C,IAAI,gBAAgB,EAAE,CAAC;oBACtB,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC;gBACpC,CAAC;gBACD,IAAI,gBAAgB,EAAE,CAAC;oBACtB,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC;gBACpC,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YACD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC;gBACxC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;YAC1D,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAEM,qBAAqB,CAAC,IAAY,EAAE,SAAmB,EAAE,aAAqB;QACpF,wBAAwB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAChC,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO;YACN,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,OAAO,CAAC,SAAS,2BAAmB,CAAC;YAC7C,IAAI,EAAE,OAAO,CAAC,SAAS,yBAAiB,CAAC;YACzC,SAAS,EAAE,OAAO,CAAC,SAAS,8BAAsB,CAAC;YACnD,aAAa,EAAE,OAAO,CAAC,SAAS,kCAA0B,CAAC;SAC3D,CAAC;IACH,CAAC;IAED,IAAW,aAAa;QACvB,OAAO,EAAE,CAAC;IACX,CAAC;CAGD;AAED,SAAS,cAAc,CAAC,SAAiB;IACxC,OAAO,CACN,SAAS,KAAK,mBAAmB;WAC9B,SAAS,KAAK,kBAAkB;WAChC,SAAS,KAAK,mBAAmB;WACjC,SAAS,KAAK,mBAAmB,CACpC,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,YAA0B;IAClD,QAAQ,YAAY,EAAE,CAAC;QACtB,KAAK,mBAAmB;YACvB,OAAO,EAAE,CAAC;QACX,KAAK,kBAAkB;YACtB,OAAO,OAAO,CAAC;QAChB,KAAK,mBAAmB;YACvB,OAAO,QAAQ,CAAC;QACjB,KAAK,mBAAmB;YACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;AACF,CAAC;AAED,SAAS,eAAe,CAAC,YAA0B;IAClD,MAAM,SAAS,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAChD,OAAO,IAAI,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,OAAO,sBAAuB,SAAQ,UAAU;IAuBrD;QACC,KAAK,EAAE,CAAC;QApBQ,wBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,EAAoB,CAAC,CAAC;QACvE,0BAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;QAEtD,8BAAyB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,EAAqB,CAAC,CAAC;QAC9E,gCAA2B,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;QAElE,iBAAY,GAAwB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAWjE,6BAAwB,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAKjE,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QAEpC,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAA2B,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,EAAE,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,EAAE,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,EAAE,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAEjF,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QAEjE,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QACxD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACnC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,EAAE;YAC/C,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;YAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC,CAAC;QAEJ,2BAA2B,CAAC,UAAU,EAAE,yBAAyB,EAAE,GAAG,EAAE;YACvE,0DAA0D;YAC1D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,2EAA2E;YAC3E,4EAA4E;YAC5E,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,uBAAuB,CAAC,OAAoB;QAClD,IAAI,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,+BAA+B,EAAE,CAAC;IAC/C,CAAC;IAEO,+BAA+B;QACtC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC/B,IAAI,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;gBAC/E,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC;gBAClC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;YAClC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,UAAU,CAAC,IAAI,CAAC;IACxB,CAAC;IAEO,2BAA2B,CAAC,OAAoB;QACvD,MAAM,YAAY,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;YACvE,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC;YAClC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvC,OAAO;YACN,OAAO,EAAE,GAAG,EAAE;gBACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrD,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;wBAC7C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACjC,OAAO;oBACR,CAAC;gBACF,CAAC;YACF,CAAC;SACD,CAAC;IACH,CAAC;IAEM,WAAW,CAAC,SAAiB,EAAE,SAA+B;QACpE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACxC,CAAC;QACD,uBAAuB;QACvB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAE5E,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACjC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC9B,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB;QAC3C,CAAC;IACF,CAAC;IAEM,aAAa;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAEM,mBAAmB,CAAC,gBAAgC;QAC1D,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAC1C,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAC/B,CAAC;IAEM,QAAQ,CAAC,SAAiB;QAChC,IAAI,KAAkC,CAAC;QACvC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACP,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAEO,kBAAkB,CAAC,YAA0C;QACpE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACnD,gBAAgB;YAChB,OAAO;QACR,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;QAC3B,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAC/B,CAAC;IAEO,kBAAkB;QACzB,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAClC,MAAM,iBAAiB,GAAG,UAAU,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC;YACnF,IAAI,iBAAiB,KAAK,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5D,0EAA0E;gBAC1E,IAAI,YAAY,CAAC;gBACjB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAC;gBAC7E,CAAC;qBAAM,CAAC;oBACP,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC;gBAC9E,CAAC;gBACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;YAC9D,CAAC;QACF,CAAC;IACF,CAAC;IAEM,yBAAyB,CAAC,sBAA+B;QAC/D,IAAI,CAAC,uBAAuB,GAAG,sBAAsB,CAAC;QACtD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC;IAEO,sBAAsB;QAC7B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAgC,EAAE,CAAC;QAChD,MAAM,aAAa,GAAuB;YACzC,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE;gBACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBACtB,CAAC;YACF,CAAC;SACD,CAAC;QACF,eAAe,CAAC,sBAAsB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAExG,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAClD,IAAI,KAAK,EAAE,CAAC;gBACX,cAAc,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC5E,CAAC;QACF,CAAC;QACD,aAAa,CAAC,OAAO,CAAC,4DAA4D,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjH,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAChF,aAAa,CAAC,OAAO,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE9D,0EAA0E;QAC1E,yEAAyE;QACzE,0EAA0E;QAC1E,IAAI,UAAU,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,OAAO,EAAE,CAAC;YAC9D,aAAa,CAAC,OAAO,CAAC,uFAAuF,CAAC,CAAC;QAChH,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAEO,UAAU;QACjB,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QACxD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IACtF,CAAC;IAEM,gBAAgB;QACtB,OAAO;YACN,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,KAAK;YACrB,mBAAmB,EAAE,KAAK;SAC1B,CAAC;IACH,CAAC;IAEM,mBAAmB;QACzB,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACtC,CAAC;CAED","file":"standaloneThemeService.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\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\nimport * as dom from '../../../base/browser/dom.js';\nimport * as domStylesheetsJs from '../../../base/browser/domStylesheets.js';\nimport { addMatchMediaChangeListener } from '../../../base/browser/browser.js';\nimport { Color } from '../../../base/common/color.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { TokenizationRegistry } from '../../common/languages.js';\nimport { FontStyle, TokenMetadata } from '../../common/encodedTokenAttributes.js';\nimport { ITokenThemeRule, TokenTheme, generateTokensCSSForColorMap } from '../../common/languages/supports/tokenization.js';\nimport { BuiltinTheme, IStandaloneTheme, IStandaloneThemeData, IStandaloneThemeService } from '../common/standaloneTheme.js';\nimport { hc_black, hc_light, vs, vs_dark } from '../common/themes.js';\nimport { IEnvironmentService } from '../../../platform/environment/common/environment.js';\nimport { Registry } from '../../../platform/registry/common/platform.js';\nimport { asCssVariableName, ColorIdentifier, Extensions, IColorRegistry } from '../../../platform/theme/common/colorRegistry.js';\nimport { Extensions as ThemingExtensions, ICssStyleCollector, IFileIconTheme, IProductIconTheme, IThemingRegistry, ITokenStyle } from '../../../platform/theme/common/themeService.js';\nimport { IDisposable, Disposable } from '../../../base/common/lifecycle.js';\nimport { ColorScheme, isDark, isHighContrast } from '../../../platform/theme/common/theme.js';\nimport { getIconsStyleSheet, UnthemedProductIconTheme } from '../../../platform/theme/browser/iconsStyleSheet.js';\nimport { mainWindow } from '../../../base/browser/window.js';\n\nexport const VS_LIGHT_THEME_NAME = 'vs';\nexport const VS_DARK_THEME_NAME = 'vs-dark';\nexport const HC_BLACK_THEME_NAME = 'hc-black';\nexport const HC_LIGHT_THEME_NAME = 'hc-light';\n\nconst colorRegistry = Registry.as<IColorRegistry>(Extensions.ColorContribution);\nconst themingRegistry = Registry.as<IThemingRegistry>(ThemingExtensions.ThemingContribution);\n\nclass StandaloneTheme implements IStandaloneTheme {\n\n\tpublic readonly id: string;\n\tpublic readonly themeName: string;\n\n\tprivate readonly themeData: IStandaloneThemeData;\n\tprivate colors: Map<string, Color> | null;\n\tprivate readonly defaultColors: { [colorId: string]: Color | undefined };\n\tprivate _tokenTheme: TokenTheme | null;\n\n\tconstructor(name: string, standaloneThemeData: IStandaloneThemeData) {\n\t\tthis.themeData = standaloneThemeData;\n\t\tconst base = standaloneThemeData.base;\n\t\tif (name.length > 0) {\n\t\t\tif (isBuiltinTheme(name)) {\n\t\t\t\tthis.id = name;\n\t\t\t} else {\n\t\t\t\tthis.id = base + ' ' + name;\n\t\t\t}\n\t\t\tthis.themeName = name;\n\t\t} else {\n\t\t\tthis.id = base;\n\t\t\tthis.themeName = base;\n\t\t}\n\t\tthis.colors = null;\n\t\tthis.defaultColors = Object.create(null);\n\t\tthis._tokenTheme = null;\n\t}\n\n\tpublic get base(): string {\n\t\treturn this.themeData.base;\n\t}\n\n\tpublic notifyBaseUpdated() {\n\t\tif (this.themeData.inherit) {\n\t\t\tthis.colors = null;\n\t\t\tthis._tokenTheme = null;\n\t\t}\n\t}\n\n\tprivate getColors(): Map<string, Color> {\n\t\tif (!this.colors) {\n\t\t\tconst colors = new Map<string, Color>();\n\t\t\tfor (const id in this.themeData.colors) {\n\t\t\t\tcolors.set(id, Color.fromHex(this.themeData.colors[id]));\n\t\t\t}\n\t\t\tif (this.themeData.inherit) {\n\t\t\t\tconst baseData = getBuiltinRules(this.themeData.base);\n\t\t\t\tfor (const id in baseData.colors) {\n\t\t\t\t\tif (!colors.has(id)) {\n\t\t\t\t\t\tcolors.set(id, Color.fromHex(baseData.colors[id]));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.colors = colors;\n\t\t}\n\t\treturn this.colors;\n\t}\n\n\tpublic getColor(colorId: ColorIdentifier, useDefault?: boolean): Color | undefined {\n\t\tconst color = this.getColors().get(colorId);\n\t\tif (color) {\n\t\t\treturn color;\n\t\t}\n\t\tif (useDefault !== false) {\n\t\t\treturn this.getDefault(colorId);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprivate getDefault(colorId: ColorIdentifier): Color | undefined {\n\t\tlet color = this.defaultColors[colorId];\n\t\tif (color) {\n\t\t\treturn color;\n\t\t}\n\t\tcolor = colorRegistry.resolveDefaultColor(colorId, this);\n\t\tthis.defaultColors[colorId] = color;\n\t\treturn color;\n\t}\n\n\tpublic defines(colorId: ColorIdentifier): boolean {\n\t\treturn this.getColors().has(colorId);\n\t}\n\n\tpublic get type(): ColorScheme {\n\t\tswitch (this.base) {\n\t\t\tcase VS_LIGHT_THEME_NAME: return ColorScheme.LIGHT;\n\t\t\tcase HC_BLACK_THEME_NAME: return ColorScheme.HIGH_CONTRAST_DARK;\n\t\t\tcase HC_LIGHT_THEME_NAME: return ColorScheme.HIGH_CONTRAST_LIGHT;\n\t\t\tdefault: return ColorScheme.DARK;\n\t\t}\n\t}\n\n\tpublic get tokenTheme(): TokenTheme {\n\t\tif (!this._tokenTheme) {\n\t\t\tlet rules: ITokenThemeRule[] = [];\n\t\t\tlet encodedTokensColors: string[] = [];\n\t\t\tif (this.themeData.inherit) {\n\t\t\t\tconst baseData = getBuiltinRules(this.themeData.base);\n\t\t\t\trules = baseData.rules;\n\t\t\t\tif (baseData.encodedTokensColors) {\n\t\t\t\t\tencodedTokensColors = baseData.encodedTokensColors;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Pick up default colors from `editor.foreground` and `editor.background` if available\n\t\t\tconst editorForeground = this.themeData.colors['editor.foreground'];\n\t\t\tconst editorBackground = this.themeData.colors['editor.background'];\n\t\t\tif (editorForeground || editorBackground) {\n\t\t\t\tconst rule: ITokenThemeRule = { token: '' };\n\t\t\t\tif (editorForeground) {\n\t\t\t\t\trule.foreground = editorForeground;\n\t\t\t\t}\n\t\t\t\tif (editorBackground) {\n\t\t\t\t\trule.background = editorBackground;\n\t\t\t\t}\n\t\t\t\trules.push(rule);\n\t\t\t}\n\t\t\trules = rules.concat(this.themeData.rules);\n\t\t\tif (this.themeData.encodedTokensColors) {\n\t\t\t\tencodedTokensColors = this.themeData.encodedTokensColors;\n\t\t\t}\n\t\t\tthis._tokenTheme = TokenTheme.createFromRawTokenTheme(rules, encodedTokensColors);\n\t\t}\n\t\treturn this._tokenTheme;\n\t}\n\n\tpublic getTokenStyleMetadata(type: string, modifiers: string[], modelLanguage: string): ITokenStyle | undefined {\n\t\t// use theme rules match\n\t\tconst style = this.tokenTheme._match([type].concat(modifiers).join('.'));\n\t\tconst metadata = style.metadata;\n\t\tconst foreground = TokenMetadata.getForeground(metadata);\n\t\tconst fontStyle = TokenMetadata.getFontStyle(metadata);\n\t\treturn {\n\t\t\tforeground: foreground,\n\t\t\titalic: Boolean(fontStyle & FontStyle.Italic),\n\t\t\tbold: Boolean(fontStyle & FontStyle.Bold),\n\t\t\tunderline: Boolean(fontStyle & FontStyle.Underline),\n\t\t\tstrikethrough: Boolean(fontStyle & FontStyle.Strikethrough)\n\t\t};\n\t}\n\n\tpublic get tokenColorMap(): string[] {\n\t\treturn [];\n\t}\n\n\tpublic readonly semanticHighlighting = false;\n}\n\nfunction isBuiltinTheme(themeName: string): themeName is BuiltinTheme {\n\treturn (\n\t\tthemeName === VS_LIGHT_THEME_NAME\n\t\t|| themeName === VS_DARK_THEME_NAME\n\t\t|| themeName === HC_BLACK_THEME_NAME\n\t\t|| themeName === HC_LIGHT_THEME_NAME\n\t);\n}\n\nfunction getBuiltinRules(builtinTheme: BuiltinTheme): IStandaloneThemeData {\n\tswitch (builtinTheme) {\n\t\tcase VS_LIGHT_THEME_NAME:\n\t\t\treturn vs;\n\t\tcase VS_DARK_THEME_NAME:\n\t\t\treturn vs_dark;\n\t\tcase HC_BLACK_THEME_NAME:\n\t\t\treturn hc_black;\n\t\tcase HC_LIGHT_THEME_NAME:\n\t\t\treturn hc_light;\n\t}\n}\n\nfunction newBuiltInTheme(builtinTheme: BuiltinTheme): StandaloneTheme {\n\tconst themeData = getBuiltinRules(builtinTheme);\n\treturn new StandaloneTheme(builtinTheme, themeData);\n}\n\nexport class StandaloneThemeService extends Disposable implements IStandaloneThemeService {\n\n\tdeclare readonly _serviceBrand: undefined;\n\n\tprivate readonly _onColorThemeChange = this._register(new Emitter<IStandaloneTheme>());\n\tpublic readonly onDidColorThemeChange = this._onColorThemeChange.event;\n\n\tprivate readonly _onProductIconThemeChange = this._register(new Emitter<IProductIconTheme>());\n\tpublic readonly onDidProductIconThemeChange = this._onProductIconThemeChange.event;\n\n\tprivate readonly _environment: IEnvironmentService = Object.create(null);\n\tprivate readonly _knownThemes: Map<string, StandaloneTheme>;\n\tprivate _autoDetectHighContrast: boolean;\n\tprivate _codiconCSS: string;\n\tprivate _themeCSS: string;\n\tprivate _allCSS: string;\n\tprivate _globalStyleElement: HTMLStyleElement | null;\n\tprivate _styleElements: HTMLStyleElement[];\n\tprivate _colorMapOverride: Color[] | null;\n\tprivate _theme!: IStandaloneTheme;\n\n\tprivate _builtInProductIconTheme = new UnthemedProductIconTheme();\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._autoDetectHighContrast = true;\n\n\t\tthis._knownThemes = new Map<string, StandaloneTheme>();\n\t\tthis._knownThemes.set(VS_LIGHT_THEME_NAME, newBuiltInTheme(VS_LIGHT_THEME_NAME));\n\t\tthis._knownThemes.set(VS_DARK_THEME_NAME, newBuiltInTheme(VS_DARK_THEME_NAME));\n\t\tthis._knownThemes.set(HC_BLACK_THEME_NAME, newBuiltInTheme(HC_BLACK_THEME_NAME));\n\t\tthis._knownThemes.set(HC_LIGHT_THEME_NAME, newBuiltInTheme(HC_LIGHT_THEME_NAME));\n\n\t\tconst iconsStyleSheet = this._register(getIconsStyleSheet(this));\n\n\t\tthis._codiconCSS = iconsStyleSheet.getCSS();\n\t\tthis._themeCSS = '';\n\t\tthis._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`;\n\t\tthis._globalStyleElement = null;\n\t\tthis._styleElements = [];\n\t\tthis._colorMapOverride = null;\n\t\tthis.setTheme(VS_LIGHT_THEME_NAME);\n\t\tthis._onOSSchemeChanged();\n\n\t\tthis._register(iconsStyleSheet.onDidChange(() => {\n\t\t\tthis._codiconCSS = iconsStyleSheet.getCSS();\n\t\t\tthis._updateCSS();\n\t\t}));\n\n\t\taddMatchMediaChangeListener(mainWindow, '(forced-colors: active)', () => {\n\t\t\t// Update theme selection for auto-detecting high contrast\n\t\t\tthis._onOSSchemeChanged();\n\t\t\t// Always rebuild the generated CSS so that the `forced-color-adjust: none`\n\t\t\t// rule is added/removed reactively when the OS forced colors state changes.\n\t\t\tthis._updateThemeOrColorMap();\n\t\t});\n\t}\n\n\tpublic registerEditorContainer(domNode: HTMLElement): IDisposable {\n\t\tif (dom.isInShadowDOM(domNode)) {\n\t\t\treturn this._registerShadowDomContainer(domNode);\n\t\t}\n\t\treturn this._registerRegularEditorContainer();\n\t}\n\n\tprivate _registerRegularEditorContainer(): IDisposable {\n\t\tif (!this._globalStyleElement) {\n\t\t\tthis._globalStyleElement = domStylesheetsJs.createStyleSheet(undefined, style => {\n\t\t\t\tstyle.className = 'monaco-colors';\n\t\t\t\tstyle.textContent = this._allCSS;\n\t\t\t});\n\t\t\tthis._styleElements.push(this._globalStyleElement);\n\t\t}\n\t\treturn Disposable.None;\n\t}\n\n\tprivate _registerShadowDomContainer(domNode: HTMLElement): IDisposable {\n\t\tconst styleElement = domStylesheetsJs.createStyleSheet(domNode, style => {\n\t\t\tstyle.className = 'monaco-colors';\n\t\t\tstyle.textContent = this._allCSS;\n\t\t});\n\t\tthis._styleElements.push(styleElement);\n\t\treturn {\n\t\t\tdispose: () => {\n\t\t\t\tfor (let i = 0; i < this._styleElements.length; i++) {\n\t\t\t\t\tif (this._styleElements[i] === styleElement) {\n\t\t\t\t\t\tthis._styleElements.splice(i, 1);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tpublic defineTheme(themeName: string, themeData: IStandaloneThemeData): void {\n\t\tif (!/^[a-z0-9\\-]+$/i.test(themeName)) {\n\t\t\tthrow new Error('Illegal theme name!');\n\t\t}\n\t\tif (!isBuiltinTheme(themeData.base) && !isBuiltinTheme(themeName)) {\n\t\t\tthrow new Error('Illegal theme base!');\n\t\t}\n\t\t// set or replace theme\n\t\tthis._knownThemes.set(themeName, new StandaloneTheme(themeName, themeData));\n\n\t\tif (isBuiltinTheme(themeName)) {\n\t\t\tthis._knownThemes.forEach(theme => {\n\t\t\t\tif (theme.base === themeName) {\n\t\t\t\t\ttheme.notifyBaseUpdated();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (this._theme.themeName === themeName) {\n\t\t\tthis.setTheme(themeName); // refresh theme\n\t\t}\n\t}\n\n\tpublic getColorTheme(): IStandaloneTheme {\n\t\treturn this._theme;\n\t}\n\n\tpublic setColorMapOverride(colorMapOverride: Color[] | null): void {\n\t\tthis._colorMapOverride = colorMapOverride;\n\t\tthis._updateThemeOrColorMap();\n\t}\n\n\tpublic setTheme(themeName: string): void {\n\t\tlet theme: StandaloneTheme | undefined;\n\t\tif (this._knownThemes.has(themeName)) {\n\t\t\ttheme = this._knownThemes.get(themeName);\n\t\t} else {\n\t\t\ttheme = this._knownThemes.get(VS_LIGHT_THEME_NAME);\n\t\t}\n\t\tthis._updateActualTheme(theme);\n\t}\n\n\tprivate _updateActualTheme(desiredTheme: IStandaloneTheme | undefined): void {\n\t\tif (!desiredTheme || this._theme === desiredTheme) {\n\t\t\t// Nothing to do\n\t\t\treturn;\n\t\t}\n\t\tthis._theme = desiredTheme;\n\t\tthis._updateThemeOrColorMap();\n\t}\n\n\tprivate _onOSSchemeChanged() {\n\t\tif (this._autoDetectHighContrast) {\n\t\t\tconst wantsHighContrast = mainWindow.matchMedia(`(forced-colors: active)`).matches;\n\t\t\tif (wantsHighContrast !== isHighContrast(this._theme.type)) {\n\t\t\t\t// switch to high contrast or non-high contrast but stick to dark or light\n\t\t\t\tlet newThemeName;\n\t\t\t\tif (isDark(this._theme.type)) {\n\t\t\t\t\tnewThemeName = wantsHighContrast ? HC_BLACK_THEME_NAME : VS_DARK_THEME_NAME;\n\t\t\t\t} else {\n\t\t\t\t\tnewThemeName = wantsHighContrast ? HC_LIGHT_THEME_NAME : VS_LIGHT_THEME_NAME;\n\t\t\t\t}\n\t\t\t\tthis._updateActualTheme(this._knownThemes.get(newThemeName));\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic setAutoDetectHighContrast(autoDetectHighContrast: boolean): void {\n\t\tthis._autoDetectHighContrast = autoDetectHighContrast;\n\t\tthis._onOSSchemeChanged();\n\t}\n\n\tprivate _updateThemeOrColorMap(): void {\n\t\tconst cssRules: string[] = [];\n\t\tconst hasRule: { [rule: string]: boolean } = {};\n\t\tconst ruleCollector: ICssStyleCollector = {\n\t\t\taddRule: (rule: string) => {\n\t\t\t\tif (!hasRule[rule]) {\n\t\t\t\t\tcssRules.push(rule);\n\t\t\t\t\thasRule[rule] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tthemingRegistry.getThemingParticipants().forEach(p => p(this._theme, ruleCollector, this._environment));\n\n\t\tconst colorVariables: string[] = [];\n\t\tfor (const item of colorRegistry.getColors()) {\n\t\t\tconst color = this._theme.getColor(item.id, true);\n\t\t\tif (color) {\n\t\t\t\tcolorVariables.push(`${asCssVariableName(item.id)}: ${color.toString()};`);\n\t\t\t}\n\t\t}\n\t\truleCollector.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { ${colorVariables.join('\\n')} }`);\n\n\t\tconst colorMap = this._colorMapOverride || this._theme.tokenTheme.getColorMap();\n\t\truleCollector.addRule(generateTokensCSSForColorMap(colorMap));\n\n\t\t// If the OS has forced-colors active, disable forced color adjustment for\n\t\t// Monaco editor elements so that VS Code's built-in high contrast themes\n\t\t// (hc-black / hc-light) are used instead of the OS forcing system colors.\n\t\tif (mainWindow.matchMedia(`(forced-colors: active)`).matches) {\n\t\t\truleCollector.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { forced-color-adjust: none; }`);\n\t\t}\n\n\t\tthis._themeCSS = cssRules.join('\\n');\n\t\tthis._updateCSS();\n\n\t\tTokenizationRegistry.setColorMap(colorMap);\n\t\tthis._onColorThemeChange.fire(this._theme);\n\t}\n\n\tprivate _updateCSS(): void {\n\t\tthis._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`;\n\t\tthis._styleElements.forEach(styleElement => styleElement.textContent = this._allCSS);\n\t}\n\n\tpublic getFileIconTheme(): IFileIconTheme {\n\t\treturn {\n\t\t\thasFileIcons: false,\n\t\t\thasFolderIcons: false,\n\t\t\thidesExplorerArrows: false\n\t\t};\n\t}\n\n\tpublic getProductIconTheme(): IProductIconTheme {\n\t\treturn this._builtInProductIconTheme;\n\t}\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 *--------------------------------------------------------------------------------------------*/\n\nimport * as dom from '../../../base/browser/dom.js';\nimport * as domStylesheetsJs from '../../../base/browser/domStylesheets.js';\nimport { addMatchMediaChangeListener } from '../../../base/browser/browser.js';\nimport { Color } from '../../../base/common/color.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { TokenizationRegistry } from '../../common/languages.js';\nimport { FontStyle, TokenMetadata } from '../../common/encodedTokenAttributes.js';\nimport { ITokenThemeRule, TokenTheme, generateTokensCSSForColorMap } from '../../common/languages/supports/tokenization.js';\nimport { BuiltinTheme, IStandaloneTheme, IStandaloneThemeData, IStandaloneThemeService } from '../common/standaloneTheme.js';\nimport { hc_black, hc_light, vs, vs_dark } from '../common/themes.js';\nimport { IEnvironmentService } from '../../../platform/environment/common/environment.js';\nimport { Registry } from '../../../platform/registry/common/platform.js';\nimport { asCssVariableName, ColorIdentifier, Extensions, IColorRegistry } from '../../../platform/theme/common/colorRegistry.js';\nimport { Extensions as ThemingExtensions, ICssStyleCollector, IFileIconTheme, IProductIconTheme, IThemingRegistry, ITokenStyle } from '../../../platform/theme/common/themeService.js';\nimport { IDisposable, Disposable } from '../../../base/common/lifecycle.js';\nimport { ColorScheme, isDark, isHighContrast } from '../../../platform/theme/common/theme.js';\nimport { getIconsStyleSheet, UnthemedProductIconTheme } from '../../../platform/theme/browser/iconsStyleSheet.js';\nimport { mainWindow } from '../../../base/browser/window.js';\n\nexport const VS_LIGHT_THEME_NAME = 'vs';\nexport const VS_DARK_THEME_NAME = 'vs-dark';\nexport const HC_BLACK_THEME_NAME = 'hc-black';\nexport const HC_LIGHT_THEME_NAME = 'hc-light';\n\nconst colorRegistry = Registry.as<IColorRegistry>(Extensions.ColorContribution);\nconst themingRegistry = Registry.as<IThemingRegistry>(ThemingExtensions.ThemingContribution);\n\nclass StandaloneTheme implements IStandaloneTheme {\n\n\tpublic readonly id: string;\n\tpublic readonly themeName: string;\n\n\tprivate readonly themeData: IStandaloneThemeData;\n\tprivate colors: Map<string, Color> | null;\n\tprivate readonly defaultColors: { [colorId: string]: Color | undefined };\n\tprivate _tokenTheme: TokenTheme | null;\n\n\tconstructor(name: string, standaloneThemeData: IStandaloneThemeData) {\n\t\tthis.themeData = standaloneThemeData;\n\t\tconst base = standaloneThemeData.base;\n\t\tif (name.length > 0) {\n\t\t\tif (isBuiltinTheme(name)) {\n\t\t\t\tthis.id = name;\n\t\t\t} else {\n\t\t\t\tthis.id = base + ' ' + name;\n\t\t\t}\n\t\t\tthis.themeName = name;\n\t\t} else {\n\t\t\tthis.id = base;\n\t\t\tthis.themeName = base;\n\t\t}\n\t\tthis.colors = null;\n\t\tthis.defaultColors = Object.create(null);\n\t\tthis._tokenTheme = null;\n\t}\n\n\tpublic get base(): string {\n\t\treturn this.themeData.base;\n\t}\n\n\tpublic notifyBaseUpdated() {\n\t\tif (this.themeData.inherit) {\n\t\t\tthis.colors = null;\n\t\t\tthis._tokenTheme = null;\n\t\t}\n\t}\n\n\tprivate getColors(): Map<string, Color> {\n\t\tif (!this.colors) {\n\t\t\tconst colors = new Map<string, Color>();\n\t\t\tfor (const id in this.themeData.colors) {\n\t\t\t\tcolors.set(id, Color.fromHex(this.themeData.colors[id]));\n\t\t\t}\n\t\t\tif (this.themeData.inherit) {\n\t\t\t\tconst baseData = getBuiltinRules(this.themeData.base);\n\t\t\t\tfor (const id in baseData.colors) {\n\t\t\t\t\tif (!colors.has(id)) {\n\t\t\t\t\t\tcolors.set(id, Color.fromHex(baseData.colors[id]));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.colors = colors;\n\t\t}\n\t\treturn this.colors;\n\t}\n\n\tpublic getColor(colorId: ColorIdentifier, useDefault?: boolean): Color | undefined {\n\t\tconst color = this.getColors().get(colorId);\n\t\tif (color) {\n\t\t\treturn color;\n\t\t}\n\t\tif (useDefault !== false) {\n\t\t\treturn this.getDefault(colorId);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprivate getDefault(colorId: ColorIdentifier): Color | undefined {\n\t\tlet color = this.defaultColors[colorId];\n\t\tif (color) {\n\t\t\treturn color;\n\t\t}\n\t\tcolor = colorRegistry.resolveDefaultColor(colorId, this);\n\t\tthis.defaultColors[colorId] = color;\n\t\treturn color;\n\t}\n\n\tpublic defines(colorId: ColorIdentifier): boolean {\n\t\treturn this.getColors().has(colorId);\n\t}\n\n\tpublic get type(): ColorScheme {\n\t\tswitch (this.base) {\n\t\t\tcase VS_LIGHT_THEME_NAME: return ColorScheme.LIGHT;\n\t\t\tcase HC_BLACK_THEME_NAME: return ColorScheme.HIGH_CONTRAST_DARK;\n\t\t\tcase HC_LIGHT_THEME_NAME: return ColorScheme.HIGH_CONTRAST_LIGHT;\n\t\t\tdefault: return ColorScheme.DARK;\n\t\t}\n\t}\n\n\tpublic get tokenTheme(): TokenTheme {\n\t\tif (!this._tokenTheme) {\n\t\t\tlet rules: ITokenThemeRule[] = [];\n\t\t\tlet encodedTokensColors: string[] = [];\n\t\t\tif (this.themeData.inherit) {\n\t\t\t\tconst baseData = getBuiltinRules(this.themeData.base);\n\t\t\t\trules = baseData.rules;\n\t\t\t\tif (baseData.encodedTokensColors) {\n\t\t\t\t\tencodedTokensColors = baseData.encodedTokensColors;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Pick up default colors from `editor.foreground` and `editor.background` if available\n\t\t\tconst editorForeground = this.themeData.colors['editor.foreground'];\n\t\t\tconst editorBackground = this.themeData.colors['editor.background'];\n\t\t\tif (editorForeground || editorBackground) {\n\t\t\t\tconst rule: ITokenThemeRule = { token: '' };\n\t\t\t\tif (editorForeground) {\n\t\t\t\t\trule.foreground = editorForeground;\n\t\t\t\t}\n\t\t\t\tif (editorBackground) {\n\t\t\t\t\trule.background = editorBackground;\n\t\t\t\t}\n\t\t\t\trules.push(rule);\n\t\t\t}\n\t\t\trules = rules.concat(this.themeData.rules);\n\t\t\tif (this.themeData.encodedTokensColors) {\n\t\t\t\tencodedTokensColors = this.themeData.encodedTokensColors;\n\t\t\t}\n\t\t\tthis._tokenTheme = TokenTheme.createFromRawTokenTheme(rules, encodedTokensColors);\n\t\t}\n\t\treturn this._tokenTheme;\n\t}\n\n\tpublic getTokenStyleMetadata(type: string, modifiers: string[], modelLanguage: string): ITokenStyle | undefined {\n\t\t// use theme rules match\n\t\tconst style = this.tokenTheme._match([type].concat(modifiers).join('.'));\n\t\tconst metadata = style.metadata;\n\t\tconst foreground = TokenMetadata.getForeground(metadata);\n\t\tconst fontStyle = TokenMetadata.getFontStyle(metadata);\n\t\treturn {\n\t\t\tforeground: foreground,\n\t\t\titalic: Boolean(fontStyle & FontStyle.Italic),\n\t\t\tbold: Boolean(fontStyle & FontStyle.Bold),\n\t\t\tunderline: Boolean(fontStyle & FontStyle.Underline),\n\t\t\tstrikethrough: Boolean(fontStyle & FontStyle.Strikethrough)\n\t\t};\n\t}\n\n\tpublic get tokenColorMap(): string[] {\n\t\treturn [];\n\t}\n\n\tpublic readonly semanticHighlighting = false;\n}\n\nfunction isBuiltinTheme(themeName: string): themeName is BuiltinTheme {\n\treturn (\n\t\tthemeName === VS_LIGHT_THEME_NAME\n\t\t|| themeName === VS_DARK_THEME_NAME\n\t\t|| themeName === HC_BLACK_THEME_NAME\n\t\t|| themeName === HC_LIGHT_THEME_NAME\n\t);\n}\n\nfunction getBuiltinRules(builtinTheme: BuiltinTheme): IStandaloneThemeData {\n\tswitch (builtinTheme) {\n\t\tcase VS_LIGHT_THEME_NAME:\n\t\t\treturn vs;\n\t\tcase VS_DARK_THEME_NAME:\n\t\t\treturn vs_dark;\n\t\tcase HC_BLACK_THEME_NAME:\n\t\t\treturn hc_black;\n\t\tcase HC_LIGHT_THEME_NAME:\n\t\t\treturn hc_light;\n\t}\n}\n\nfunction newBuiltInTheme(builtinTheme: BuiltinTheme): StandaloneTheme {\n\tconst themeData = getBuiltinRules(builtinTheme);\n\treturn new StandaloneTheme(builtinTheme, themeData);\n}\n\nexport class StandaloneThemeService extends Disposable implements IStandaloneThemeService {\n\n\tdeclare readonly _serviceBrand: undefined;\n\n\tprivate readonly _onColorThemeChange = this._register(new Emitter<IStandaloneTheme>());\n\tpublic readonly onDidColorThemeChange = this._onColorThemeChange.event;\n\n\tprivate readonly _onProductIconThemeChange = this._register(new Emitter<IProductIconTheme>());\n\tpublic readonly onDidProductIconThemeChange = this._onProductIconThemeChange.event;\n\n\tprivate readonly _environment: IEnvironmentService = Object.create(null);\n\tprivate readonly _knownThemes: Map<string, StandaloneTheme>;\n\tprivate _autoDetectHighContrast: boolean;\n\tprivate _codiconCSS: string;\n\tprivate _themeCSS: string;\n\tprivate _allCSS: string;\n\tprivate _globalStyleElement: HTMLStyleElement | null;\n\tprivate _styleElements: HTMLStyleElement[];\n\tprivate _colorMapOverride: Color[] | null;\n\tprivate _theme!: IStandaloneTheme;\n\n\tprivate _builtInProductIconTheme = new UnthemedProductIconTheme();\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._autoDetectHighContrast = true;\n\n\t\tthis._knownThemes = new Map<string, StandaloneTheme>();\n\t\tthis._knownThemes.set(VS_LIGHT_THEME_NAME, newBuiltInTheme(VS_LIGHT_THEME_NAME));\n\t\tthis._knownThemes.set(VS_DARK_THEME_NAME, newBuiltInTheme(VS_DARK_THEME_NAME));\n\t\tthis._knownThemes.set(HC_BLACK_THEME_NAME, newBuiltInTheme(HC_BLACK_THEME_NAME));\n\t\tthis._knownThemes.set(HC_LIGHT_THEME_NAME, newBuiltInTheme(HC_LIGHT_THEME_NAME));\n\n\t\tconst iconsStyleSheet = this._register(getIconsStyleSheet(this));\n\n\t\tthis._codiconCSS = iconsStyleSheet.getCSS();\n\t\tthis._themeCSS = '';\n\t\tthis._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`;\n\t\tthis._globalStyleElement = null;\n\t\tthis._styleElements = [];\n\t\tthis._colorMapOverride = null;\n\t\tthis.setTheme(VS_LIGHT_THEME_NAME);\n\t\tthis._onOSSchemeChanged();\n\n\t\tthis._register(iconsStyleSheet.onDidChange(() => {\n\t\t\tthis._codiconCSS = iconsStyleSheet.getCSS();\n\t\t\tthis._updateCSS();\n\t\t}));\n\n\t\taddMatchMediaChangeListener(mainWindow, '(forced-colors: active)', () => {\n\t\t\t// Update theme selection for auto-detecting high contrast\n\t\t\tthis._onOSSchemeChanged();\n\t\t\t// Always rebuild the generated CSS so that the `forced-color-adjust: none`\n\t\t\t// rule is added/removed reactively when the OS forced colors state changes.\n\t\t\tthis._updateThemeOrColorMap();\n\t\t});\n\t}\n\n\tpublic registerEditorContainer(domNode: HTMLElement): IDisposable {\n\t\tif (dom.isInShadowDOM(domNode)) {\n\t\t\treturn this._registerShadowDomContainer(domNode);\n\t\t}\n\t\treturn this._registerRegularEditorContainer();\n\t}\n\n\tprivate _registerRegularEditorContainer(): IDisposable {\n\t\tif (!this._globalStyleElement) {\n\t\t\tthis._globalStyleElement = domStylesheetsJs.createStyleSheet(undefined, style => {\n\t\t\t\tstyle.className = 'monaco-colors';\n\t\t\t\tstyle.textContent = this._allCSS;\n\t\t\t});\n\t\t\tthis._styleElements.push(this._globalStyleElement);\n\t\t}\n\t\treturn Disposable.None;\n\t}\n\n\tprivate _registerShadowDomContainer(domNode: HTMLElement): IDisposable {\n\t\tconst styleElement = domStylesheetsJs.createStyleSheet(domNode, style => {\n\t\t\tstyle.className = 'monaco-colors';\n\t\t\tstyle.textContent = this._allCSS;\n\t\t});\n\t\tthis._styleElements.push(styleElement);\n\t\treturn {\n\t\t\tdispose: () => {\n\t\t\t\tfor (let i = 0; i < this._styleElements.length; i++) {\n\t\t\t\t\tif (this._styleElements[i] === styleElement) {\n\t\t\t\t\t\tthis._styleElements.splice(i, 1);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tpublic defineTheme(themeName: string, themeData: IStandaloneThemeData): void {\n\t\tif (!/^[a-z0-9\\-]+$/i.test(themeName)) {\n\t\t\tthrow new Error('Illegal theme name!');\n\t\t}\n\t\tif (!isBuiltinTheme(themeData.base) && !isBuiltinTheme(themeName)) {\n\t\t\tthrow new Error('Illegal theme base!');\n\t\t}\n\t\t// set or replace theme\n\t\tthis._knownThemes.set(themeName, new StandaloneTheme(themeName, themeData));\n\n\t\tif (isBuiltinTheme(themeName)) {\n\t\t\tthis._knownThemes.forEach(theme => {\n\t\t\t\tif (theme.base === themeName) {\n\t\t\t\t\ttheme.notifyBaseUpdated();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (this._theme.themeName === themeName) {\n\t\t\tthis.setTheme(themeName); // refresh theme\n\t\t}\n\t}\n\n\tpublic getColorTheme(): IStandaloneTheme {\n\t\treturn this._theme;\n\t}\n\n\tpublic setColorMapOverride(colorMapOverride: Color[] | null): void {\n\t\tthis._colorMapOverride = colorMapOverride;\n\t\tthis._updateThemeOrColorMap();\n\t}\n\n\tpublic setTheme(themeName: string): void {\n\t\tlet theme: StandaloneTheme | undefined;\n\t\tif (this._knownThemes.has(themeName)) {\n\t\t\ttheme = this._knownThemes.get(themeName);\n\t\t} else {\n\t\t\ttheme = this._knownThemes.get(VS_LIGHT_THEME_NAME);\n\t\t}\n\t\tthis._updateActualTheme(theme);\n\t}\n\n\tprivate _updateActualTheme(desiredTheme: IStandaloneTheme | undefined): void {\n\t\tif (!desiredTheme || this._theme === desiredTheme) {\n\t\t\t// Nothing to do\n\t\t\treturn;\n\t\t}\n\t\tthis._theme = desiredTheme;\n\t\tthis._updateThemeOrColorMap();\n\t}\n\n\tprivate _onOSSchemeChanged() {\n\t\tif (this._autoDetectHighContrast) {\n\t\t\tconst wantsHighContrast = mainWindow.matchMedia(`(forced-colors: active)`).matches;\n\t\t\tif (wantsHighContrast !== isHighContrast(this._theme.type)) {\n\t\t\t\t// switch to high contrast or non-high contrast but stick to dark or light\n\t\t\t\tlet newThemeName;\n\t\t\t\tif (isDark(this._theme.type)) {\n\t\t\t\t\tnewThemeName = wantsHighContrast ? HC_BLACK_THEME_NAME : VS_DARK_THEME_NAME;\n\t\t\t\t} else {\n\t\t\t\t\tnewThemeName = wantsHighContrast ? HC_LIGHT_THEME_NAME : VS_LIGHT_THEME_NAME;\n\t\t\t\t}\n\t\t\t\tthis._updateActualTheme(this._knownThemes.get(newThemeName));\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic setAutoDetectHighContrast(autoDetectHighContrast: boolean): void {\n\t\tthis._autoDetectHighContrast = autoDetectHighContrast;\n\t\tthis._onOSSchemeChanged();\n\t}\n\n\tprivate _updateThemeOrColorMap(): void {\n\t\tconst cssRules: string[] = [];\n\t\tconst hasRule: { [rule: string]: boolean } = {};\n\t\tconst ruleCollector: ICssStyleCollector = {\n\t\t\taddRule: (rule: string) => {\n\t\t\t\tif (!hasRule[rule]) {\n\t\t\t\t\tcssRules.push(rule);\n\t\t\t\t\thasRule[rule] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tthemingRegistry.getThemingParticipants().forEach(p => p(this._theme, ruleCollector, this._environment));\n\n\t\tconst colorVariables: string[] = [];\n\t\tfor (const item of colorRegistry.getColors()) {\n\t\t\tconst color = this._theme.getColor(item.id, true);\n\t\t\tif (color) {\n\t\t\t\tcolorVariables.push(`${asCssVariableName(item.id)}: ${color.toString()};`);\n\t\t\t}\n\t\t}\n\t\truleCollector.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { ${colorVariables.join('\\n')} }`);\n\n\t\tconst colorMap = this._colorMapOverride || this._theme.tokenTheme.getColorMap();\n\t\truleCollector.addRule(generateTokensCSSForColorMap(colorMap));\n\n\t\t// If the OS has forced-colors active, disable forced color adjustment for\n\t\t// Monaco editor elements so that VS Code's built-in high contrast themes\n\t\t// (hc-black / hc-light) are used instead of the OS forcing system colors.\n\t\tif (mainWindow.matchMedia(`(forced-colors: active)`).matches) {\n\t\t\truleCollector.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { forced-color-adjust: none; }`);\n\t\t}\n\n\t\tthis._themeCSS = cssRules.join('\\n');\n\t\tthis._updateCSS();\n\n\t\tTokenizationRegistry.setColorMap(colorMap);\n\t\tthis._onColorThemeChange.fire(this._theme);\n\t}\n\n\tprivate _updateCSS(): void {\n\t\tthis._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`;\n\t\tthis._styleElements.forEach(styleElement => styleElement.textContent = this._allCSS);\n\t}\n\n\tpublic getFileIconTheme(): IFileIconTheme {\n\t\treturn {\n\t\t\thasFileIcons: false,\n\t\t\thasFolderIcons: false,\n\t\t\thidesExplorerArrows: false\n\t\t};\n\t}\n\n\tpublic getProductIconTheme(): IProductIconTheme {\n\t\treturn this._builtInProductIconTheme;\n\t}\n\n}\n"]}
|
|
@@ -69,176 +69,176 @@ export class AccessibilitySignal {
|
|
|
69
69
|
return signal;
|
|
70
70
|
}
|
|
71
71
|
static { this.errorAtPosition = AccessibilitySignal.register({
|
|
72
|
-
name: localize(
|
|
72
|
+
name: localize(1560, 'Error at Position'),
|
|
73
73
|
sound: Sound.error,
|
|
74
|
-
announcementMessage: localize(
|
|
74
|
+
announcementMessage: localize(1561, 'Error'),
|
|
75
75
|
settingsKey: 'accessibility.signals.positionHasError',
|
|
76
76
|
delaySettingsKey: 'accessibility.signalOptions.delays.errorAtPosition'
|
|
77
77
|
}); }
|
|
78
78
|
static { this.warningAtPosition = AccessibilitySignal.register({
|
|
79
|
-
name: localize(
|
|
79
|
+
name: localize(1562, 'Warning at Position'),
|
|
80
80
|
sound: Sound.warning,
|
|
81
|
-
announcementMessage: localize(
|
|
81
|
+
announcementMessage: localize(1563, 'Warning'),
|
|
82
82
|
settingsKey: 'accessibility.signals.positionHasWarning',
|
|
83
83
|
delaySettingsKey: 'accessibility.signalOptions.delays.warningAtPosition'
|
|
84
84
|
}); }
|
|
85
85
|
static { this.errorOnLine = AccessibilitySignal.register({
|
|
86
|
-
name: localize(
|
|
86
|
+
name: localize(1564, 'Error on Line'),
|
|
87
87
|
sound: Sound.error,
|
|
88
88
|
legacySoundSettingsKey: 'audioCues.lineHasError',
|
|
89
89
|
legacyAnnouncementSettingsKey: 'accessibility.alert.error',
|
|
90
|
-
announcementMessage: localize(
|
|
90
|
+
announcementMessage: localize(1565, 'Error on Line'),
|
|
91
91
|
settingsKey: 'accessibility.signals.lineHasError',
|
|
92
92
|
}); }
|
|
93
93
|
static { this.warningOnLine = AccessibilitySignal.register({
|
|
94
|
-
name: localize(
|
|
94
|
+
name: localize(1566, 'Warning on Line'),
|
|
95
95
|
sound: Sound.warning,
|
|
96
96
|
legacySoundSettingsKey: 'audioCues.lineHasWarning',
|
|
97
97
|
legacyAnnouncementSettingsKey: 'accessibility.alert.warning',
|
|
98
|
-
announcementMessage: localize(
|
|
98
|
+
announcementMessage: localize(1567, 'Warning on Line'),
|
|
99
99
|
settingsKey: 'accessibility.signals.lineHasWarning',
|
|
100
100
|
}); }
|
|
101
101
|
static { this.foldedArea = AccessibilitySignal.register({
|
|
102
|
-
name: localize(
|
|
102
|
+
name: localize(1568, 'Folded Area on Line'),
|
|
103
103
|
sound: Sound.foldedArea,
|
|
104
104
|
legacySoundSettingsKey: 'audioCues.lineHasFoldedArea',
|
|
105
105
|
legacyAnnouncementSettingsKey: 'accessibility.alert.foldedArea',
|
|
106
|
-
announcementMessage: localize(
|
|
106
|
+
announcementMessage: localize(1569, 'Folded'),
|
|
107
107
|
settingsKey: 'accessibility.signals.lineHasFoldedArea',
|
|
108
108
|
}); }
|
|
109
109
|
static { this.break = AccessibilitySignal.register({
|
|
110
|
-
name: localize(
|
|
110
|
+
name: localize(1570, 'Breakpoint on Line'),
|
|
111
111
|
sound: Sound.break,
|
|
112
112
|
legacySoundSettingsKey: 'audioCues.lineHasBreakpoint',
|
|
113
113
|
legacyAnnouncementSettingsKey: 'accessibility.alert.breakpoint',
|
|
114
|
-
announcementMessage: localize(
|
|
114
|
+
announcementMessage: localize(1571, 'Breakpoint'),
|
|
115
115
|
settingsKey: 'accessibility.signals.lineHasBreakpoint',
|
|
116
116
|
}); }
|
|
117
117
|
static { this.inlineSuggestion = AccessibilitySignal.register({
|
|
118
|
-
name: localize(
|
|
118
|
+
name: localize(1572, 'Inline Suggestion on Line'),
|
|
119
119
|
sound: Sound.quickFixes,
|
|
120
120
|
legacySoundSettingsKey: 'audioCues.lineHasInlineSuggestion',
|
|
121
121
|
settingsKey: 'accessibility.signals.lineHasInlineSuggestion',
|
|
122
122
|
}); }
|
|
123
123
|
static { this.nextEditSuggestion = AccessibilitySignal.register({
|
|
124
|
-
name: localize(
|
|
124
|
+
name: localize(1573, 'Next Edit Suggestion on Line'),
|
|
125
125
|
sound: Sound.nextEditSuggestion,
|
|
126
126
|
legacySoundSettingsKey: 'audioCues.nextEditSuggestion',
|
|
127
127
|
settingsKey: 'accessibility.signals.nextEditSuggestion',
|
|
128
|
-
announcementMessage: localize(
|
|
128
|
+
announcementMessage: localize(1574, 'Next Edit Suggestion'),
|
|
129
129
|
}); }
|
|
130
130
|
static { this.terminalQuickFix = AccessibilitySignal.register({
|
|
131
|
-
name: localize(
|
|
131
|
+
name: localize(1575, 'Terminal Quick Fix'),
|
|
132
132
|
sound: Sound.quickFixes,
|
|
133
133
|
legacySoundSettingsKey: 'audioCues.terminalQuickFix',
|
|
134
134
|
legacyAnnouncementSettingsKey: 'accessibility.alert.terminalQuickFix',
|
|
135
|
-
announcementMessage: localize(
|
|
135
|
+
announcementMessage: localize(1576, 'Quick Fix'),
|
|
136
136
|
settingsKey: 'accessibility.signals.terminalQuickFix',
|
|
137
137
|
}); }
|
|
138
138
|
static { this.onDebugBreak = AccessibilitySignal.register({
|
|
139
|
-
name: localize(
|
|
139
|
+
name: localize(1577, 'Debugger Stopped on Breakpoint'),
|
|
140
140
|
sound: Sound.break,
|
|
141
141
|
legacySoundSettingsKey: 'audioCues.onDebugBreak',
|
|
142
142
|
legacyAnnouncementSettingsKey: 'accessibility.alert.onDebugBreak',
|
|
143
|
-
announcementMessage: localize(
|
|
143
|
+
announcementMessage: localize(1578, 'Breakpoint'),
|
|
144
144
|
settingsKey: 'accessibility.signals.onDebugBreak',
|
|
145
145
|
}); }
|
|
146
146
|
static { this.noInlayHints = AccessibilitySignal.register({
|
|
147
|
-
name: localize(
|
|
147
|
+
name: localize(1579, 'No Inlay Hints on Line'),
|
|
148
148
|
sound: Sound.error,
|
|
149
149
|
legacySoundSettingsKey: 'audioCues.noInlayHints',
|
|
150
150
|
legacyAnnouncementSettingsKey: 'accessibility.alert.noInlayHints',
|
|
151
|
-
announcementMessage: localize(
|
|
151
|
+
announcementMessage: localize(1580, 'No Inlay Hints'),
|
|
152
152
|
settingsKey: 'accessibility.signals.noInlayHints',
|
|
153
153
|
}); }
|
|
154
154
|
static { this.taskCompleted = AccessibilitySignal.register({
|
|
155
|
-
name: localize(
|
|
155
|
+
name: localize(1581, 'Task Completed'),
|
|
156
156
|
sound: Sound.taskCompleted,
|
|
157
157
|
legacySoundSettingsKey: 'audioCues.taskCompleted',
|
|
158
158
|
legacyAnnouncementSettingsKey: 'accessibility.alert.taskCompleted',
|
|
159
|
-
announcementMessage: localize(
|
|
159
|
+
announcementMessage: localize(1582, 'Task Completed'),
|
|
160
160
|
settingsKey: 'accessibility.signals.taskCompleted',
|
|
161
161
|
}); }
|
|
162
162
|
static { this.taskFailed = AccessibilitySignal.register({
|
|
163
|
-
name: localize(
|
|
163
|
+
name: localize(1583, 'Task Failed'),
|
|
164
164
|
sound: Sound.taskFailed,
|
|
165
165
|
legacySoundSettingsKey: 'audioCues.taskFailed',
|
|
166
166
|
legacyAnnouncementSettingsKey: 'accessibility.alert.taskFailed',
|
|
167
|
-
announcementMessage: localize(
|
|
167
|
+
announcementMessage: localize(1584, 'Task Failed'),
|
|
168
168
|
settingsKey: 'accessibility.signals.taskFailed',
|
|
169
169
|
}); }
|
|
170
170
|
static { this.terminalCommandFailed = AccessibilitySignal.register({
|
|
171
|
-
name: localize(
|
|
171
|
+
name: localize(1585, 'Terminal Command Failed'),
|
|
172
172
|
sound: Sound.error,
|
|
173
173
|
legacySoundSettingsKey: 'audioCues.terminalCommandFailed',
|
|
174
174
|
legacyAnnouncementSettingsKey: 'accessibility.alert.terminalCommandFailed',
|
|
175
|
-
announcementMessage: localize(
|
|
175
|
+
announcementMessage: localize(1586, 'Command Failed'),
|
|
176
176
|
settingsKey: 'accessibility.signals.terminalCommandFailed',
|
|
177
177
|
}); }
|
|
178
178
|
static { this.terminalCommandSucceeded = AccessibilitySignal.register({
|
|
179
|
-
name: localize(
|
|
179
|
+
name: localize(1587, 'Terminal Command Succeeded'),
|
|
180
180
|
sound: Sound.terminalCommandSucceeded,
|
|
181
|
-
announcementMessage: localize(
|
|
181
|
+
announcementMessage: localize(1588, 'Command Succeeded'),
|
|
182
182
|
settingsKey: 'accessibility.signals.terminalCommandSucceeded',
|
|
183
183
|
}); }
|
|
184
184
|
static { this.terminalBell = AccessibilitySignal.register({
|
|
185
|
-
name: localize(
|
|
185
|
+
name: localize(1589, 'Terminal Bell'),
|
|
186
186
|
sound: Sound.terminalBell,
|
|
187
187
|
legacySoundSettingsKey: 'audioCues.terminalBell',
|
|
188
188
|
legacyAnnouncementSettingsKey: 'accessibility.alert.terminalBell',
|
|
189
|
-
announcementMessage: localize(
|
|
189
|
+
announcementMessage: localize(1590, 'Terminal Bell'),
|
|
190
190
|
settingsKey: 'accessibility.signals.terminalBell',
|
|
191
191
|
}); }
|
|
192
192
|
static { this.notebookCellCompleted = AccessibilitySignal.register({
|
|
193
|
-
name: localize(
|
|
193
|
+
name: localize(1591, 'Notebook Cell Completed'),
|
|
194
194
|
sound: Sound.taskCompleted,
|
|
195
195
|
legacySoundSettingsKey: 'audioCues.notebookCellCompleted',
|
|
196
196
|
legacyAnnouncementSettingsKey: 'accessibility.alert.notebookCellCompleted',
|
|
197
|
-
announcementMessage: localize(
|
|
197
|
+
announcementMessage: localize(1592, 'Notebook Cell Completed'),
|
|
198
198
|
settingsKey: 'accessibility.signals.notebookCellCompleted',
|
|
199
199
|
}); }
|
|
200
200
|
static { this.notebookCellFailed = AccessibilitySignal.register({
|
|
201
|
-
name: localize(
|
|
201
|
+
name: localize(1593, 'Notebook Cell Failed'),
|
|
202
202
|
sound: Sound.taskFailed,
|
|
203
203
|
legacySoundSettingsKey: 'audioCues.notebookCellFailed',
|
|
204
204
|
legacyAnnouncementSettingsKey: 'accessibility.alert.notebookCellFailed',
|
|
205
|
-
announcementMessage: localize(
|
|
205
|
+
announcementMessage: localize(1594, 'Notebook Cell Failed'),
|
|
206
206
|
settingsKey: 'accessibility.signals.notebookCellFailed',
|
|
207
207
|
}); }
|
|
208
208
|
static { this.diffLineInserted = AccessibilitySignal.register({
|
|
209
|
-
name: localize(
|
|
209
|
+
name: localize(1595, 'Diff Line Inserted'),
|
|
210
210
|
sound: Sound.diffLineInserted,
|
|
211
211
|
legacySoundSettingsKey: 'audioCues.diffLineInserted',
|
|
212
212
|
settingsKey: 'accessibility.signals.diffLineInserted',
|
|
213
213
|
}); }
|
|
214
214
|
static { this.diffLineDeleted = AccessibilitySignal.register({
|
|
215
|
-
name: localize(
|
|
215
|
+
name: localize(1596, 'Diff Line Deleted'),
|
|
216
216
|
sound: Sound.diffLineDeleted,
|
|
217
217
|
legacySoundSettingsKey: 'audioCues.diffLineDeleted',
|
|
218
218
|
settingsKey: 'accessibility.signals.diffLineDeleted',
|
|
219
219
|
}); }
|
|
220
220
|
static { this.diffLineModified = AccessibilitySignal.register({
|
|
221
|
-
name: localize(
|
|
221
|
+
name: localize(1597, 'Diff Line Modified'),
|
|
222
222
|
sound: Sound.diffLineModified,
|
|
223
223
|
legacySoundSettingsKey: 'audioCues.diffLineModified',
|
|
224
224
|
settingsKey: 'accessibility.signals.diffLineModified',
|
|
225
225
|
}); }
|
|
226
226
|
static { this.chatEditModifiedFile = AccessibilitySignal.register({
|
|
227
|
-
name: localize(
|
|
227
|
+
name: localize(1598, 'Chat Edit Modified File'),
|
|
228
228
|
sound: Sound.chatEditModifiedFile,
|
|
229
|
-
announcementMessage: localize(
|
|
229
|
+
announcementMessage: localize(1599, 'File Modified from Chat Edits'),
|
|
230
230
|
settingsKey: 'accessibility.signals.chatEditModifiedFile',
|
|
231
231
|
}); }
|
|
232
232
|
static { this.chatRequestSent = AccessibilitySignal.register({
|
|
233
|
-
name: localize(
|
|
233
|
+
name: localize(1600, 'Chat Request Sent'),
|
|
234
234
|
sound: Sound.requestSent,
|
|
235
235
|
legacySoundSettingsKey: 'audioCues.chatRequestSent',
|
|
236
236
|
legacyAnnouncementSettingsKey: 'accessibility.alert.chatRequestSent',
|
|
237
|
-
announcementMessage: localize(
|
|
237
|
+
announcementMessage: localize(1601, 'Chat Request Sent'),
|
|
238
238
|
settingsKey: 'accessibility.signals.chatRequestSent',
|
|
239
239
|
}); }
|
|
240
240
|
static { this.chatResponseReceived = AccessibilitySignal.register({
|
|
241
|
-
name: localize(
|
|
241
|
+
name: localize(1602, 'Chat Response Received'),
|
|
242
242
|
legacySoundSettingsKey: 'audioCues.chatResponseReceived',
|
|
243
243
|
sound: {
|
|
244
244
|
randomOneOf: [
|
|
@@ -251,79 +251,79 @@ export class AccessibilitySignal {
|
|
|
251
251
|
settingsKey: 'accessibility.signals.chatResponseReceived'
|
|
252
252
|
}); }
|
|
253
253
|
static { this.codeActionTriggered = AccessibilitySignal.register({
|
|
254
|
-
name: localize(
|
|
254
|
+
name: localize(1603, 'Code Action Request Triggered'),
|
|
255
255
|
sound: Sound.codeActionTriggered,
|
|
256
256
|
legacySoundSettingsKey: 'audioCues.codeActionRequestTriggered',
|
|
257
257
|
legacyAnnouncementSettingsKey: 'accessibility.alert.codeActionRequestTriggered',
|
|
258
|
-
announcementMessage: localize(
|
|
258
|
+
announcementMessage: localize(1604, 'Code Action Request Triggered'),
|
|
259
259
|
settingsKey: 'accessibility.signals.codeActionTriggered',
|
|
260
260
|
}); }
|
|
261
261
|
static { this.codeActionApplied = AccessibilitySignal.register({
|
|
262
|
-
name: localize(
|
|
262
|
+
name: localize(1605, 'Code Action Applied'),
|
|
263
263
|
legacySoundSettingsKey: 'audioCues.codeActionApplied',
|
|
264
264
|
sound: Sound.codeActionApplied,
|
|
265
265
|
settingsKey: 'accessibility.signals.codeActionApplied'
|
|
266
266
|
}); }
|
|
267
267
|
static { this.progress = AccessibilitySignal.register({
|
|
268
|
-
name: localize(
|
|
268
|
+
name: localize(1606, 'Progress'),
|
|
269
269
|
sound: Sound.progress,
|
|
270
270
|
legacySoundSettingsKey: 'audioCues.chatResponsePending',
|
|
271
271
|
legacyAnnouncementSettingsKey: 'accessibility.alert.progress',
|
|
272
|
-
announcementMessage: localize(
|
|
272
|
+
announcementMessage: localize(1607, 'Progress'),
|
|
273
273
|
settingsKey: 'accessibility.signals.progress'
|
|
274
274
|
}); }
|
|
275
275
|
static { this.clear = AccessibilitySignal.register({
|
|
276
|
-
name: localize(
|
|
276
|
+
name: localize(1608, 'Clear'),
|
|
277
277
|
sound: Sound.clear,
|
|
278
278
|
legacySoundSettingsKey: 'audioCues.clear',
|
|
279
279
|
legacyAnnouncementSettingsKey: 'accessibility.alert.clear',
|
|
280
|
-
announcementMessage: localize(
|
|
280
|
+
announcementMessage: localize(1609, 'Clear'),
|
|
281
281
|
settingsKey: 'accessibility.signals.clear'
|
|
282
282
|
}); }
|
|
283
283
|
static { this.save = AccessibilitySignal.register({
|
|
284
|
-
name: localize(
|
|
284
|
+
name: localize(1610, 'Save'),
|
|
285
285
|
sound: Sound.save,
|
|
286
286
|
legacySoundSettingsKey: 'audioCues.save',
|
|
287
287
|
legacyAnnouncementSettingsKey: 'accessibility.alert.save',
|
|
288
|
-
announcementMessage: localize(
|
|
288
|
+
announcementMessage: localize(1611, 'Save'),
|
|
289
289
|
settingsKey: 'accessibility.signals.save'
|
|
290
290
|
}); }
|
|
291
291
|
static { this.format = AccessibilitySignal.register({
|
|
292
|
-
name: localize(
|
|
292
|
+
name: localize(1612, 'Format'),
|
|
293
293
|
sound: Sound.format,
|
|
294
294
|
legacySoundSettingsKey: 'audioCues.format',
|
|
295
295
|
legacyAnnouncementSettingsKey: 'accessibility.alert.format',
|
|
296
|
-
announcementMessage: localize(
|
|
296
|
+
announcementMessage: localize(1613, 'Format'),
|
|
297
297
|
settingsKey: 'accessibility.signals.format'
|
|
298
298
|
}); }
|
|
299
299
|
static { this.voiceRecordingStarted = AccessibilitySignal.register({
|
|
300
|
-
name: localize(
|
|
300
|
+
name: localize(1614, 'Voice Recording Started'),
|
|
301
301
|
sound: Sound.voiceRecordingStarted,
|
|
302
302
|
legacySoundSettingsKey: 'audioCues.voiceRecordingStarted',
|
|
303
303
|
settingsKey: 'accessibility.signals.voiceRecordingStarted'
|
|
304
304
|
}); }
|
|
305
305
|
static { this.voiceRecordingStopped = AccessibilitySignal.register({
|
|
306
|
-
name: localize(
|
|
306
|
+
name: localize(1615, 'Voice Recording Stopped'),
|
|
307
307
|
sound: Sound.voiceRecordingStopped,
|
|
308
308
|
legacySoundSettingsKey: 'audioCues.voiceRecordingStopped',
|
|
309
309
|
settingsKey: 'accessibility.signals.voiceRecordingStopped'
|
|
310
310
|
}); }
|
|
311
311
|
static { this.editsKept = AccessibilitySignal.register({
|
|
312
|
-
name: localize(
|
|
312
|
+
name: localize(1616, 'Edits Kept'),
|
|
313
313
|
sound: Sound.editsKept,
|
|
314
|
-
announcementMessage: localize(
|
|
314
|
+
announcementMessage: localize(1617, 'Edits Kept'),
|
|
315
315
|
settingsKey: 'accessibility.signals.editsKept',
|
|
316
316
|
}); }
|
|
317
317
|
static { this.editsUndone = AccessibilitySignal.register({
|
|
318
|
-
name: localize(
|
|
318
|
+
name: localize(1618, 'Undo Edits'),
|
|
319
319
|
sound: Sound.editsUndone,
|
|
320
|
-
announcementMessage: localize(
|
|
320
|
+
announcementMessage: localize(1619, 'Edits Undone'),
|
|
321
321
|
settingsKey: 'accessibility.signals.editsUndone',
|
|
322
322
|
}); }
|
|
323
323
|
static { this.chatUserActionRequired = AccessibilitySignal.register({
|
|
324
|
-
name: localize(
|
|
324
|
+
name: localize(1620, 'Chat User Action Required'),
|
|
325
325
|
sound: Sound.chatUserActionRequired,
|
|
326
|
-
announcementMessage: localize(
|
|
326
|
+
announcementMessage: localize(1621, 'Chat User Action Required'),
|
|
327
327
|
settingsKey: 'accessibility.signals.chatUserActionRequired',
|
|
328
328
|
managesOwnEnablement: true
|
|
329
329
|
}); }
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { localize2 } from '../../../nls.js';
|
|
6
6
|
export const Categories = Object.freeze({
|
|
7
|
-
View: localize2(
|
|
8
|
-
Help: localize2(
|
|
9
|
-
Test: localize2(
|
|
10
|
-
File: localize2(
|
|
11
|
-
Preferences: localize2(
|
|
12
|
-
Developer: localize2(
|
|
7
|
+
View: localize2(1622, 'View'),
|
|
8
|
+
Help: localize2(1623, 'Help'),
|
|
9
|
+
Test: localize2(1624, 'Test'),
|
|
10
|
+
File: localize2(1625, 'File'),
|
|
11
|
+
Preferences: localize2(1626, 'Preferences'),
|
|
12
|
+
Developer: localize2(1627, "Developer"),
|
|
13
13
|
});
|
|
14
14
|
//# sourceMappingURL=actionCommonCategories.js.map
|
|
@@ -119,10 +119,10 @@ let ActionItemRenderer = class ActionItemRenderer {
|
|
|
119
119
|
}
|
|
120
120
|
else if (actionTitle && previewTitle) {
|
|
121
121
|
if (this._supportsPreview && element.canPreview) {
|
|
122
|
-
data.container.title = localize(
|
|
122
|
+
data.container.title = localize(1637, "{0} to Apply, {1} to Preview", actionTitle, previewTitle);
|
|
123
123
|
}
|
|
124
124
|
else {
|
|
125
|
-
data.container.title = localize(
|
|
125
|
+
data.container.title = localize(1638, "{0} to Apply", actionTitle);
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
else {
|
|
@@ -191,13 +191,13 @@ let ActionList = class ActionList extends Disposable {
|
|
|
191
191
|
label = label + ', ' + stripNewlines(element.description);
|
|
192
192
|
}
|
|
193
193
|
if (element.disabled) {
|
|
194
|
-
label = localize(
|
|
194
|
+
label = localize(1639, "{0}, Disabled Reason: {1}", label, element.disabled);
|
|
195
195
|
}
|
|
196
196
|
return label;
|
|
197
197
|
}
|
|
198
198
|
return null;
|
|
199
199
|
},
|
|
200
|
-
getWidgetAriaLabel: () => localize(
|
|
200
|
+
getWidgetAriaLabel: () => localize(1640, "Action Widget"),
|
|
201
201
|
getRole: (e) => {
|
|
202
202
|
switch (e.kind) {
|
|
203
203
|
case "action" /* ActionListItemKind.Action */:
|