From d8c24d910e82402dca0721be93669e9152432b1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yann=20C=C3=A9bron?= Date: Thu, 10 Oct 2024 10:46:23 +0200 Subject: [PATCH] [devkit] Themes code insight is fully available in dumb mode GitOrigin-RevId: aa1b421e8347199d9848d1219130261985027994 --- .../devkit/intellij.devkit.themes/src/ThemeAnnotator.java | 5 +++-- .../intellij.devkit.themes/src/ThemeColorAnnotator.java | 7 ++++--- .../src/ThemeJsonCompletionContributor.java | 5 +++-- .../src/ThemeJsonSchemaProviderFactory.java | 5 +++-- .../src/metadata/ThemeMetadataJsonSchemaProviderFactory.kt | 5 +++-- 5 files changed, 16 insertions(+), 11 deletions(-) diff --git a/plugins/devkit/intellij.devkit.themes/src/ThemeAnnotator.java b/plugins/devkit/intellij.devkit.themes/src/ThemeAnnotator.java index 4a6ff702b79e..564380d79cfe 100644 --- a/plugins/devkit/intellij.devkit.themes/src/ThemeAnnotator.java +++ b/plugins/devkit/intellij.devkit.themes/src/ThemeAnnotator.java @@ -1,4 +1,4 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.idea.devkit.themes; import com.intellij.codeInspection.ProblemHighlightType; @@ -8,11 +8,12 @@ import com.intellij.json.psi.JsonProperty; import com.intellij.lang.annotation.AnnotationHolder; import com.intellij.lang.annotation.Annotator; import com.intellij.lang.annotation.HighlightSeverity; +import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.util.Pair; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; -final class ThemeAnnotator implements Annotator { +final class ThemeAnnotator implements Annotator, DumbAware { @Override public void annotate(@NotNull PsiElement element, @NotNull AnnotationHolder holder) { diff --git a/plugins/devkit/intellij.devkit.themes/src/ThemeColorAnnotator.java b/plugins/devkit/intellij.devkit.themes/src/ThemeColorAnnotator.java index 41da5ef81100..0c370f6624be 100644 --- a/plugins/devkit/intellij.devkit.themes/src/ThemeColorAnnotator.java +++ b/plugins/devkit/intellij.devkit.themes/src/ThemeColorAnnotator.java @@ -1,4 +1,4 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.idea.devkit.themes; import com.intellij.codeInsight.daemon.LineMarkerSettings; @@ -13,6 +13,7 @@ import com.intellij.openapi.actionSystem.CommonDataKeys; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.markup.GutterIconRenderer; +import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.util.text.StringUtil; @@ -34,7 +35,7 @@ import java.util.List; import java.util.Objects; import java.util.regex.Pattern; -final class ThemeColorAnnotator implements Annotator { +final class ThemeColorAnnotator implements Annotator, DumbAware { private static final Pattern COLOR_HEX_PATTERN_RGB = Pattern.compile("^#([A-Fa-f0-9]{6})$"); private static final Pattern COLOR_HEX_PATTERN_RGBA = Pattern.compile("^#([A-Fa-f0-9]{8})$"); @@ -79,7 +80,7 @@ final class ThemeColorAnnotator implements Annotator { } - private static final class MyRenderer extends GutterIconRenderer { + private static final class MyRenderer extends GutterIconRenderer implements DumbAware { private static final int ICON_SIZE = 12; private final String myColorText; diff --git a/plugins/devkit/intellij.devkit.themes/src/ThemeJsonCompletionContributor.java b/plugins/devkit/intellij.devkit.themes/src/ThemeJsonCompletionContributor.java index a76d5e2c2894..503399b46be6 100644 --- a/plugins/devkit/intellij.devkit.themes/src/ThemeJsonCompletionContributor.java +++ b/plugins/devkit/intellij.devkit.themes/src/ThemeJsonCompletionContributor.java @@ -1,4 +1,4 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.idea.devkit.themes; import com.intellij.codeInsight.completion.*; @@ -9,6 +9,7 @@ import com.intellij.json.psi.JsonFile; import com.intellij.json.psi.JsonProperty; import com.intellij.json.psi.JsonReferenceExpression; import com.intellij.json.psi.JsonStringLiteral; +import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; @@ -27,7 +28,7 @@ import java.util.function.Predicate; /** * Completion in IntelliJ theme files. */ -final class ThemeJsonCompletionContributor extends CompletionContributor { +final class ThemeJsonCompletionContributor extends CompletionContributor implements DumbAware { @Override public void fillCompletionVariants(@NotNull CompletionParameters parameters, @NotNull CompletionResultSet result) { diff --git a/plugins/devkit/intellij.devkit.themes/src/ThemeJsonSchemaProviderFactory.java b/plugins/devkit/intellij.devkit.themes/src/ThemeJsonSchemaProviderFactory.java index afdb83db92b8..48afa92416c1 100644 --- a/plugins/devkit/intellij.devkit.themes/src/ThemeJsonSchemaProviderFactory.java +++ b/plugins/devkit/intellij.devkit.themes/src/ThemeJsonSchemaProviderFactory.java @@ -1,6 +1,7 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.idea.devkit.themes; +import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; import com.jetbrains.jsonSchema.extension.JsonSchemaFileProvider; @@ -13,7 +14,7 @@ import org.jetbrains.annotations.Nullable; import java.util.Collections; import java.util.List; -final class ThemeJsonSchemaProviderFactory implements JsonSchemaProviderFactory { +final class ThemeJsonSchemaProviderFactory implements JsonSchemaProviderFactory, DumbAware { private static final @NonNls String THEME_SCHEMA = "/schemes/theme.schema.json"; @NotNull diff --git a/plugins/devkit/intellij.devkit.themes/src/metadata/ThemeMetadataJsonSchemaProviderFactory.kt b/plugins/devkit/intellij.devkit.themes/src/metadata/ThemeMetadataJsonSchemaProviderFactory.kt index 95934944c56b..08eea9d96176 100644 --- a/plugins/devkit/intellij.devkit.themes/src/metadata/ThemeMetadataJsonSchemaProviderFactory.kt +++ b/plugins/devkit/intellij.devkit.themes/src/metadata/ThemeMetadataJsonSchemaProviderFactory.kt @@ -1,6 +1,7 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.idea.devkit.themes.metadata +import com.intellij.openapi.project.DumbAware import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.VfsUtil import com.intellij.openapi.vfs.VirtualFile @@ -14,7 +15,7 @@ import java.util.* @NonNls internal const val THEME_METADATA_JSON_EXTENSION = "themeMetadata.json" -internal class ThemeMetadataJsonSchemaProviderFactory : JsonSchemaProviderFactory { +internal class ThemeMetadataJsonSchemaProviderFactory : JsonSchemaProviderFactory, DumbAware { override fun getProviders(project: Project): MutableList { return Collections.singletonList(object : JsonSchemaFileProvider {