From c7981601e2d41b31407b02835958d904293e3145 Mon Sep 17 00:00:00 2001 From: "Vassiliy.Kudryashov" Date: Tue, 7 Jul 2015 13:55:46 +0300 Subject: [PATCH] IDEA-63980 Make idea.cycle.buffer.size configurable in IDEA GUI / IDEA settings --- .../src/com/intellij/ide/ui/UISettings.java | 2 + .../options/editor/EditorOptionsPanel.form | 40 +-- .../options/editor/EditorOptionsPanel.java | 11 +- .../console/ConsoleConfigurable.java | 271 ++++++++++++++++++ .../console/ConsoleFoldingConfigurable.java | 166 ----------- .../execution/console/FoldLinesLikeThis.java | 7 +- .../execution/impl/ConsoleBuffer.java | 11 +- .../src/messages/ApplicationBundle.properties | 1 + resources/src/idea/RichPlatformPlugin.xml | 4 +- updater/testData/bin/idea.properties | 2 +- 10 files changed, 300 insertions(+), 215 deletions(-) create mode 100644 platform/lang-impl/src/com/intellij/execution/console/ConsoleConfigurable.java delete mode 100644 platform/lang-impl/src/com/intellij/execution/console/ConsoleFoldingConfigurable.java diff --git a/platform/editor-ui-api/src/com/intellij/ide/ui/UISettings.java b/platform/editor-ui-api/src/com/intellij/ide/ui/UISettings.java index a2fdd956dcc8..6c922b21772e 100644 --- a/platform/editor-ui-api/src/com/intellij/ide/ui/UISettings.java +++ b/platform/editor-ui-api/src/com/intellij/ide/ui/UISettings.java @@ -67,6 +67,8 @@ public class UISettings extends SimpleModificationTracker implements PersistentS @Property(filter = FontFilter.class) public int FONT_SIZE; public int RECENT_FILES_LIMIT = 50; public int CONSOLE_COMMAND_HISTORY_LIMIT = 300; + public boolean OVERRIDE_CONSOLE_CYCLE_BUFFER_SIZE = false; + public int CONSOLE_CYCLE_BUFFER_SIZE_KB = 1024; public int EDITOR_TAB_LIMIT = 10; public boolean REUSE_NOT_MODIFIED_TABS = false; public boolean ANIMATE_WINDOWS = true; diff --git a/platform/lang-impl/src/com/intellij/application/options/editor/EditorOptionsPanel.form b/platform/lang-impl/src/com/intellij/application/options/editor/EditorOptionsPanel.form index f3b78745f7ed..506cf2ab5f6f 100644 --- a/platform/lang-impl/src/com/intellij/application/options/editor/EditorOptionsPanel.form +++ b/platform/lang-impl/src/com/intellij/application/options/editor/EditorOptionsPanel.form @@ -100,7 +100,7 @@ - + @@ -137,14 +137,6 @@ - - - - - - - - @@ -155,16 +147,6 @@ - - - - - - - - - - @@ -438,7 +420,7 @@ - + @@ -451,7 +433,7 @@ - + @@ -463,17 +445,9 @@ - - - - - - - - - + @@ -481,7 +455,7 @@ - + @@ -492,7 +466,7 @@ - + @@ -503,7 +477,7 @@ - + diff --git a/platform/lang-impl/src/com/intellij/application/options/editor/EditorOptionsPanel.java b/platform/lang-impl/src/com/intellij/application/options/editor/EditorOptionsPanel.java index 22bf42f8da40..f8a8e8595d77 100644 --- a/platform/lang-impl/src/com/intellij/application/options/editor/EditorOptionsPanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/editor/EditorOptionsPanel.java @@ -73,7 +73,6 @@ public class EditorOptionsPanel { private JCheckBox myCbCaretInsideTabs; private JTextField myRecentFilesLimitField; - private JTextField myCommandsHistoryLimitField; private JCheckBox myCbHighlightScope; @@ -93,7 +92,6 @@ public class EditorOptionsPanel { private JCheckBox myShowNotificationAfterReformatCodeCheckBox; private JCheckBox myShowNotificationAfterOptimizeImportsCheckBox; private JCheckBox myCbUseSoftWrapsAtEditor; - private JCheckBox myCbUseSoftWrapsAtConsole; private JCheckBox myCbUseCustomSoftWrapIndent; private JTextField myCustomSoftWrapIndent; private JLabel myCustomSoftWrapIndentLabel; @@ -180,7 +178,6 @@ public class EditorOptionsPanel { // Virtual space myCbUseSoftWrapsAtEditor.setSelected(editorSettings.isUseSoftWraps(SoftWrapAppliancePlaces.MAIN_EDITOR)); - myCbUseSoftWrapsAtConsole.setSelected(editorSettings.isUseSoftWraps(SoftWrapAppliancePlaces.CONSOLE)); myCbUseCustomSoftWrapIndent.setSelected(editorSettings.isUseCustomSoftWrapIndent()); myCustomSoftWrapIndent.setText(Integer.toString(editorSettings.getCustomSoftWrapIndent())); myCbShowSoftWrapsOnlyOnCaretLine.setSelected(!editorSettings.isAllSoftWrapsShown()); @@ -223,7 +220,6 @@ public class EditorOptionsPanel { myRecentFilesLimitField.setText(Integer.toString(uiSettings.RECENT_FILES_LIMIT)); - myCommandsHistoryLimitField.setText(Integer.toString(uiSettings.CONSOLE_COMMAND_HISTORY_LIMIT)); myCbRenameLocalVariablesInplace.setSelected(editorSettings.isVariableInplaceRenameEnabled()); myPreselectCheckBox.setSelected(editorSettings.isPreselectRename()); @@ -289,7 +285,6 @@ public class EditorOptionsPanel { // Virtual space editorSettings.setUseSoftWraps(myCbUseSoftWrapsAtEditor.isSelected(), SoftWrapAppliancePlaces.MAIN_EDITOR); - editorSettings.setUseSoftWraps(myCbUseSoftWrapsAtConsole.isSelected(), SoftWrapAppliancePlaces.CONSOLE); editorSettings.setUseCustomSoftWrapIndent(myCbUseCustomSoftWrapIndent.isSelected()); editorSettings.setCustomSoftWrapIndent(getCustomSoftWrapIndent()); editorSettings.setAllSoftwrapsShown(!myCbShowSoftWrapsOnlyOnCaretLine.isSelected()); @@ -373,7 +368,6 @@ public class EditorOptionsPanel { if(uiSettingsChanged){ uiSettings.fireUISettingsChanged(); } - uiSettings.CONSOLE_COMMAND_HISTORY_LIMIT = StringUtil.parseInt(myCommandsHistoryLimitField.getText(), uiSettings.CONSOLE_COMMAND_HISTORY_LIMIT); myErrorHighlightingPanel.apply(); @@ -460,7 +454,6 @@ public class EditorOptionsPanel { // Virtual space isModified |= isModified(myCbUseSoftWrapsAtEditor, editorSettings.isUseSoftWraps(SoftWrapAppliancePlaces.MAIN_EDITOR)); - isModified |= isModified(myCbUseSoftWrapsAtConsole, editorSettings.isUseSoftWraps(SoftWrapAppliancePlaces.CONSOLE)); isModified |= isModified(myCbUseCustomSoftWrapIndent, editorSettings.isUseCustomSoftWrapIndent()); isModified |= editorSettings.getCustomSoftWrapIndent() != getCustomSoftWrapIndent(); isModified |= isModified(myCbShowSoftWrapsOnlyOnCaretLine, !editorSettings.isAllSoftWrapsShown()); @@ -494,7 +487,6 @@ public class EditorOptionsPanel { isModified |= isModified(myRecentFilesLimitField, UISettings.getInstance().RECENT_FILES_LIMIT); - isModified |= isModified(myCommandsHistoryLimitField, UISettings.getInstance().CONSOLE_COMMAND_HISTORY_LIMIT); isModified |= isModified(myCbRenameLocalVariablesInplace, editorSettings.isVariableInplaceRenameEnabled()); isModified |= isModified(myPreselectCheckBox, editorSettings.isPreselectRename()); isModified |= isModified(myShowInlineDialogForCheckBox, editorSettings.isShowInlineLocalDialog()); @@ -573,12 +565,11 @@ public class EditorOptionsPanel { } }; myCbUseSoftWrapsAtEditor.addItemListener(listener); - myCbUseSoftWrapsAtConsole.addItemListener(listener); myCbUseCustomSoftWrapIndent.addItemListener(listener); } private void updateSoftWrapSettingsRepresentation() { - boolean softWrapsEnabled = myCbUseSoftWrapsAtEditor.isSelected() || myCbUseSoftWrapsAtConsole.isSelected(); + boolean softWrapsEnabled = myCbUseSoftWrapsAtEditor.isSelected(); myCbUseCustomSoftWrapIndent.setEnabled(softWrapsEnabled); myCustomSoftWrapIndent.setEnabled(myCbUseCustomSoftWrapIndent.isEnabled() && myCbUseCustomSoftWrapIndent.isSelected()); myCustomSoftWrapIndentLabel.setEnabled(myCustomSoftWrapIndent.isEnabled()); diff --git a/platform/lang-impl/src/com/intellij/execution/console/ConsoleConfigurable.java b/platform/lang-impl/src/com/intellij/execution/console/ConsoleConfigurable.java new file mode 100644 index 000000000000..a143b387b639 --- /dev/null +++ b/platform/lang-impl/src/com/intellij/execution/console/ConsoleConfigurable.java @@ -0,0 +1,271 @@ +package com.intellij.execution.console; + +import com.intellij.execution.impl.ConsoleBuffer; +import com.intellij.ide.ui.UISettings; +import com.intellij.openapi.application.ApplicationBundle; +import com.intellij.openapi.editor.ex.EditorSettingsExternalizable; +import com.intellij.openapi.editor.impl.softwrap.SoftWrapAppliancePlaces; +import com.intellij.openapi.options.Configurable; +import com.intellij.openapi.options.ConfigurationException; +import com.intellij.openapi.options.SearchableConfigurable; +import com.intellij.openapi.ui.InputValidatorEx; +import com.intellij.openapi.ui.Messages; +import com.intellij.openapi.ui.Splitter; +import com.intellij.openapi.util.text.StringUtil; +import com.intellij.ui.AddEditDeleteListPanel; +import com.intellij.util.ui.GridBag; +import org.jetbrains.annotations.Nls; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import javax.swing.*; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import java.awt.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * @author peter + */ +public class ConsoleConfigurable implements SearchableConfigurable, Configurable.NoScroll { + private JPanel myMainComponent; + private JCheckBox myCbUseSoftWrapsAtConsole; + private JTextField myCommandsHistoryLimitField; + private JCheckBox myCbOverrideConsoleCycleBufferSize; + private JTextField myConsoleCycleBufferSizeField; + + + private MyAddDeleteListPanel myPositivePanel; + private MyAddDeleteListPanel myNegativePanel; + private final ConsoleFoldingSettings mySettings = ConsoleFoldingSettings.getSettings(); + + @Override + public JComponent createComponent() { + if (myMainComponent == null) { + myMainComponent = new JPanel(new BorderLayout()); + myCbUseSoftWrapsAtConsole = new JCheckBox(ApplicationBundle.message("checkbox.use.soft.wraps.at.console"), false); + myCommandsHistoryLimitField = new JTextField(3); + myCbOverrideConsoleCycleBufferSize = new JCheckBox(ApplicationBundle.message("checkbox.override.console.cycle.buffer.size", String.valueOf(ConsoleBuffer.getLegacyCycleBufferSize() / 1024)), false); + myCbOverrideConsoleCycleBufferSize.addChangeListener(new ChangeListener(){ + @Override + public void stateChanged(ChangeEvent e) { + myConsoleCycleBufferSizeField.setEnabled(myCbOverrideConsoleCycleBufferSize.isSelected()); + } + }); + myConsoleCycleBufferSizeField = new JTextField(3); + + JPanel northPanel = new JPanel(new GridBagLayout()); + GridBag gridBag = new GridBag(); + gridBag.anchor(GridBagConstraints.WEST).setDefaultAnchor(GridBagConstraints.WEST); + northPanel + .add(myCbUseSoftWrapsAtConsole, + gridBag.nextLine().next()); + northPanel.add(Box.createHorizontalGlue(), gridBag.next().coverLine()); + northPanel.add(new JLabel(ApplicationBundle.message("editbox.console.history.limit")), gridBag.nextLine().next()); + northPanel.add(myCommandsHistoryLimitField, gridBag.next()); + if (ConsoleBuffer.useCycleBuffer()) { + northPanel.add(myCbOverrideConsoleCycleBufferSize, gridBag.nextLine().next()); + northPanel.add(myConsoleCycleBufferSizeField, gridBag.next()); + } + if (!editFoldingsOnly()) { + JPanel wrapper = new JPanel(new BorderLayout()); + wrapper.add(northPanel, BorderLayout.WEST); + myMainComponent.add(wrapper, BorderLayout.NORTH); + } + Splitter splitter = new Splitter(true); + myMainComponent.add(splitter, BorderLayout.CENTER); + myPositivePanel = + new MyAddDeleteListPanel("Fold console lines that contain", "Enter a substring of a console line you'd like to see folded:"); + myNegativePanel = new MyAddDeleteListPanel("Exceptions", "Enter a substring of a console line you don't want to fold:"); + splitter.setFirstComponent(myPositivePanel); + splitter.setSecondComponent(myNegativePanel); + + myPositivePanel.getEmptyText().setText("Fold nothing"); + myNegativePanel.getEmptyText().setText("No exceptions"); + } + return myMainComponent; + } + + protected boolean editFoldingsOnly() { + return false; + } + + public void addRule(@NotNull String rule) { + myPositivePanel.addRule(rule); + } + + @Override + public boolean isModified() { + EditorSettingsExternalizable editorSettings = EditorSettingsExternalizable.getInstance(); + boolean isModified = !Arrays.asList(myNegativePanel.getListItems()).equals(mySettings.getNegativePatterns()); + isModified |= !Arrays.asList(myPositivePanel.getListItems()).equals(mySettings.getPositivePatterns()); + isModified |= isModified(myCbUseSoftWrapsAtConsole, editorSettings.isUseSoftWraps(SoftWrapAppliancePlaces.CONSOLE)); + isModified |= isModified(myCommandsHistoryLimitField, UISettings.getInstance().CONSOLE_COMMAND_HISTORY_LIMIT); + if (ConsoleBuffer.useCycleBuffer()) { + isModified |= isModified(myCbOverrideConsoleCycleBufferSize, UISettings.getInstance().OVERRIDE_CONSOLE_CYCLE_BUFFER_SIZE); + isModified |= isModified(myConsoleCycleBufferSizeField, UISettings.getInstance().CONSOLE_CYCLE_BUFFER_SIZE_KB); + } + + return isModified; + } + + private static boolean isModified(JToggleButton checkBox, boolean value) { + return checkBox.isSelected() != value; + } + + private static boolean isModified(JTextField textField, int value) { + try { + int fieldValue = Integer.parseInt(textField.getText().trim()); + return fieldValue != value; + } + catch (NumberFormatException e) { + return false; + } + } + + @Override + public void apply() throws ConfigurationException { + EditorSettingsExternalizable editorSettings = EditorSettingsExternalizable.getInstance(); + UISettings uiSettings = UISettings.getInstance(); + + editorSettings.setUseSoftWraps(myCbUseSoftWrapsAtConsole.isSelected(), SoftWrapAppliancePlaces.CONSOLE); + boolean uiSettingsChanged = false; + if (isModified(myCommandsHistoryLimitField, uiSettings.CONSOLE_COMMAND_HISTORY_LIMIT)) { + uiSettings.CONSOLE_COMMAND_HISTORY_LIMIT = Math.max(0, Math.min(1000, Integer.parseInt(myCommandsHistoryLimitField.getText().trim()))); + uiSettingsChanged = true; + } + if (ConsoleBuffer.useCycleBuffer()) { + if (isModified(myCbOverrideConsoleCycleBufferSize, uiSettings.OVERRIDE_CONSOLE_CYCLE_BUFFER_SIZE)) { + uiSettings.OVERRIDE_CONSOLE_CYCLE_BUFFER_SIZE = myCbOverrideConsoleCycleBufferSize.isSelected(); + uiSettingsChanged = true; + } + if (isModified(myConsoleCycleBufferSizeField, uiSettings.CONSOLE_CYCLE_BUFFER_SIZE_KB)) { + uiSettings.CONSOLE_CYCLE_BUFFER_SIZE_KB = Math.max(0, Math.min(1024*100, Integer.parseInt(myConsoleCycleBufferSizeField.getText().trim()))); + uiSettingsChanged = true; + } + } + if (uiSettingsChanged) { + uiSettings.fireUISettingsChanged(); + } + + + myNegativePanel.applyTo(mySettings.getNegativePatterns()); + myPositivePanel.applyTo(mySettings.getPositivePatterns()); + } + + @Override + public void reset() { + EditorSettingsExternalizable editorSettings = EditorSettingsExternalizable.getInstance(); + UISettings uiSettings = UISettings.getInstance(); + + myCbUseSoftWrapsAtConsole.setSelected(editorSettings.isUseSoftWraps(SoftWrapAppliancePlaces.CONSOLE)); + myCommandsHistoryLimitField.setText(Integer.toString(uiSettings.CONSOLE_COMMAND_HISTORY_LIMIT)); + + myCbOverrideConsoleCycleBufferSize.setEnabled(ConsoleBuffer.useCycleBuffer()); + myCbOverrideConsoleCycleBufferSize.setSelected(uiSettings.OVERRIDE_CONSOLE_CYCLE_BUFFER_SIZE); + myConsoleCycleBufferSizeField.setEnabled(ConsoleBuffer.useCycleBuffer() && uiSettings.OVERRIDE_CONSOLE_CYCLE_BUFFER_SIZE); + myConsoleCycleBufferSizeField.setText(Integer.toString(uiSettings.CONSOLE_CYCLE_BUFFER_SIZE_KB)); + + + myNegativePanel.resetFrom(mySettings.getNegativePatterns()); + myPositivePanel.resetFrom(mySettings.getPositivePatterns()); + } + + @Override + public void disposeUIResources() { + myMainComponent = null; + myNegativePanel = null; + myPositivePanel = null; + } + + @Override + @NotNull + public String getId() { + return getDisplayName(); + } + + @Override + public Runnable enableSearch(String option) { + return null; + } + + @Override + @Nls + public String getDisplayName() { + return "Console Folding"; + } + + @Override + public String getHelpTopic() { + return "reference.idesettings.console.folding"; + } + + private static class MyAddDeleteListPanel extends AddEditDeleteListPanel { + private final String myQuery; + + public MyAddDeleteListPanel(String title, String query) { + super(title, new ArrayList()); + myQuery = query; + } + + @Override + @Nullable + protected String findItemToAdd() { + return showEditDialog(""); + } + + @Nullable + private String showEditDialog(final String initialValue) { + return Messages.showInputDialog(this, myQuery, "Folding Pattern", Messages.getQuestionIcon(), initialValue, new InputValidatorEx() { + @Override + public boolean checkInput(String inputString) { + return !StringUtil.isEmpty(inputString); + } + + @Override + public boolean canClose(String inputString) { + return !StringUtil.isEmpty(inputString); + } + + @Nullable + @Override + public String getErrorText(String inputString) { + if (!checkInput(inputString)) { + return "Console folding rule string cannot be empty"; + } + return null; + } + }); + } + + void resetFrom(List patterns) { + myListModel.clear(); + for (String pattern : patterns) { + myListModel.addElement(pattern); + } + } + + void applyTo(List patterns) { + patterns.clear(); + for (Object o : getListItems()) { + patterns.add((String)o); + } + } + + public void addRule(String rule) { + addElement(rule); + } + + @Override + public void setBounds(int x, int y, int width, int height) { + super.setBounds(x, y, width, height); + } + + @Override + protected String editSelectedItem(String item) { + return showEditDialog(item); + } + } +} diff --git a/platform/lang-impl/src/com/intellij/execution/console/ConsoleFoldingConfigurable.java b/platform/lang-impl/src/com/intellij/execution/console/ConsoleFoldingConfigurable.java deleted file mode 100644 index bf1195b36296..000000000000 --- a/platform/lang-impl/src/com/intellij/execution/console/ConsoleFoldingConfigurable.java +++ /dev/null @@ -1,166 +0,0 @@ -package com.intellij.execution.console; - -import com.intellij.openapi.options.Configurable; -import com.intellij.openapi.options.ConfigurationException; -import com.intellij.openapi.options.SearchableConfigurable; -import com.intellij.openapi.ui.InputValidatorEx; -import com.intellij.openapi.ui.Messages; -import com.intellij.openapi.ui.Splitter; -import com.intellij.openapi.util.text.StringUtil; -import com.intellij.ui.AddEditDeleteListPanel; -import org.jetbrains.annotations.Nls; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import javax.swing.*; -import java.awt.*; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -/** - * @author peter - */ -public class ConsoleFoldingConfigurable implements SearchableConfigurable, Configurable.NoScroll { - private JPanel myMainComponent; - private MyAddDeleteListPanel myPositivePanel; - private MyAddDeleteListPanel myNegativePanel; - private final ConsoleFoldingSettings mySettings = ConsoleFoldingSettings.getSettings(); - - @Override - public JComponent createComponent() { - if (myMainComponent == null) { - myMainComponent = new JPanel(new BorderLayout()); - Splitter splitter = new Splitter(true); - myMainComponent.add(splitter); - myPositivePanel = - new MyAddDeleteListPanel("Fold console lines that contain", "Enter a substring of a console line you'd like to see folded:"); - myNegativePanel = new MyAddDeleteListPanel("Exceptions", "Enter a substring of a console line you don't want to fold:"); - splitter.setFirstComponent(myPositivePanel); - splitter.setSecondComponent(myNegativePanel); - - myPositivePanel.getEmptyText().setText("Fold nothing"); - myNegativePanel.getEmptyText().setText("No exceptions"); - } - return myMainComponent; - } - - public void addRule(@NotNull String rule) { - myPositivePanel.addRule(rule); - } - - @Override - public boolean isModified() { - return !Arrays.asList(myNegativePanel.getListItems()).equals(mySettings.getNegativePatterns()) || - !Arrays.asList(myPositivePanel.getListItems()).equals(mySettings.getPositivePatterns()); - - } - - @Override - public void apply() throws ConfigurationException { - myNegativePanel.applyTo(mySettings.getNegativePatterns()); - myPositivePanel.applyTo(mySettings.getPositivePatterns()); - } - - @Override - public void reset() { - myNegativePanel.resetFrom(mySettings.getNegativePatterns()); - myPositivePanel.resetFrom(mySettings.getPositivePatterns()); - } - - @Override - public void disposeUIResources() { - myMainComponent = null; - myNegativePanel = null; - myPositivePanel = null; - } - - @Override - @NotNull - public String getId() { - return getDisplayName(); - } - - @Override - public Runnable enableSearch(String option) { - return null; - } - - @Override - @Nls - public String getDisplayName() { - return "Console Folding"; - } - - @Override - public String getHelpTopic() { - return "reference.idesettings.console.folding"; - } - - private static class MyAddDeleteListPanel extends AddEditDeleteListPanel { - private final String myQuery; - - public MyAddDeleteListPanel(String title, String query) { - super(title, new ArrayList()); - myQuery = query; - } - - @Override - @Nullable - protected String findItemToAdd() { - return showEditDialog(""); - } - - @Nullable - private String showEditDialog(final String initialValue) { - return Messages.showInputDialog(this, myQuery, "Folding Pattern", Messages.getQuestionIcon(), initialValue, new InputValidatorEx() { - @Override - public boolean checkInput(String inputString) { - return !StringUtil.isEmpty(inputString); - } - - @Override - public boolean canClose(String inputString) { - return !StringUtil.isEmpty(inputString); - } - - @Nullable - @Override - public String getErrorText(String inputString) { - if (!checkInput(inputString)) { - return "Console folding rule string cannot be empty"; - } - return null; - } - }); - } - - void resetFrom(List patterns) { - myListModel.clear(); - for (String pattern : patterns) { - myListModel.addElement(pattern); - } - } - - void applyTo(List patterns) { - patterns.clear(); - for (Object o : getListItems()) { - patterns.add((String)o); - } - } - - public void addRule(String rule) { - addElement(rule); - } - - @Override - public void setBounds(int x, int y, int width, int height) { - super.setBounds(x, y, width, height); - } - - @Override - protected String editSelectedItem(String item) { - return showEditDialog(item); - } - } -} diff --git a/platform/lang-impl/src/com/intellij/execution/console/FoldLinesLikeThis.java b/platform/lang-impl/src/com/intellij/execution/console/FoldLinesLikeThis.java index 899b9dfa2780..fdefc55da6b4 100644 --- a/platform/lang-impl/src/com/intellij/execution/console/FoldLinesLikeThis.java +++ b/platform/lang-impl/src/com/intellij/execution/console/FoldLinesLikeThis.java @@ -62,7 +62,12 @@ public class FoldLinesLikeThis extends DumbAwareAction { assert editor != null; final String selection = getSingleLineSelection(editor); assert selection != null; - ShowSettingsUtil.getInstance().editConfigurable(editor.getProject(), new ConsoleFoldingConfigurable() { + ShowSettingsUtil.getInstance().editConfigurable(editor.getProject(), new ConsoleConfigurable() { + @Override + protected boolean editFoldingsOnly() { + return true; + } + @Override public void reset() { super.reset(); diff --git a/platform/lang-impl/src/com/intellij/execution/impl/ConsoleBuffer.java b/platform/lang-impl/src/com/intellij/execution/impl/ConsoleBuffer.java index 9fff0501dabb..45d259a526bd 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/ConsoleBuffer.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/ConsoleBuffer.java @@ -17,6 +17,7 @@ package com.intellij.execution.impl; import com.intellij.execution.filters.HyperlinkInfo; import com.intellij.execution.ui.ConsoleViewContentType; +import com.intellij.ide.ui.UISettings; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.util.Pair; @@ -120,11 +121,17 @@ public class ConsoleBuffer { } public static boolean useCycleBuffer() { - final String useCycleBufferProperty = System.getProperty("idea.cycle.buffer.size"); - return useCycleBufferProperty == null || !"disabled".equalsIgnoreCase(useCycleBufferProperty); + return !"disabled".equalsIgnoreCase(System.getProperty("idea.cycle.buffer.size")); } public static int getCycleBufferSize() { + if (UISettings.getInstance().OVERRIDE_CONSOLE_CYCLE_BUFFER_SIZE) { + return UISettings.getInstance().CONSOLE_CYCLE_BUFFER_SIZE_KB * 1024; + } + return getLegacyCycleBufferSize(); + } + + public static int getLegacyCycleBufferSize() { String cycleBufferSizeProperty = System.getProperty("idea.cycle.buffer.size"); if (cycleBufferSizeProperty == null) return 1024 * 1024; try { diff --git a/platform/platform-resources-en/src/messages/ApplicationBundle.properties b/platform/platform-resources-en/src/messages/ApplicationBundle.properties index bd6fdca56f44..813ce4e8b6a7 100644 --- a/platform/platform-resources-en/src/messages/ApplicationBundle.properties +++ b/platform/platform-resources-en/src/messages/ApplicationBundle.properties @@ -409,6 +409,7 @@ checkbox.show.quick.doc.on.mouse.over=Show quick doc on mouse over element (ms): group.limits=Limits editbox.recent.files.limit=Recent files limit: editbox.console.history.limit=Console commands history size: +checkbox.override.console.cycle.buffer.size=Override console cycle buffer size ({0} KB) editbox.maximum.number.of.contents.to.keep.in.clipboard=Maximum number of contents to keep in clipboard: group.brace.highlighting=Highlight on Caret Movement checkbox.highlight.matched.brace=Highlight matched brace diff --git a/resources/src/idea/RichPlatformPlugin.xml b/resources/src/idea/RichPlatformPlugin.xml index f5245a887992..54f1e5ef1175 100644 --- a/resources/src/idea/RichPlatformPlugin.xml +++ b/resources/src/idea/RichPlatformPlugin.xml @@ -262,8 +262,8 @@ - + diff --git a/updater/testData/bin/idea.properties b/updater/testData/bin/idea.properties index 37bc736fb833..21dc627b2897 100644 --- a/updater/testData/bin/idea.properties +++ b/updater/testData/bin/idea.properties @@ -1,4 +1,4 @@ -# Set up IDEA_PROPERTIES environment variable to specify custom location of this properties file like +I# Set up IDEA_PROPERTIES environment variable to specify custom location of this properties file like # SET IDEA_PROPERTIES=c:\ideaconfig\idea.properties # before launching idea. # If not specified it is searched according following sequence (first successful is used). -- 2.23.3