diff options
Diffstat (limited to 'platform/lang-impl/src/com/intellij/execution/impl')
3 files changed, 19 insertions, 9 deletions
diff --git a/platform/lang-impl/src/com/intellij/execution/impl/ConsoleViewImpl.java b/platform/lang-impl/src/com/intellij/execution/impl/ConsoleViewImpl.java index 605d073945b5..3fce510e725e 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/ConsoleViewImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/ConsoleViewImpl.java @@ -674,7 +674,7 @@ public class ConsoleViewImpl extends JPanel implements ConsoleView, ObservableCo final Document document = myEditor.getDocument(); final RangeMarker lastProcessedOutput = document.createRangeMarker(document.getTextLength(), document.getTextLength()); final int caretOffset = myEditor.getCaretModel().getOffset(); - final boolean isAtLastLine = document.getLineNumber(caretOffset) >= document.getLineCount() - 1; + final boolean isAtLastLine = isCaretAtLastLine(); CommandProcessor.getInstance().executeCommand(myProject, new Runnable() { @Override @@ -1078,6 +1078,9 @@ public class ConsoleViewImpl extends JPanel implements ConsoleView, ObservableCo }; if (immediately) { model.runBatchFoldingOperation(operation); + if (isCaretAtLastLine()) { + EditorUtil.scrollToTheEnd(myEditor); + } } else { model.runBatchFoldingOperationDoNotCollapseCaret(operation); @@ -1092,6 +1095,12 @@ public class ConsoleViewImpl extends JPanel implements ConsoleView, ObservableCo } } + private boolean isCaretAtLastLine() { + final Document document = myEditor.getDocument(); + final int caretOffset = myEditor.getCaretModel().getOffset(); + return document.getLineNumber(caretOffset) >= document.getLineCount() - 1; + } + private void addFolding(Document document, CharSequence chars, int line, List<FoldRegion> toAdd) { String commandLinePlaceholder = myCommandLineFolding.getPlaceholder(line); if (commandLinePlaceholder != null) { diff --git a/platform/lang-impl/src/com/intellij/execution/impl/EditConfigurationsDialog.java b/platform/lang-impl/src/com/intellij/execution/impl/EditConfigurationsDialog.java index d206283375e2..265d9c3f7410 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/EditConfigurationsDialog.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/EditConfigurationsDialog.java @@ -26,7 +26,7 @@ public class EditConfigurationsDialog extends SingleConfigurableEditor implement protected Executor myExecutor; public EditConfigurationsDialog(final Project project) { - super(project, new RunConfigurable(project), IdeModalityType.PROJECT); + super(project, new RunConfigurable(project), "#com.intellij.execution.impl.EditConfigurationsDialog", IdeModalityType.PROJECT); ((RunConfigurable)getConfigurable()).setRunDialog(this); setTitle(ExecutionBundle.message("run.debug.dialog.title")); setHorizontalStretch(1.3F); @@ -42,11 +42,6 @@ public class EditConfigurationsDialog extends SingleConfigurableEditor implement } } - @Override - protected String getDimensionServiceKey() { - return "#com.intellij.execution.impl.EditConfigurationsDialog"; - } - @Nullable @Override public Executor getExecutor() { diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.java b/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.java index 3645439db470..95d4db09c297 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.java @@ -589,8 +589,14 @@ class RunConfigurable extends BaseConfigurable { @Override public JComponent createComponent() { for (RunConfigurationsSettings each : Extensions.getExtensions(RunConfigurationsSettings.EXTENSION_POINT)) { - UnnamedConfigurable configurable = each.createConfigurable(); - myAdditionalSettings.add(Pair.create(configurable, configurable.createComponent())); + try { + UnnamedConfigurable configurable = each.createConfigurable(myProject); + myAdditionalSettings.add(Pair.create(configurable, configurable.createComponent())); + } + catch (NoSuchMethodError e) { + // in case someone has already implemented old RunConfigurationsSettings.createConfigurable() + LOG.error(e); + } } myWholePanel = new JPanel(new BorderLayout()); |