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.*;
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();
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()));
+ }
}
}
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;
/**
* @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;
// 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();
// 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()));
}
};
}