mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Console init moved out of the event dispatch thread.
This commit is contained in:
@@ -21,6 +21,7 @@ import com.intellij.ide.impl.TypeSafeDataProviderAdapter;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.application.Application;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.editor.*;
|
||||
@@ -373,7 +374,7 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider {
|
||||
HighlighterTargetArea.EXACT_RANGE);
|
||||
|
||||
final String text = consoleEditor.getDocument().getText(textRange);
|
||||
//offset can be changed after text trimming after insert due to buffer constraints
|
||||
//offset can be changed after text trimming after insert due to buffer constraints
|
||||
appendToHistoryDocument(history, text);
|
||||
int offset = history.getTextLength() - text.length();
|
||||
final int localStartOffset = textRange.getStartOffset();
|
||||
@@ -617,10 +618,17 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider {
|
||||
attributes = additionalType.getAttributes().clone();
|
||||
attributes.setBackgroundColor(mainAttributes.getBackgroundColor());
|
||||
}
|
||||
ApplicationManager.getApplication().invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
console.printToHistory(string, attributes);
|
||||
}
|
||||
}, ModalityState.stateForComponent(console.getComponent()));
|
||||
|
||||
Application application = ApplicationManager.getApplication();
|
||||
if (application.isDispatchThread()) {
|
||||
console.printToHistory(string, attributes);
|
||||
}
|
||||
else {
|
||||
application.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
console.printToHistory(string, attributes);
|
||||
}
|
||||
}, ModalityState.stateForComponent(console.getComponent()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+21
-8
@@ -30,18 +30,14 @@ import com.intellij.execution.ui.RunContentDescriptor;
|
||||
import com.intellij.execution.ui.actions.CloseAction;
|
||||
import com.intellij.ide.CommonActionsManager;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.application.Application;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.editor.CaretModel;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.actions.ScrollToTheEndToolbarAction;
|
||||
import com.intellij.openapi.editor.actions.ToggleUseSoftWrapsToolbarAction;
|
||||
import com.intellij.openapi.editor.ex.EditorEx;
|
||||
import com.intellij.openapi.editor.ex.EditorSettingsExternalizable;
|
||||
import com.intellij.openapi.editor.ex.util.EditorUtil;
|
||||
import com.intellij.openapi.editor.impl.softwrap.SoftWrapAppliancePlaces;
|
||||
import com.intellij.openapi.project.DumbAwareAction;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
@@ -60,8 +56,8 @@ import java.util.List;
|
||||
|
||||
/**
|
||||
* @author oleg
|
||||
* This class provides basic functionality for running consoles.
|
||||
* It launches external process and handles line input with history
|
||||
* This class provides basic functionality for running consoles.
|
||||
* It launches external process and handles line input with history
|
||||
*/
|
||||
public abstract class AbstractConsoleRunnerWithHistory {
|
||||
private final Project myProject;
|
||||
@@ -96,6 +92,23 @@ public abstract class AbstractConsoleRunnerWithHistory {
|
||||
// Create Server process
|
||||
final Process process = createProcess(myProvider);
|
||||
|
||||
Application application = ApplicationManager.getApplication();
|
||||
|
||||
if (application.isDispatchThread()) {
|
||||
initConsoleUI(process);
|
||||
}
|
||||
else {
|
||||
application.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
initConsoleUI(process);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void initConsoleUI(Process process) {
|
||||
// Init console view
|
||||
myConsoleView = createConsoleView();
|
||||
|
||||
@@ -257,7 +270,7 @@ public abstract class AbstractConsoleRunnerWithHistory {
|
||||
// Check if we have active lookup or if we can move in editor
|
||||
return LookupManager.getActiveLookup(consoleEditor) != null ||
|
||||
document.getLineNumber(caretModel.getOffset()) < document.getLineCount() - 1 &&
|
||||
!StringUtil.isEmptyOrSpaces(document.getText().substring(caretModel.getOffset()));
|
||||
!StringUtil.isEmptyOrSpaces(document.getText().substring(caretModel.getOffset()));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user