mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
cleanup: threading annotate (part of IJPL-210489 rework auto-imports hints to show in more places)
GitOrigin-RevId: 6ba2983dad5dea331608ea02b26b8a5a867643a2
This commit is contained in:
committed by
intellij-monorepo-bot
parent
85c1fc3031
commit
164a90ccda
@@ -13,6 +13,7 @@ import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.util.PropertyMemberType;
|
||||
import com.intellij.util.concurrency.annotations.RequiresBackgroundThread;
|
||||
import org.jetbrains.annotations.*;
|
||||
|
||||
import java.util.*;
|
||||
@@ -280,6 +281,7 @@ public abstract class QuickFixFactory {
|
||||
|
||||
public abstract @NotNull IntentionAction createCreateAnnotationMethodFromUsageFix(@NotNull PsiNameValuePair pair);
|
||||
|
||||
@RequiresBackgroundThread
|
||||
public abstract @NotNull ModCommandAction createOptimizeImportsFix(boolean fixOnTheFly, @NotNull PsiFile file);
|
||||
|
||||
public abstract @NotNull IntentionAction createSafeDeleteUnusedParameterInHierarchyFix(@NotNull PsiParameter parameter, boolean excludingHierarchy);
|
||||
|
||||
+2
@@ -54,6 +54,7 @@ import com.intellij.refactoring.JavaRefactoringActionHandlerFactory;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
import com.intellij.util.ThreeState;
|
||||
import com.intellij.util.concurrency.ThreadingAssertions;
|
||||
import com.intellij.util.concurrency.annotations.RequiresBackgroundThread;
|
||||
import com.siyeh.ig.controlflow.UnnecessaryDefaultInspection;
|
||||
import com.siyeh.ig.fixes.*;
|
||||
import com.siyeh.ipp.imports.ReplaceOnDemandImportIntention;
|
||||
@@ -590,6 +591,7 @@ public final class QuickFixFactoryImpl extends QuickFixFactory {
|
||||
}
|
||||
|
||||
@Override
|
||||
@RequiresBackgroundThread
|
||||
public @NotNull ModCommandAction createOptimizeImportsFix(final boolean fixOnTheFly, @NotNull PsiFile file) {
|
||||
ApplicationManager.getApplication().assertIsNonDispatchThread();
|
||||
VirtualFile virtualFile = file.getVirtualFile();
|
||||
|
||||
@@ -34,15 +34,7 @@ public interface HintAction extends IntentionAction {
|
||||
*/
|
||||
boolean showHint(@NotNull Editor editor);
|
||||
|
||||
/**
|
||||
* Perform this action if it doesn't require any user interaction and doesn't show any popups. Example: insert a new unambiguous import
|
||||
* for the reference that this intention or quick fix was created for.
|
||||
* This method is invoked on UI thread after the highlighting is finished, without a write action.
|
||||
* Before the invocation, {@link #isAvailable(Project, Editor, PsiFile)} is checked to be {@code true}.
|
||||
* @return whether the action was performed and anything has changed in document/PSI/project model
|
||||
* @deprecated Use {@link com.intellij.codeInsight.daemon.ReferenceImporter} instead, which does a better job to avoid freezes
|
||||
*/
|
||||
@Deprecated
|
||||
@Deprecated(forRemoval = true)
|
||||
default boolean fixSilently(@NotNull Editor editor) {
|
||||
return false;
|
||||
}
|
||||
|
||||
+2
@@ -4,6 +4,7 @@ package com.intellij.codeHighlighting;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.PossiblyDumbAware;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.util.concurrency.annotations.RequiresBackgroundThread;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -20,5 +21,6 @@ public interface TextEditorHighlightingPassFactory extends PossiblyDumbAware {
|
||||
* For example, read action should be acquired before accessing PSI.
|
||||
*/
|
||||
@Nullable
|
||||
@RequiresBackgroundThread
|
||||
TextEditorHighlightingPass createHighlightingPass(@NotNull PsiFile psiFile, @NotNull Editor editor);
|
||||
}
|
||||
|
||||
+2
@@ -11,6 +11,7 @@ import com.intellij.psi.PsiCodeFragment;
|
||||
import com.intellij.psi.PsiFileSystemItem;
|
||||
import com.intellij.util.ThreeState;
|
||||
import com.intellij.util.concurrency.ThreadingAssertions;
|
||||
import com.intellij.util.concurrency.annotations.RequiresEdt;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -67,6 +68,7 @@ final class CanISilentlyChange {
|
||||
}
|
||||
}
|
||||
|
||||
@RequiresEdt
|
||||
@ApiStatus.Internal
|
||||
static @NotNull Result thisFile(@NotNull PsiFileSystemItem file) {
|
||||
ThreadingAssertions.assertEventDispatchThread();
|
||||
|
||||
+3
-2
@@ -69,7 +69,7 @@ public abstract class DaemonCodeAnalyzerEx extends DaemonCodeAnalyzer {
|
||||
HighlightInfo info = HighlightInfo.fromRangeHighlighter(marker);
|
||||
if (info == null) return true;
|
||||
return minSeverity != null && severityRegistrar.compare(info.getSeverity(), minSeverity) < 0
|
||||
|| info.getHighlighter() == null
|
||||
|| info.getHighlighter() != marker
|
||||
|| !CodeInsightContextHighlightingUtil.acceptRangeHighlighter(context, marker)
|
||||
|| processor.process(info);
|
||||
});
|
||||
@@ -100,7 +100,7 @@ public abstract class DaemonCodeAnalyzerEx extends DaemonCodeAnalyzer {
|
||||
return model.processRangeHighlightersOutside(startOffset, endOffset, marker -> {
|
||||
HighlightInfo info = HighlightInfo.fromRangeHighlighter(marker);
|
||||
return info == null ||
|
||||
info.getHighlighter() == null ||
|
||||
info.getHighlighter() != marker ||
|
||||
!CodeInsightContextHighlightingUtil.acceptRangeHighlighter(context, marker) ||
|
||||
processor.process(info);
|
||||
});
|
||||
@@ -109,6 +109,7 @@ public abstract class DaemonCodeAnalyzerEx extends DaemonCodeAnalyzer {
|
||||
public abstract boolean hasVisibleLightBulbOrPopup();
|
||||
|
||||
@ApiStatus.Internal
|
||||
@RequiresBackgroundThread
|
||||
public abstract @NotNull List<HighlightInfo> runMainPasses(@NotNull PsiFile psiFile,
|
||||
@NotNull Document document,
|
||||
@NotNull ProgressIndicator progress);
|
||||
|
||||
+2
@@ -313,6 +313,7 @@ public final class HighlightingSessionImpl implements HighlightingSession {
|
||||
|
||||
// compute additional stuff in background thread
|
||||
@ApiStatus.Internal
|
||||
@RequiresBackgroundThread
|
||||
public void additionalSetupFromBackground(@NotNull PsiFile psiFile) {
|
||||
ApplicationManager.getApplication().assertIsNonDispatchThread();
|
||||
ReadAction.run(() -> {
|
||||
@@ -394,6 +395,7 @@ public final class HighlightingSessionImpl implements HighlightingSession {
|
||||
}
|
||||
|
||||
@ApiStatus.Internal
|
||||
@RequiresEdt
|
||||
public static boolean canChangeFileSilently(@NotNull PsiFileSystemItem file,
|
||||
boolean isInContent,
|
||||
@NotNull ThreeState extensionsAllowToChangeFileSilently) {
|
||||
|
||||
+3
@@ -8,6 +8,7 @@ import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.util.concurrency.annotations.RequiresBackgroundThread;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -19,9 +20,11 @@ public abstract class TextEditorHighlightingPassRegistrarEx extends TextEditorHi
|
||||
return (TextEditorHighlightingPassRegistrarEx)getInstance(project);
|
||||
}
|
||||
|
||||
@RequiresBackgroundThread
|
||||
public abstract @NotNull List<@NotNull TextEditorHighlightingPass> instantiatePasses(@NotNull PsiFile psiFile,
|
||||
@NotNull Editor editor,
|
||||
int @NotNull [] passesToIgnore);
|
||||
@RequiresBackgroundThread
|
||||
public abstract @NotNull List<@NotNull TextEditorHighlightingPass> instantiateMainPasses(@NotNull PsiFile psiFile,
|
||||
@NotNull Document document,
|
||||
@NotNull HighlightInfoProcessor highlightInfoProcessor);
|
||||
|
||||
+3
@@ -27,6 +27,7 @@ import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.util.PsiUtilCore;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.ArrayUtilRt;
|
||||
import com.intellij.util.concurrency.annotations.RequiresBackgroundThread;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||
@@ -172,6 +173,7 @@ public final class TextEditorHighlightingPassRegistrarImpl extends TextEditorHig
|
||||
}
|
||||
|
||||
@Override
|
||||
@RequiresBackgroundThread
|
||||
public @NotNull List<@NotNull TextEditorHighlightingPass> instantiatePasses(@NotNull PsiFile psiFile,
|
||||
@NotNull Editor editor,
|
||||
int @NotNull [] passesToIgnore) {
|
||||
@@ -250,6 +252,7 @@ public final class TextEditorHighlightingPassRegistrarImpl extends TextEditorHig
|
||||
}
|
||||
|
||||
@Override
|
||||
@RequiresBackgroundThread
|
||||
public @NotNull List<@NotNull TextEditorHighlightingPass> instantiateMainPasses(@NotNull PsiFile psiFile,
|
||||
@NotNull Document document,
|
||||
@NotNull HighlightInfoProcessor highlightInfoProcessor) {
|
||||
|
||||
@@ -79,6 +79,7 @@ import com.intellij.util.KeyedLazyInstance;
|
||||
import com.intellij.util.ThreeState;
|
||||
import com.intellij.util.concurrency.ThreadingAssertions;
|
||||
import com.intellij.util.concurrency.annotations.RequiresBackgroundThread;
|
||||
import com.intellij.util.concurrency.annotations.RequiresEdt;
|
||||
import com.intellij.util.concurrency.annotations.RequiresReadLock;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.io.storage.HeavyProcessLatch;
|
||||
@@ -529,7 +530,9 @@ public final class DaemonListeners implements Disposable {
|
||||
* - files under explicit write permission version control (such as Perforce, which asks "do you want to edit this file"),
|
||||
* - files in the middle of cut-n-paste operation.
|
||||
*/
|
||||
public static boolean canChangeFileSilently(@NotNull PsiFileSystemItem file, boolean isInContent,
|
||||
@RequiresEdt
|
||||
public static boolean canChangeFileSilently(@NotNull PsiFileSystemItem file,
|
||||
boolean isInContent,
|
||||
@NotNull ThreeState extensionsAllowToChangeFileSilently) {
|
||||
ThreadingAssertions.assertEventDispatchThread();
|
||||
Project project = file.getProject();
|
||||
|
||||
+2
@@ -28,6 +28,7 @@ import com.intellij.psi.PsiWhiteSpace
|
||||
import com.intellij.psi.util.PsiEditorUtil
|
||||
import com.intellij.util.DocumentUtil
|
||||
import com.intellij.util.ThreeState
|
||||
import com.intellij.util.concurrency.annotations.RequiresBackgroundThread
|
||||
import org.jetbrains.kotlin.idea.base.codeInsight.KotlinOptimizeImportsFacility
|
||||
import org.jetbrains.kotlin.idea.base.projectStructure.RootKindFilter
|
||||
import org.jetbrains.kotlin.idea.base.projectStructure.matches
|
||||
@@ -77,6 +78,7 @@ class KotlinUnusedImportInspection : AbstractKotlinInspection() {
|
||||
return KotlinOptimizeImportsFacility.getInstance().analyzeImports(file)
|
||||
}
|
||||
|
||||
@RequiresBackgroundThread
|
||||
private fun scheduleOptimizeImportsOnTheFly(file: KtFile, data: KotlinOptimizeImportsFacility.ImportData) {
|
||||
if (!KotlinCodeInsightWorkspaceSettings.getInstance(file.project).optimizeImportsOnTheFly) return
|
||||
val optimizedImports = KotlinOptimizeImportsFacility.getInstance().prepareOptimizedImports(file, data) ?: return // return if already optimized
|
||||
|
||||
Reference in New Issue
Block a user