public CategoryEditorFormatMapUpdater(IThemeService themeService, ITextEditorFontSettings textEditorFontSettings, IEditorFormatDefinitionService editorFormatDefinitionService, IEditorFormatMap editorFormatMap)
        {
            if (themeService == null)
            {
                throw new ArgumentNullException(nameof(themeService));
            }
            if (textEditorFontSettings == null)
            {
                throw new ArgumentNullException(nameof(textEditorFontSettings));
            }
            if (editorFormatDefinitionService == null)
            {
                throw new ArgumentNullException(nameof(editorFormatDefinitionService));
            }
            if (editorFormatMap == null)
            {
                throw new ArgumentNullException(nameof(editorFormatMap));
            }
            this.themeService                  = themeService;
            this.textEditorFontSettings        = textEditorFontSettings;
            this.editorFormatDefinitionService = editorFormatDefinitionService;
            this.editorFormatMap               = editorFormatMap;

            themeService.ThemeChangedHighPriority  += ThemeService_ThemeChangedHighPriority;
            textEditorFontSettings.SettingsChanged += TextEditorFontSettings_SettingsChanged;
            InitializeAll();
        }
        TextEditorFontSettingsService(IThemeManager themeManager, ITextEditorSettings textEditorSettings, [ImportMany] IEnumerable <Lazy <TextEditorFormatDefinition, ITextEditorFormatDefinitionMetadata> > textEditorFormatDefinitions)
        {
            themeManager.ThemeChangedHighPriority += ThemeManager_ThemeChangedHighPriority;
            var provider = new TextEditorFontSettingsDictionaryProvider(textEditorSettings, textEditorFormatDefinitions);

            this.toTextEditorFontSettings      = provider.Result;
            this.defaultTextEditorFontSettings = provider.DefaultSettings;
        }