From bd56c784349f8f9aa65cc2a58b4f1660915e1886 Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Thu, 29 Sep 2016 20:38:57 +0300 Subject: [PATCH] IDEA-103215 Add automatic word wrap to conditional breakpoint expression modification popup - added a toggle button to the toolbar --- .../evaluate/CodeFragmentInputComponent.java | 17 +++++++++++++++++ .../impl/ui/XDebuggerExpressionEditor.java | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/CodeFragmentInputComponent.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/CodeFragmentInputComponent.java index 37c3a5f1993e..9ca34bd9ea37 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/CodeFragmentInputComponent.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/CodeFragmentInputComponent.java @@ -55,6 +55,7 @@ public class CodeFragmentInputComponent extends EvaluationInputComponent { DefaultActionGroup group = new DefaultActionGroup(); group.add(new HistoryNavigationAction(false, IdeActions.ACTION_PREVIOUS_OCCURENCE, parentDisposable)); group.add(new HistoryNavigationAction(true, IdeActions.ACTION_NEXT_OCCURENCE, parentDisposable)); + group.add(new ToggleSoftWrapAction()); editorPanel.add(ActionManager.getInstance().createActionToolbar(ActionPlaces.UNKNOWN, group, false).getComponent(), BorderLayout.EAST); //myMainPanel.add(new JLabel(XDebuggerBundle.message("xdebugger.label.text.code.fragment")), BorderLayout.NORTH); myMainPanel.add(editorPanel, BorderLayout.CENTER); @@ -83,6 +84,22 @@ public class CodeFragmentInputComponent extends EvaluationInputComponent { splitter.setSecondComponent(resultPanel); } + private class ToggleSoftWrapAction extends ToggleAction { + public ToggleSoftWrapAction() { + copyFrom(ActionManager.getInstance().getAction(IdeActions.ACTION_EDITOR_USE_SOFT_WRAPS)); + } + + @Override + public boolean isSelected(AnActionEvent e) { + return myMultilineEditor.isUseSoftWraps(); + } + + @Override + public void setSelected(AnActionEvent e, boolean state) { + myMultilineEditor.setUseSoftWraps(state); + } + } + private class HistoryNavigationAction extends AnAction { private final boolean myForward; diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebuggerExpressionEditor.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebuggerExpressionEditor.java index 92ee12b2d500..9729c5c3e0fd 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebuggerExpressionEditor.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebuggerExpressionEditor.java @@ -15,6 +15,7 @@ */ package com.intellij.xdebugger.impl.ui; +import com.intellij.ide.util.PropertiesComponent; import com.intellij.lang.Language; import com.intellij.openapi.actionSystem.CommonDataKeys; import com.intellij.openapi.actionSystem.LangDataKeys; @@ -59,7 +60,9 @@ public class XDebuggerExpressionEditor extends XDebuggerEditorBase { @Override protected EditorEx createEditor() { final EditorEx editor = super.createEditor(); + editor.setHorizontalScrollbarVisible(multiline); editor.setVerticalScrollbarVisible(multiline); + editor.getSettings().setUseSoftWraps(isUseSoftWraps()); editor.getColorsScheme().setEditorFontName(getFont().getFontName()); editor.getColorsScheme().setEditorFontSize(getFont().getSize()); return editor; @@ -125,4 +128,18 @@ public class XDebuggerExpressionEditor extends XDebuggerEditorBase { public void selectAll() { myEditorTextField.selectAll(); } + + private static final String SOFT_WRAPS_KEY = "XDebuggerExpressionEditor_Use_Soft_Wraps"; + + public boolean isUseSoftWraps() { + return PropertiesComponent.getInstance().getBoolean(SOFT_WRAPS_KEY); + } + + public void setUseSoftWraps(boolean use) { + PropertiesComponent.getInstance().setValue(SOFT_WRAPS_KEY, use); + Editor editor = getEditor(); + if (editor != null) { + editor.getSettings().setUseSoftWraps(use); + } + } }