From f2536728d3ef013c7e4512d8901d9487930e1038 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Fri, 1 Mar 2019 23:15:02 +0100 Subject: [PATCH] Add monaco.editor.remeasureFonts (Microsoft/monaco-editor#392) --- src/vs/editor/browser/config/configuration.ts | 9 +++++++++ src/vs/editor/standalone/browser/standaloneEditor.ts | 9 +++++++++ src/vs/monaco.d.ts | 5 +++++ 3 files changed, 23 insertions(+) diff --git a/src/vs/editor/browser/config/configuration.ts b/src/vs/editor/browser/config/configuration.ts index f4a579bc8ce68..32e87b2a7949d 100644 --- a/src/vs/editor/browser/config/configuration.ts +++ b/src/vs/editor/browser/config/configuration.ts @@ -54,6 +54,10 @@ class CSSBasedConfigurationCache { } } +export function clearAllFontInfos(): void { + CSSBasedConfiguration.INSTANCE.clearCache(); +} + export function readFontInfo(bareFontInfo: BareFontInfo): FontInfo { return CSSBasedConfiguration.INSTANCE.readConfiguration(bareFontInfo); } @@ -122,6 +126,11 @@ class CSSBasedConfiguration extends Disposable { super.dispose(); } + public clearCache(): void { + this._cache = new CSSBasedConfigurationCache(); + this._onDidChange.fire(); + } + private _writeToCache(item: BareFontInfo, value: FontInfo): void { this._cache.put(item, value); diff --git a/src/vs/editor/standalone/browser/standaloneEditor.ts b/src/vs/editor/standalone/browser/standaloneEditor.ts index bd5660f51e470..09d4b4bce4692 100644 --- a/src/vs/editor/standalone/browser/standaloneEditor.ts +++ b/src/vs/editor/standalone/browser/standaloneEditor.ts @@ -37,6 +37,7 @@ import { IMarker, IMarkerData } from 'vs/platform/markers/common/markers'; import { INotificationService } from 'vs/platform/notification/common/notification'; import { IOpenerService } from 'vs/platform/opener/common/opener'; import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility'; +import { clearAllFontInfos } from 'vs/editor/browser/config/configuration'; type Omit = Pick>; @@ -311,6 +312,13 @@ export function setTheme(themeName: string): void { StaticServices.standaloneThemeService.get().setTheme(themeName); } +/** + * Clears all cached font measurements and triggers re-measurement. + */ +export function remeasureFonts(): void { + clearAllFontInfos(); +} + /** * @internal */ @@ -340,6 +348,7 @@ export function createMonacoEditorAPI(): typeof monaco.editor { tokenize: tokenize, defineTheme: defineTheme, setTheme: setTheme, + remeasureFonts: remeasureFonts, // enums ScrollbarVisibility: standaloneEnums.ScrollbarVisibility, diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index 8084ebff34670..cf24813d108b4 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -923,6 +923,11 @@ declare namespace monaco.editor { */ export function setTheme(themeName: string): void; + /** + * Clears all cached font measurements and triggers re-measurement. + */ + export function remeasureFonts(): void; + export type BuiltinTheme = 'vs' | 'vs-dark' | 'hc-black'; export interface IStandaloneThemeData {