From 05f6018e7bbee1a6f3d7f2c7785638496c2eac8a Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Tue, 5 Sep 2017 20:15:02 +0300 Subject: [PATCH] IDEA-155080 - add soft wrap to context menu --- .../src/idea/LangActions.xml | 5 ++++ .../impl/ui/XDebuggerEditorBase.java | 24 ++++++++++++++++++- .../impl/ui/XDebuggerExpressionEditor.java | 18 +------------- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/platform/platform-resources/src/idea/LangActions.xml b/platform/platform-resources/src/idea/LangActions.xml index a5925a400bd1..eb5f4350b85a 100644 --- a/platform/platform-resources/src/idea/LangActions.xml +++ b/platform/platform-resources/src/idea/LangActions.xml @@ -843,6 +843,11 @@ + + + + + diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebuggerEditorBase.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebuggerEditorBase.java index 274d71161e82..58b8306ada88 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebuggerEditorBase.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebuggerEditorBase.java @@ -17,12 +17,14 @@ package com.intellij.xdebugger.impl.ui; import com.intellij.icons.AllIcons; import com.intellij.ide.DataManager; +import com.intellij.ide.util.PropertiesComponent; import com.intellij.lang.Language; import com.intellij.lang.LanguageUtil; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.editor.actions.AbstractToggleUseSoftWrapsAction; import com.intellij.openapi.editor.ex.EditorEx; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.keymap.KeymapUtil; @@ -456,7 +458,11 @@ public abstract class XDebuggerEditorBase implements Expandable { Editor baseEditor = getEditor(); if (baseEditor != null) { WriteAction.run(() -> baseEditor.getDocument().setText(expressionEditor.getExpression().getExpression())); - copyCaretPosition(expressionEditor.getEditor(), baseEditor); + Editor newEditor = expressionEditor.getEditor(); + if (newEditor != null) { + copyCaretPosition(newEditor, baseEditor); + PropertiesComponent.getInstance().setValue(SOFT_WRAPS_KEY, newEditor.getSoftWrapModel().isSoftWrappingEnabled()); + } } myExpandedPopup = null; return true; @@ -487,6 +493,8 @@ public abstract class XDebuggerEditorBase implements Expandable { EditorEx editor = (EditorEx)expressionEditor.getEditor(); copyCaretPosition(getEditor(), editor); prepareEditor(editor); + editor.getSettings().setUseSoftWraps(isUseSoftWraps()); + editor.setContextMenuGroupId("XDebugger.Evaluate.Code.Fragment.Editor.Popup"); ErrorStripeEditorCustomization.DISABLED.customize(editor); // TODO: copied from ExpandableTextField @@ -560,4 +568,18 @@ public abstract class XDebuggerEditorBase implements Expandable { return isEnabled() ? ENABLED_COLOR : DISABLED_COLOR; } } + + 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) { + AbstractToggleUseSoftWrapsAction.toggleSoftWraps(editor, null, use); + } + } } 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 0a7abe81b614..235f1b1a41a0 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 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,12 +15,10 @@ */ 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; import com.intellij.openapi.editor.Editor; -import com.intellij.openapi.editor.actions.AbstractToggleUseSoftWrapsAction; import com.intellij.openapi.editor.ex.EditorEx; import com.intellij.openapi.editor.ex.util.EditorUtil; import com.intellij.openapi.project.Project; @@ -134,18 +132,4 @@ 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) { - AbstractToggleUseSoftWrapsAction.toggleSoftWraps(editor, null, use); - } - } }