mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
IJPL-53: Add needed explicit read action.
GitOrigin-RevId: 7170d6e03712d56c1800b65e21444d7057a56607
This commit is contained in:
committed by
intellij-monorepo-bot
parent
0e153964f5
commit
cc27aebcd0
@@ -2,6 +2,9 @@
|
||||
package com.intellij.codeInsight.daemon.impl
|
||||
|
||||
import com.intellij.openapi.Disposable
|
||||
import com.intellij.openapi.application.ReadAction
|
||||
import com.intellij.openapi.application.readAction
|
||||
import com.intellij.openapi.application.runReadAction
|
||||
import com.intellij.openapi.components.service
|
||||
import com.intellij.openapi.diagnostic.debug
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
@@ -18,6 +21,7 @@ import com.intellij.openapi.wm.WindowManager
|
||||
import com.intellij.openapi.wm.impl.IdeFrameImpl
|
||||
import com.intellij.openapi.wm.impl.ProjectFrameHelper
|
||||
import com.intellij.psi.PsiDocumentManager
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.util.concurrency.annotations.RequiresEdt
|
||||
import java.awt.Window
|
||||
import java.awt.event.WindowAdapter
|
||||
@@ -87,7 +91,8 @@ open class EditorTrackerImpl(@JvmField protected val project: Project) : EditorT
|
||||
override fun editorCreated(event: EditorFactoryEvent) {
|
||||
val editor = event.editor
|
||||
val project = editor.project?.takeIf { !it.isDisposed } ?: return
|
||||
if (PsiDocumentManager.getInstance(project).getPsiFile(editor.document) != null) {
|
||||
val psi = runReadAction { PsiDocumentManager.getInstance(project).getPsiFile(editor.document) }
|
||||
if (psi != null) {
|
||||
getInstance(project).createEditorImpl(editor = editor, project = project)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -999,10 +999,11 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
myIgnoreMouseEventsConsecutiveToInitial = true;
|
||||
}
|
||||
|
||||
myCaretModel.updateVisualPosition();
|
||||
|
||||
// make sure carets won't appear at invalid positions (e.g., on Tab width change)
|
||||
getCaretModel().doWithCaretMerging(() -> myCaretModel.getAllCarets().forEach(caret -> caret.moveToOffset(caret.getOffset())));
|
||||
ReadAction.run(() -> {
|
||||
myCaretModel.updateVisualPosition();
|
||||
// make sure carets won't appear at invalid positions (e.g., on Tab width change)
|
||||
getCaretModel().doWithCaretMerging(() -> myCaretModel.getAllCarets().forEach(caret -> caret.moveToOffset(caret.getOffset())));
|
||||
});
|
||||
|
||||
if (myVirtualFile != null && myProject != null) {
|
||||
EditorNotifications.getInstance(myProject).updateNotifications(myVirtualFile);
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.intellij.diagnostic.Dumpable;
|
||||
import com.intellij.ide.ui.UISettings;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.CustomFoldRegion;
|
||||
import com.intellij.openapi.editor.FoldRegion;
|
||||
@@ -666,9 +667,11 @@ public final class EditorView implements TextDrawingCallback, Disposable, Dumpab
|
||||
}
|
||||
|
||||
private void invalidateFoldRegionLayouts() {
|
||||
for (FoldRegion region : myEditor.getFoldingModel().getAllFoldRegions()) {
|
||||
invalidateFoldRegionLayout(region);
|
||||
}
|
||||
ReadAction.run(() -> {
|
||||
for (FoldRegion region : myEditor.getFoldingModel().getAllFoldRegions()) {
|
||||
invalidateFoldRegionLayout(region);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void invalidateFoldRegionLayout(FoldRegion region) {
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.intellij.openapi.actionSystem.DataProvider;
|
||||
import com.intellij.openapi.actionSystem.PlatformDataKeys;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.command.CommandProcessor;
|
||||
import com.intellij.openapi.command.UndoConfirmationPolicy;
|
||||
import com.intellij.openapi.command.impl.UndoManagerImpl;
|
||||
@@ -622,7 +623,7 @@ public class EditorTextField extends NonOpaquePanel implements EditorTextCompone
|
||||
editor.setCaretEnabled(!myIsViewer);
|
||||
|
||||
if (project != null) {
|
||||
PsiFile psiFile = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument());
|
||||
PsiFile psiFile = ReadAction.compute(() -> PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument()));
|
||||
if (psiFile != null) {
|
||||
DaemonCodeAnalyzer.getInstance(project).setHighlightingEnabled(psiFile, !myIsViewer);
|
||||
}
|
||||
@@ -636,44 +637,46 @@ public class EditorTextField extends NonOpaquePanel implements EditorTextCompone
|
||||
if (highlighter != null) editor.setHighlighter(highlighter);
|
||||
}
|
||||
|
||||
editor.getSettings().setCaretRowShown(false);
|
||||
ReadAction.run(() -> {
|
||||
editor.getSettings().setCaretRowShown(false);
|
||||
|
||||
editor.setOneLineMode(myOneLineMode);
|
||||
editor.getCaretModel().moveToOffset(document.getTextLength());
|
||||
editor.setOneLineMode(myOneLineMode);
|
||||
editor.getCaretModel().moveToOffset(document.getTextLength());
|
||||
|
||||
if (!shouldHaveBorder()) {
|
||||
editor.setBorder(null);
|
||||
}
|
||||
if (!shouldHaveBorder()) {
|
||||
editor.setBorder(null);
|
||||
}
|
||||
|
||||
if (myIsViewer) {
|
||||
editor.getSelectionModel().removeSelection();
|
||||
}
|
||||
else if (myWholeTextSelected) {
|
||||
doSelectAll(editor);
|
||||
myWholeTextSelected = false;
|
||||
}
|
||||
if (myIsViewer) {
|
||||
editor.getSelectionModel().removeSelection();
|
||||
}
|
||||
else if (myWholeTextSelected) {
|
||||
doSelectAll(editor);
|
||||
myWholeTextSelected = false;
|
||||
}
|
||||
|
||||
editor.putUserData(SUPPLEMENTARY_KEY, myIsSupplementary);
|
||||
editor.getContentComponent().setFocusCycleRoot(false);
|
||||
editor.getContentComponent().addFocusListener(this);
|
||||
editor.getContentComponent().addMouseListener(this);
|
||||
editor.putUserData(SUPPLEMENTARY_KEY, myIsSupplementary);
|
||||
editor.getContentComponent().setFocusCycleRoot(false);
|
||||
editor.getContentComponent().addFocusListener(this);
|
||||
editor.getContentComponent().addMouseListener(this);
|
||||
|
||||
editor.setPlaceholder(myHintText);
|
||||
editor.setShowPlaceholderWhenFocused(myShowPlaceholderWhenFocused);
|
||||
editor.setPlaceholder(myHintText);
|
||||
editor.setShowPlaceholderWhenFocused(myShowPlaceholderWhenFocused);
|
||||
|
||||
initOneLineMode(editor);
|
||||
initOneLineMode(editor);
|
||||
|
||||
if (myIsRendererWithSelection) {
|
||||
((EditorImpl)editor).setPaintSelection(true);
|
||||
editor.getColorsScheme().setColor(EditorColors.SELECTION_BACKGROUND_COLOR, myRendererBg);
|
||||
editor.getColorsScheme().setColor(EditorColors.SELECTION_FOREGROUND_COLOR, myRendererFg);
|
||||
editor.getSelectionModel().setSelection(0, document.getTextLength());
|
||||
editor.setBackgroundColor(myRendererBg);
|
||||
}
|
||||
if (myIsRendererWithSelection) {
|
||||
((EditorImpl)editor).setPaintSelection(true);
|
||||
editor.getColorsScheme().setColor(EditorColors.SELECTION_BACKGROUND_COLOR, myRendererBg);
|
||||
editor.getColorsScheme().setColor(EditorColors.SELECTION_FOREGROUND_COLOR, myRendererFg);
|
||||
editor.getSelectionModel().setSelection(0, document.getTextLength());
|
||||
editor.setBackgroundColor(myRendererBg);
|
||||
}
|
||||
|
||||
for (EditorSettingsProvider provider : mySettingsProviders) {
|
||||
provider.customizeSettings(editor);
|
||||
}
|
||||
for (EditorSettingsProvider provider : mySettingsProviders) {
|
||||
provider.customizeSettings(editor);
|
||||
}
|
||||
});
|
||||
|
||||
return editor;
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package com.intellij.util.textCompletion;
|
||||
|
||||
import com.intellij.codeInsight.AutoPopupController;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.editor.SpellCheckingEditorCustomizationProvider;
|
||||
import com.intellij.openapi.editor.ex.EditorEx;
|
||||
import com.intellij.openapi.fileTypes.PlainTextLanguage;
|
||||
@@ -65,8 +66,12 @@ public class TextFieldWithCompletion extends LanguageTextField {
|
||||
@Override
|
||||
protected @NotNull EditorEx createEditor() {
|
||||
EditorEx editor = super.createEditor();
|
||||
EditorCustomization disableSpellChecking = SpellCheckingEditorCustomizationProvider.getInstance().getDisabledCustomization();
|
||||
if (disableSpellChecking != null) disableSpellChecking.customize(editor);
|
||||
ReadAction.run(() -> {
|
||||
EditorCustomization disableSpellChecking = SpellCheckingEditorCustomizationProvider.getInstance().getDisabledCustomization();
|
||||
if (disableSpellChecking != null) {
|
||||
disableSpellChecking.customize(editor);
|
||||
}
|
||||
});
|
||||
editor.putUserData(AutoPopupController.ALWAYS_AUTO_POPUP, myForceAutoPopup);
|
||||
|
||||
if (myShowHint) {
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
package org.intellij.plugins.markdown.editor.tables.ui
|
||||
|
||||
import com.intellij.codeInsight.daemon.impl.InlayHintsPassFactory
|
||||
import com.intellij.openapi.application.ReadAction
|
||||
import com.intellij.openapi.application.readAction
|
||||
import com.intellij.openapi.editor.Editor
|
||||
import com.intellij.openapi.editor.event.EditorFactoryEvent
|
||||
import com.intellij.openapi.editor.event.EditorFactoryListener
|
||||
@@ -17,7 +19,7 @@ import org.intellij.plugins.markdown.lang.MarkdownFileType
|
||||
internal class MarkdownInlayUpdateOnSoftWrapListener: EditorFactoryListener {
|
||||
override fun editorCreated(event: EditorFactoryEvent) {
|
||||
val editor = event.editor
|
||||
if (isMarkdownEditor(editor)) {
|
||||
if (ReadAction.compute<Boolean, Nothing> { isMarkdownEditor(editor) }) {
|
||||
val softWrapModel = (editor.softWrapModel as? SoftWrapModelEx) ?: return
|
||||
softWrapModel.addSoftWrapChangeListener(object : SoftWrapChangeListener {
|
||||
override fun softWrapsChanged() {
|
||||
|
||||
@@ -9,6 +9,8 @@ import com.intellij.codeInspection.LocalInspectionTool;
|
||||
import com.intellij.codeInspection.ex.InspectionProfileImpl;
|
||||
import com.intellij.codeInspection.ex.InspectionProfileWrapper;
|
||||
import com.intellij.codeInspection.ex.LocalInspectionToolWrapper;
|
||||
import com.intellij.execution.dashboard.actions.RunAction;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.editor.ex.EditorEx;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
@@ -71,7 +73,7 @@ public class SpellCheckingEditorCustomization extends SimpleEditorCustomization
|
||||
return;
|
||||
}
|
||||
|
||||
PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument());
|
||||
PsiFile file = ReadAction.compute(() -> PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument()));
|
||||
if (file == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.intellij.lang.xhtml.XHTMLLanguage;
|
||||
import com.intellij.lang.xml.XMLLanguage;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.command.CommandEvent;
|
||||
import com.intellij.openapi.command.CommandListener;
|
||||
import com.intellij.openapi.command.undo.UndoManager;
|
||||
@@ -124,7 +125,7 @@ public final class XmlTagNameSynchronizer implements EditorFactoryListener {
|
||||
public static class MyEditorFactoryListener implements EditorFactoryListener {
|
||||
@Override
|
||||
public void editorCreated(@NotNull EditorFactoryEvent event) {
|
||||
createSynchronizerFor(event.getEditor());
|
||||
ReadAction.compute(() -> { createSynchronizerFor(event.getEditor()); return null; });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user