mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
add knownIssue section for top issues
GitOrigin-RevId: eff01ab98fd019a2454c72e29082cbdf1af0f984
This commit is contained in:
committed by
intellij-monorepo-bot
parent
c79a2af5f3
commit
4bed7454d8
+27
-19
@@ -8,6 +8,7 @@ import com.intellij.codeInsight.daemon.impl.analysis.JavaModuleGraphUtil;
|
||||
import com.intellij.codeInsight.intention.preview.IntentionPreviewInfo;
|
||||
import com.intellij.ide.nls.NlsMessages;
|
||||
import com.intellij.java.JavaBundle;
|
||||
import com.intellij.openapi.application.AccessToken;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.command.CommandProcessor;
|
||||
@@ -28,6 +29,7 @@ import com.intellij.openapi.util.text.HtmlChunk;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.source.resolve.JavaResolveUtil;
|
||||
import com.intellij.psi.util.PointersKt;
|
||||
import com.intellij.util.SlowOperations;
|
||||
import com.intellij.util.concurrency.AppExecutorUtil;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.modules.CircularModuleDependenciesDetector;
|
||||
@@ -161,28 +163,34 @@ class AddModuleDependencyFix extends OrderEntryFix {
|
||||
ReadAction.nonBlocking(() -> CircularModuleDependenciesDetector.addingDependencyFormsCircularity(myCurrentModule, module))
|
||||
.expireWhen(() -> project.isDisposed() || module.isDisposed())
|
||||
.finishOnUiThread(ModalityState.nonModal(), circularModules -> {
|
||||
if (circularModules != null && !showCircularWarning(project, circularModules, module)) return;
|
||||
|
||||
CommandProcessor.getInstance().runUndoTransparentAction(() -> {
|
||||
JavaProjectModelModificationService.getInstance(project).addDependency(myCurrentModule, module, myScope, myExported);
|
||||
if (editor == null || myClasses.isEmpty()) return;
|
||||
|
||||
PsiClass[] targetClasses = myClasses.stream()
|
||||
.map(SmartPsiElementPointer::getElement)
|
||||
.filter(Objects::nonNull)
|
||||
.filter(c -> ModuleUtilCore.findModuleForPsiElement(c) == module)
|
||||
.toArray(PsiClass[]::new);
|
||||
if (targetClasses.length == 0) return;
|
||||
|
||||
PsiReference ref = restoreReference();
|
||||
if (ref == null) return;
|
||||
|
||||
DumbService.getInstance(project).completeJustSubmittedTasks();
|
||||
new AddImportAction(project, ref, editor, targetClasses).execute();
|
||||
});
|
||||
try (AccessToken ignore = SlowOperations.knownIssue("IDEA-359248")) {
|
||||
addDependencyOnModuleEDT(project, editor, module, circularModules);
|
||||
}
|
||||
}).submit(AppExecutorUtil.getAppExecutorService());
|
||||
}
|
||||
|
||||
private void addDependencyOnModuleEDT(@NotNull Project project, Editor editor, @NotNull Module module, Couple<Module> circularModules) {
|
||||
if (circularModules != null && !showCircularWarning(project, circularModules, module)) return;
|
||||
|
||||
CommandProcessor.getInstance().runUndoTransparentAction(() -> {
|
||||
JavaProjectModelModificationService.getInstance(project).addDependency(myCurrentModule, module, myScope, myExported);
|
||||
if (editor == null || myClasses.isEmpty()) return;
|
||||
|
||||
PsiClass[] targetClasses = myClasses.stream()
|
||||
.map(SmartPsiElementPointer::getElement)
|
||||
.filter(Objects::nonNull)
|
||||
.filter(c -> ModuleUtilCore.findModuleForPsiElement(c) == module)
|
||||
.toArray(PsiClass[]::new);
|
||||
if (targetClasses.length == 0) return;
|
||||
|
||||
PsiReference ref = restoreReference();
|
||||
if (ref == null) return;
|
||||
|
||||
DumbService.getInstance(project).completeJustSubmittedTasks();
|
||||
new AddImportAction(project, ref, editor, targetClasses).execute();
|
||||
});
|
||||
}
|
||||
|
||||
private boolean showCircularWarning(@NotNull Project project, @NotNull Couple<Module> circle, @NotNull Module classModule) {
|
||||
String message = QuickFixBundle.message("orderEntry.fix.circular.dependency.warning",
|
||||
getModuleName(classModule), getModuleName(circle.getFirst()),
|
||||
|
||||
+6
-1
@@ -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.
|
||||
package com.intellij.codeInsight.lookup;
|
||||
|
||||
import com.intellij.openapi.application.AccessToken;
|
||||
import com.intellij.openapi.util.Iconable;
|
||||
import com.intellij.openapi.util.ScalableIcon;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
@@ -10,6 +11,7 @@ import com.intellij.psi.util.PsiUtilCore;
|
||||
import com.intellij.ui.IconManager;
|
||||
import com.intellij.ui.PlatformIcons;
|
||||
import com.intellij.ui.SizedIcon;
|
||||
import com.intellij.util.SlowOperations;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -28,7 +30,10 @@ public final class DefaultLookupItemRenderer extends LookupElementRenderer<Looku
|
||||
}
|
||||
|
||||
public static @Nullable Icon getRawIcon(final LookupElement item) {
|
||||
Icon icon = _getRawIcon(item);
|
||||
Icon icon;
|
||||
try (AccessToken ignore = SlowOperations.knownIssue("IDEA-344670, 32126317")) {
|
||||
icon = _getRawIcon(item);
|
||||
}
|
||||
if (icon instanceof ScalableIcon) {
|
||||
icon = ((ScalableIcon)icon).scale(1f);
|
||||
}
|
||||
|
||||
+10
-3
@@ -39,6 +39,7 @@ import com.intellij.psi.util.PsiUtilBase
|
||||
import com.intellij.psi.util.PsiUtilCore
|
||||
import com.intellij.ui.LightweightHint
|
||||
import com.intellij.util.Alarm
|
||||
import com.intellij.util.SlowOperations
|
||||
import com.intellij.util.concurrency.ThreadingAssertions
|
||||
import com.intellij.util.concurrency.annotations.RequiresEdt
|
||||
import com.intellij.util.text.CharArrayUtil
|
||||
@@ -162,7 +163,9 @@ class BraceHighlightingHandler internal constructor(
|
||||
|
||||
alarm.cancelAllRequests()
|
||||
|
||||
var context = BraceMatchingUtil.computeHighlightingAndNavigationContext(editor, psiFile)
|
||||
var context = SlowOperations.knownIssue("IJPL-162400").use {
|
||||
BraceMatchingUtil.computeHighlightingAndNavigationContext(editor, psiFile)
|
||||
}
|
||||
if (context != null) {
|
||||
doHighlight(context.currentBraceOffset, context.isCaretAfterBrace)
|
||||
offset = context.currentBraceOffset
|
||||
@@ -179,7 +182,9 @@ class BraceHighlightingHandler internal constructor(
|
||||
// Try to find matched brace backwards.
|
||||
val backwardNonSpaceEndOffset = CharArrayUtil.shiftBackward(chars, offset - 1, "\t ") + 1
|
||||
if (backwardNonSpaceEndOffset in 1..<offset) {
|
||||
context = BraceMatchingUtil.computeHighlightingAndNavigationContext(editor, psiFile, backwardNonSpaceEndOffset)
|
||||
context = SlowOperations.knownIssue("IJPL-162400").use {
|
||||
BraceMatchingUtil.computeHighlightingAndNavigationContext(editor, psiFile, backwardNonSpaceEndOffset)
|
||||
}
|
||||
if (context != null) {
|
||||
doHighlight(offset = context.currentBraceOffset, isAdjustedPosition = true)
|
||||
offset = context.currentBraceOffset
|
||||
@@ -201,7 +206,9 @@ class BraceHighlightingHandler internal constructor(
|
||||
}
|
||||
|
||||
if (codeInsightSettings.HIGHLIGHT_SCOPE) {
|
||||
highlightScope(offset)
|
||||
SlowOperations.knownIssue("IJPL-162400").use {
|
||||
highlightScope(offset)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -527,7 +527,10 @@ public final class ShowUsagesAction extends AnAction implements PopupAction, Hin
|
||||
AtomicBoolean manuallyResized = new AtomicBoolean();
|
||||
Ref<UsageNode> preselectedRow = new Ref<>();
|
||||
|
||||
Predicate<? super Usage> originUsageCheck = originUsageCheck(parameters.editor);
|
||||
Predicate<? super Usage> originUsageCheck;
|
||||
try (AccessToken ignore = SlowOperations.knownIssue("IJPL-162330")) {
|
||||
originUsageCheck = originUsageCheck(parameters.editor);
|
||||
}
|
||||
ShowUsagesTableCellRenderer renderer = new ShowUsagesTableCellRenderer(originUsageCheck, outOfScopeUsages, searchScope);
|
||||
ShowUsagesTable table = new ShowUsagesTable(renderer, usageView);
|
||||
|
||||
|
||||
@@ -163,10 +163,13 @@ public final class FindUsagesManager {
|
||||
|
||||
public @Nullable FindUsagesHandler getFindUsagesHandler(@NotNull PsiElement element, @NotNull OperationMode operationMode) {
|
||||
for (FindUsagesHandlerFactory factory : FindUsagesHandlerFactory.EP_NAME.getExtensions(myProject)) {
|
||||
try (AccessToken ignore = SlowOperations.knownIssue("IDEA-353115, EA-841437")) {
|
||||
try (AccessToken ignore = SlowOperations.knownIssue("IJPL-162401 IDEA-353115")) {
|
||||
if (!factory.canFindUsages(element)) continue;
|
||||
}
|
||||
FindUsagesHandler handler = factory.createFindUsagesHandler(element, operationMode);
|
||||
FindUsagesHandler handler;
|
||||
try (AccessToken ignore = SlowOperations.knownIssue("IJPL-162401")) {
|
||||
handler = factory.createFindUsagesHandler(element, operationMode);
|
||||
}
|
||||
if (handler == FindUsagesHandler.NULL_HANDLER) return null;
|
||||
if (handler != null) {
|
||||
return handler;
|
||||
@@ -220,7 +223,9 @@ public final class FindUsagesManager {
|
||||
|
||||
clearFindingNextUsageInFile();
|
||||
|
||||
startFindUsages(findUsagesOptions, handler, scopeFile, editor);
|
||||
try (AccessToken ignore = SlowOperations.knownIssue("IJPL-162399")) {
|
||||
startFindUsages(findUsagesOptions, handler, scopeFile, editor);
|
||||
}
|
||||
}
|
||||
|
||||
public void startFindUsages(@NotNull PsiElement psiElement, @NotNull FindUsagesOptions findUsagesOptions) {
|
||||
|
||||
+3
-1
@@ -18,6 +18,7 @@ import com.intellij.lang.LanguageNamesValidation;
|
||||
import com.intellij.lang.injection.InjectedLanguageManager;
|
||||
import com.intellij.openapi.actionSystem.IdeActions;
|
||||
import com.intellij.openapi.actionSystem.Shortcut;
|
||||
import com.intellij.openapi.application.AccessToken;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.command.CommandProcessor;
|
||||
@@ -69,6 +70,7 @@ import com.intellij.ui.awt.RelativePoint;
|
||||
import com.intellij.ui.popup.PopupFactoryImpl;
|
||||
import com.intellij.util.CommonProcessors;
|
||||
import com.intellij.util.Query;
|
||||
import com.intellij.util.SlowOperations;
|
||||
import com.intellij.util.containers.NotNullList;
|
||||
import com.intellij.util.ui.PositionTracker;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -217,7 +219,7 @@ public abstract class InplaceRefactoring {
|
||||
|
||||
List<Pair<PsiElement, TextRange>> stringUsages = new NotNullList<>();
|
||||
collectAdditionalElementsToRename(stringUsages);
|
||||
try {
|
||||
try (AccessToken ignore = SlowOperations.startSection(SlowOperations.ACTION_PERFORM)) { // IJPL-162116
|
||||
return buildTemplateAndStart(references, stringUsages, scope, containingFile);
|
||||
}
|
||||
catch (Throwable e) {
|
||||
|
||||
+5
-1
@@ -16,6 +16,7 @@ import com.intellij.modcommand.ActionContext;
|
||||
import com.intellij.modcommand.ModCommandExecutor;
|
||||
import com.intellij.modcommand.ModUpdateFileText;
|
||||
import com.intellij.openapi.actionSystem.ex.ActionUtil;
|
||||
import com.intellij.openapi.application.AccessToken;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
@@ -55,6 +56,7 @@ import com.intellij.refactoring.util.CommonRefactoringUtil;
|
||||
import com.intellij.refactoring.util.TextOccurrencesUtil;
|
||||
import com.intellij.usageView.UsageInfo;
|
||||
import com.intellij.util.Processor;
|
||||
import com.intellij.util.SlowOperations;
|
||||
import com.intellij.util.ThrowableRunnable;
|
||||
import com.intellij.util.concurrency.AppExecutorUtil;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
@@ -526,7 +528,9 @@ public class VariableInplaceRenamer extends InplaceRefactoring {
|
||||
if (mySnapshot != null) {
|
||||
WriteCommandAction.writeCommandAction(myProject).withName(getCommandName()).run(() -> mySnapshot.apply(myInsertedName));
|
||||
}
|
||||
performRefactoringRename(myInsertedName, myMarkAction);
|
||||
try (AccessToken ignore = SlowOperations.startSection(SlowOperations.ACTION_PERFORM)) { // IJPL-162114
|
||||
performRefactoringRename(myInsertedName, myMarkAction);
|
||||
}
|
||||
}
|
||||
else {
|
||||
problem.showUI();
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.intellij.openapi.application.runReadAction
|
||||
import com.intellij.openapi.util.Key
|
||||
import com.intellij.openapi.util.getOrCreateUserData
|
||||
import com.intellij.platform.lvcs.impl.diff.getEntryPath
|
||||
import com.intellij.util.SlowOperations
|
||||
|
||||
internal val AFFECTED_PATHS: Key<Collection<String>> = Key.create("Lvcs.Affected.Paths")
|
||||
|
||||
@@ -18,7 +19,9 @@ internal fun ActivityData.getRootEntry(gateway: IdeaGateway): RootEntry {
|
||||
runReadAction {
|
||||
val affectedPaths = getUserData(AFFECTED_PATHS)
|
||||
if (!affectedPaths.isNullOrEmpty()) {
|
||||
return@runReadAction gateway.createTransientRootEntryForPaths(affectedPaths, true)
|
||||
return@runReadAction SlowOperations.knownIssue("IJPL-162340").use {
|
||||
gateway.createTransientRootEntryForPaths(affectedPaths, true)
|
||||
}
|
||||
}
|
||||
gateway.createTransientRootEntry()
|
||||
}
|
||||
|
||||
+6
-1
@@ -2,6 +2,7 @@
|
||||
package com.intellij.ide.ui.newItemPopup;
|
||||
|
||||
import com.intellij.ide.IdeBundle;
|
||||
import com.intellij.openapi.application.AccessToken;
|
||||
import com.intellij.ui.ExperimentalUI;
|
||||
import com.intellij.ui.ScrollingUtil;
|
||||
import com.intellij.ui.SeparatorComponent;
|
||||
@@ -10,6 +11,7 @@ import com.intellij.ui.components.JBBox;
|
||||
import com.intellij.ui.components.JBList;
|
||||
import com.intellij.ui.components.JBScrollPane;
|
||||
import com.intellij.ui.render.RenderingUtil;
|
||||
import com.intellij.util.SlowOperations;
|
||||
import com.intellij.util.ui.JBUI;
|
||||
import com.intellij.util.ui.accessibility.ScreenReader;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -122,7 +124,10 @@ public class NewItemWithTemplatesPopupPanel<T> extends NewItemSimplePopupPanel {
|
||||
MouseAdapter mouseListener = new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
if (myApplyAction != null && e.getClickCount() > 1) myApplyAction.consume(e);
|
||||
if (myApplyAction == null || e.getClickCount() <= 1) return;
|
||||
try (AccessToken ignored = SlowOperations.startSection(SlowOperations.ACTION_PERFORM)) { // IJPL-162396
|
||||
myApplyAction.consume(e);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1426,7 +1426,10 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
myHighlighterDisposable = () -> document.removeDocumentListener(highlighter);
|
||||
Disposer.register(myDisposable, myHighlighterDisposable);
|
||||
highlighter.setEditor(this);
|
||||
highlighter.setText(document.getImmutableCharSequence());
|
||||
|
||||
try (AccessToken ignored = SlowOperations.knownIssue("IJPL-162348")) {
|
||||
highlighter.setText(document.getImmutableCharSequence());
|
||||
}
|
||||
if (!(highlighter instanceof EmptyEditorHighlighter)) {
|
||||
EditorHighlighterCache.rememberEditorHighlighterForCachesOptimization(document, highlighter);
|
||||
}
|
||||
|
||||
@@ -11,10 +11,7 @@ import com.intellij.lang.Language;
|
||||
import com.intellij.navigation.NavigationItem;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.application.WriteIntentReadAction;
|
||||
import com.intellij.openapi.application.*;
|
||||
import com.intellij.openapi.command.CommandProcessor;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.progress.ProgressIndicator;
|
||||
@@ -1910,7 +1907,9 @@ public class UsageViewImpl implements UsageViewEx {
|
||||
protected Navigatable createDescriptorForNode(@NotNull DefaultMutableTreeNode node) {
|
||||
if (node.getChildCount() > 0) return null;
|
||||
if (node instanceof Node && ((Node)node).isExcluded()) return null;
|
||||
return getNavigatableForNode(node, !myPresentation.isReplaceMode());
|
||||
try (AccessToken ignore = SlowOperations.knownIssue("IJPL-162332")) {
|
||||
return getNavigatableForNode(node, !myPresentation.isReplaceMode());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-2
@@ -37,6 +37,7 @@ import com.intellij.openapi.vfs.impl.BulkVirtualFileListenerAdapter
|
||||
import com.intellij.psi.PsiDocumentManager
|
||||
import com.intellij.ui.ExperimentalUI.Companion.isNewUI
|
||||
import com.intellij.util.DocumentUtil
|
||||
import com.intellij.util.SlowOperations
|
||||
import com.intellij.util.concurrency.annotations.RequiresEdt
|
||||
import com.intellij.util.containers.MultiMap
|
||||
import com.intellij.util.ui.EDT
|
||||
@@ -87,8 +88,9 @@ class XLineBreakpointManager(private val project: Project, coroutineScope: Corou
|
||||
if (breakpoints.isEmpty() || ApplicationManager.getApplication().isUnitTestMode) {
|
||||
return
|
||||
}
|
||||
|
||||
breakpoints.forEach { it.updatePosition() }
|
||||
SlowOperations.knownIssue("IJPL-162343").use {
|
||||
breakpoints.forEach { it.updatePosition() }
|
||||
}
|
||||
|
||||
// Check if two or more breakpoints occurred at the same position and remove duplicates.
|
||||
val (valid, invalid) = breakpoints.partition { it.isValid }
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.intellij.openapi.vfs.VirtualFileManager
|
||||
import com.intellij.openapi.vfs.newvfs.BulkFileListener
|
||||
import com.intellij.openapi.vfs.newvfs.events.VFileEvent
|
||||
import com.intellij.util.EventDispatcher
|
||||
import com.intellij.util.SlowOperations
|
||||
import com.intellij.util.messages.MessageBusConnection
|
||||
import com.intellij.vcs.log.runInEdt
|
||||
import git4idea.GitVcs
|
||||
@@ -95,7 +96,9 @@ open class GitStageTracker(val project: Project) : Disposable {
|
||||
*/
|
||||
internal fun markDirty(file: VirtualFile) {
|
||||
if (!isStagingAreaAvailable()) return
|
||||
val root = getRoot(project, file) ?: return
|
||||
val root = SlowOperations.knownIssue("IJPL-162402").use {
|
||||
getRoot(project, file) ?: return
|
||||
}
|
||||
if (!gitRoots().contains(root)) return
|
||||
LOG.debug("Mark dirty ${file.filePath()}")
|
||||
dirtyScopeManager.fileDirty(file.filePath())
|
||||
|
||||
+6
-28
@@ -13,6 +13,7 @@ import com.intellij.psi.util.PsiTreeUtil
|
||||
import com.intellij.refactoring.HelpID
|
||||
import com.intellij.refactoring.RefactoringActionHandler
|
||||
import com.intellij.refactoring.util.CommonRefactoringUtil
|
||||
import com.intellij.util.SlowOperations
|
||||
import com.intellij.util.SmartList
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.refactoring.chooseContainer.chooseContainerElementIfNecessary
|
||||
@@ -20,32 +21,7 @@ import org.jetbrains.kotlin.idea.refactoring.introduce.KotlinIntroduceVariableHe
|
||||
import org.jetbrains.kotlin.idea.refactoring.selectElement
|
||||
import org.jetbrains.kotlin.idea.util.ElementKind
|
||||
import org.jetbrains.kotlin.idea.util.application.isUnitTestMode
|
||||
import org.jetbrains.kotlin.psi.KtAnnotationEntry
|
||||
import org.jetbrains.kotlin.psi.KtArrayAccessExpression
|
||||
import org.jetbrains.kotlin.psi.KtBinaryExpression
|
||||
import org.jetbrains.kotlin.psi.KtBlockExpression
|
||||
import org.jetbrains.kotlin.psi.KtClassBody
|
||||
import org.jetbrains.kotlin.psi.KtConstructorCalleeExpression
|
||||
import org.jetbrains.kotlin.psi.KtConstructorDelegationReferenceExpression
|
||||
import org.jetbrains.kotlin.psi.KtContainerNode
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
import org.jetbrains.kotlin.psi.KtDeclarationWithBody
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
import org.jetbrains.kotlin.psi.KtExpression
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtFunction
|
||||
import org.jetbrains.kotlin.psi.KtFunctionLiteral
|
||||
import org.jetbrains.kotlin.psi.KtIfExpression
|
||||
import org.jetbrains.kotlin.psi.KtLambdaExpression
|
||||
import org.jetbrains.kotlin.psi.KtLoopExpression
|
||||
import org.jetbrains.kotlin.psi.KtOperationExpression
|
||||
import org.jetbrains.kotlin.psi.KtPsiUtil
|
||||
import org.jetbrains.kotlin.psi.KtQualifiedExpression
|
||||
import org.jetbrains.kotlin.psi.KtReferenceExpression
|
||||
import org.jetbrains.kotlin.psi.KtStatementExpression
|
||||
import org.jetbrains.kotlin.psi.KtSuperExpression
|
||||
import org.jetbrains.kotlin.psi.KtTypeReference
|
||||
import org.jetbrains.kotlin.psi.KtWhenEntry
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType
|
||||
import org.jetbrains.kotlin.psi.psiUtil.isFunctionalExpression
|
||||
import org.jetbrains.kotlin.psi.psiUtil.parents
|
||||
@@ -94,8 +70,10 @@ abstract class KotlinIntroduceVariableHandler : RefactoringActionHandler {
|
||||
if (file !is KtFile) return
|
||||
|
||||
try {
|
||||
selectElement(editor, file, failOnEmptySuggestion = false, listOf(ElementKind.EXPRESSION)) {
|
||||
collectCandidateTargetContainersAndDoRefactoring(project, editor, it as KtExpression?, isVar = false)
|
||||
selectElement(editor, file, failOnEmptySuggestion = false, listOf(ElementKind.EXPRESSION)) { psi ->
|
||||
SlowOperations.knownIssue("KTIJ-31332").use {
|
||||
collectCandidateTargetContainersAndDoRefactoring(project, editor, psi as KtExpression?, isVar = false)
|
||||
}
|
||||
}
|
||||
} catch (e: IntroduceRefactoringException) {
|
||||
showErrorHint(project, editor, e.message!!)
|
||||
|
||||
+11
-9
@@ -9,6 +9,7 @@ import com.intellij.openapi.editor.event.EditorFactoryListener
|
||||
import com.intellij.openapi.editor.ex.SoftWrapChangeListener
|
||||
import com.intellij.openapi.editor.ex.SoftWrapModelEx
|
||||
import com.intellij.openapi.fileTypes.FileTypeManager
|
||||
import com.intellij.util.SlowOperations
|
||||
import org.intellij.plugins.markdown.lang.MarkdownFileType
|
||||
|
||||
/**
|
||||
@@ -17,16 +18,17 @@ import org.intellij.plugins.markdown.lang.MarkdownFileType
|
||||
internal class MarkdownInlayUpdateOnSoftWrapListener: EditorFactoryListener {
|
||||
override fun editorCreated(event: EditorFactoryEvent) {
|
||||
val editor = event.editor
|
||||
if (ReadAction.compute<Boolean, Nothing> { isMarkdownEditor(editor) }) {
|
||||
val softWrapModel = (editor.softWrapModel as? SoftWrapModelEx) ?: return
|
||||
softWrapModel.addSoftWrapChangeListener(object : SoftWrapChangeListener {
|
||||
override fun softWrapsChanged() {
|
||||
InlayHintsPassFactoryInternal.forceHintsUpdateOnNextPass()
|
||||
}
|
||||
|
||||
override fun recalculationEnds() = Unit
|
||||
})
|
||||
SlowOperations.knownIssue("IJPL-162344").use {
|
||||
if (!ReadAction.compute<Boolean, Nothing> { isMarkdownEditor(editor) }) return
|
||||
}
|
||||
val softWrapModel = (editor.softWrapModel as? SoftWrapModelEx) ?: return
|
||||
softWrapModel.addSoftWrapChangeListener(object : SoftWrapChangeListener {
|
||||
override fun softWrapsChanged() {
|
||||
InlayHintsPassFactoryInternal.forceHintsUpdateOnNextPass()
|
||||
}
|
||||
|
||||
override fun recalculationEnds() = Unit
|
||||
})
|
||||
}
|
||||
|
||||
private fun isMarkdownEditor(editor: Editor): Boolean =
|
||||
|
||||
Reference in New Issue
Block a user