From f59aef650a8d3661160092ed94e9d0f699ed8a5c Mon Sep 17 00:00:00 2001 From: Tennie Henry <55341525+HenryTSZ@users.noreply.github.com> Date: Mon, 1 Jul 2024 06:34:16 +0800 Subject: [PATCH] Fixes #9006 `easymotionDimColor` has no effect (#9059) --- src/actions/plugins/easymotion/easymotion.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/actions/plugins/easymotion/easymotion.ts b/src/actions/plugins/easymotion/easymotion.ts index bb1d40b8c..6f55f0a78 100644 --- a/src/actions/plugins/easymotion/easymotion.ts +++ b/src/actions/plugins/easymotion/easymotion.ts @@ -23,9 +23,16 @@ export class EasyMotion implements IEasyMotion { private visibleMarkers: Marker[]; // Array of currently showing markers private decorations: vscode.DecorationOptions[][]; - private static readonly fade = vscode.window.createTextEditorDecorationType({ - color: configuration.easymotionDimColor, - }); + private static fade: vscode.TextEditorDecorationType | null = null; + private static getFadeDecorationType(): vscode.TextEditorDecorationType { + if (this.fade === null) { + this.fade = vscode.window.createTextEditorDecorationType({ + color: configuration.easymotionDimColor, + }); + } + return this.fade; + } + private static readonly hide = vscode.window.createTextEditorDecorationType({ color: 'transparent', }); @@ -79,7 +86,7 @@ export class EasyMotion implements IEasyMotion { editor.setDecorations(EasyMotion.getDecorationType(i), []); } - editor.setDecorations(EasyMotion.fade, []); + editor.setDecorations(EasyMotion.getFadeDecorationType(), []); editor.setDecorations(EasyMotion.hide, []); } @@ -421,7 +428,7 @@ export class EasyMotion implements IEasyMotion { editor.setDecorations(EasyMotion.hide, hiddenChars); if (configuration.easymotionDimBackground) { - editor.setDecorations(EasyMotion.fade, dimmingZones); + editor.setDecorations(EasyMotion.getFadeDecorationType(), dimmingZones); } } }