From 4253df8a1dbffa761d67dbf9519030ce26f968b7 Mon Sep 17 00:00:00 2001 From: "Vassiliy.Kudryashov" Date: Wed, 6 Aug 2014 11:07:51 +0400 Subject: [PATCH 01/17] IDEA-127557 Maybe it makes sense to use same edit icon (pen), as in the other pages? --- .../src/com/intellij/openapi/keymap/impl/ui/KeymapPanel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/keymap/impl/ui/KeymapPanel.java b/platform/platform-impl/src/com/intellij/openapi/keymap/impl/ui/KeymapPanel.java index b99f19242fa9..75de34dcf9b3 100644 --- a/platform/platform-impl/src/com/intellij/openapi/keymap/impl/ui/KeymapPanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/keymap/impl/ui/KeymapPanel.java @@ -393,7 +393,7 @@ public class KeymapPanel extends JPanel implements SearchableConfigurable, Confi group.add(commonActionsManager.createExpandAllAction(treeExpander, myActionsTree.getTree())); group.add(commonActionsManager.createCollapseAllAction(treeExpander, myActionsTree.getTree())); - group.add(new AnAction("Edit Shortcut", "Edit Shortcut", AllIcons.Actions.Properties) { + group.add(new AnAction("Edit Shortcut", "Edit Shortcut", AllIcons.Actions.Edit) { { registerCustomShortcutSet(new CustomShortcutSet(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0)), myActionsTree.getTree()); } From 052a5df703cfc5601d20a260e37e986e6d24dc47 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Wed, 6 Aug 2014 11:13:18 +0400 Subject: [PATCH 02/17] diff: codereview, @NotNull --- .../intellij/openapi/diff/MergeRequest.java | 2 +- .../mergeTool/DiffRequestFactoryImpl.java | 29 +++++------ .../diff/impl/mergeTool/MergeRequestImpl.java | 49 +++++++++---------- 3 files changed, 38 insertions(+), 42 deletions(-) diff --git a/platform/platform-api/src/com/intellij/openapi/diff/MergeRequest.java b/platform/platform-api/src/com/intellij/openapi/diff/MergeRequest.java index 29243f7b9be0..ce8d56044f96 100644 --- a/platform/platform-api/src/com/intellij/openapi/diff/MergeRequest.java +++ b/platform/platform-api/src/com/intellij/openapi/diff/MergeRequest.java @@ -25,7 +25,7 @@ import org.jetbrains.annotations.Nullable; * @see DiffRequestFactory#createMergeRequest */ public abstract class MergeRequest extends DiffRequest { - protected MergeRequest(Project project) { + protected MergeRequest(@Nullable Project project) { super(project); } diff --git a/platform/platform-impl/src/com/intellij/openapi/diff/impl/mergeTool/DiffRequestFactoryImpl.java b/platform/platform-impl/src/com/intellij/openapi/diff/impl/mergeTool/DiffRequestFactoryImpl.java index 221a082d5367..962a0712465b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/diff/impl/mergeTool/DiffRequestFactoryImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/diff/impl/mergeTool/DiffRequestFactoryImpl.java @@ -28,11 +28,11 @@ import org.jetbrains.annotations.Nullable; public class DiffRequestFactoryImpl extends DiffRequestFactory { - public MergeRequest createMergeRequest(String leftText, - String rightText, - String originalContent, + public MergeRequest createMergeRequest(@NotNull String leftText, + @NotNull String rightText, + @NotNull String originalContent, @NotNull VirtualFile file, - Project project, + @Nullable Project project, @Nullable final ActionButtonPresentation okButtonPresentation, @Nullable final ActionButtonPresentation cancelButtonPresentation) { final Document document = FileDocumentManager.getInstance().getDocument(file); @@ -46,23 +46,20 @@ public class DiffRequestFactoryImpl extends DiffRequestFactory { } } - public MergeRequest create3WayDiffRequest(final String leftText, - final String rightText, - final String originalContent, + public MergeRequest create3WayDiffRequest(@NotNull String leftText, + @NotNull String rightText, + @NotNull String originalContent, @Nullable FileType type, - final Project project, + @Nullable Project project, @Nullable final ActionButtonPresentation okButtonPresentation, @Nullable final ActionButtonPresentation cancelButtonPresentation) { - if (type != null) { - return new MergeRequestImpl(leftText, originalContent, rightText, type, project, okButtonPresentation, cancelButtonPresentation); - } - return new MergeRequestImpl(leftText, originalContent, rightText, project, okButtonPresentation, cancelButtonPresentation); + return new MergeRequestImpl(leftText, originalContent, rightText, type, project, okButtonPresentation, cancelButtonPresentation); } - public MergeRequest create3WayDiffRequest(final String leftText, - final String rightText, - final String originalContent, - final Project project, + public MergeRequest create3WayDiffRequest(@NotNull String leftText, + @NotNull String rightText, + @NotNull String originalContent, + @Nullable Project project, @Nullable final ActionButtonPresentation okButtonPresentation, @Nullable final ActionButtonPresentation cancelButtonPresentation) { return create3WayDiffRequest(leftText, rightText, originalContent, null, project, okButtonPresentation, cancelButtonPresentation); diff --git a/platform/platform-impl/src/com/intellij/openapi/diff/impl/mergeTool/MergeRequestImpl.java b/platform/platform-impl/src/com/intellij/openapi/diff/impl/mergeTool/MergeRequestImpl.java index f6642b720acc..938c1ee7a42d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/diff/impl/mergeTool/MergeRequestImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/diff/impl/mergeTool/MergeRequestImpl.java @@ -47,40 +47,39 @@ public class MergeRequestImpl extends MergeRequest { @Nullable private final ActionButtonPresentation myOkButtonPresentation; @Nullable private final ActionButtonPresentation myCancelButtonPresentation; - public MergeRequestImpl(String left, - MergeVersion base, - String right, - Project project, + public MergeRequestImpl(@NotNull String left, + @NotNull MergeVersion base, + @NotNull String right, + @Nullable Project project, @Nullable final ActionButtonPresentation okButtonPresentation, @Nullable final ActionButtonPresentation cancelButtonPresentation) { this(new SimpleContent(left), new MergeContent(base, project), new SimpleContent(right), project, okButtonPresentation, cancelButtonPresentation); } - public MergeRequestImpl(DiffContent left, - MergeVersion base, - DiffContent right, - Project project, + public MergeRequestImpl(@NotNull DiffContent left, + @NotNull MergeVersion base, + @NotNull DiffContent right, + @Nullable Project project, @Nullable final ActionButtonPresentation okButtonPresentation, @Nullable final ActionButtonPresentation cancelButtonPresentation) { this(left, new MergeContent(base, project), right, project, okButtonPresentation, cancelButtonPresentation); } - public MergeRequestImpl(String left, - String base, - String right, - Project project, + public MergeRequestImpl(@NotNull String left, + @NotNull String base, + @NotNull String right, + @Nullable Project project, @Nullable final ActionButtonPresentation okButtonPresentation, @Nullable final ActionButtonPresentation cancelButtonPresentation) { - this(new SimpleContent(left), new SimpleContent(base), new SimpleContent(right), project, okButtonPresentation, - cancelButtonPresentation); + this(left, base, right, null, project, okButtonPresentation, cancelButtonPresentation); } - public MergeRequestImpl(String left, - String base, - String right, - FileType type, - Project project, + public MergeRequestImpl(@NotNull String left, + @NotNull String base, + @NotNull String right, + @Nullable FileType type, + @Nullable Project project, @Nullable final ActionButtonPresentation okButtonPresentation, @Nullable final ActionButtonPresentation cancelButtonPresentation) { this(new SimpleContent(left, type), @@ -89,10 +88,10 @@ public class MergeRequestImpl extends MergeRequest { project, okButtonPresentation, cancelButtonPresentation); } - private MergeRequestImpl(DiffContent left, - DiffContent base, - DiffContent right, - Project project, + private MergeRequestImpl(@NotNull DiffContent left, + @NotNull DiffContent base, + @NotNull DiffContent right, + @Nullable Project project, @Nullable final ActionButtonPresentation okButtonPresentation, @Nullable final ActionButtonPresentation cancelButtonPresentation) { super(project); @@ -240,11 +239,11 @@ public class MergeRequestImpl extends MergeRequest { } public static class MergeContent extends DiffContent { - private final MergeVersion myTarget; + @NotNull private final MergeVersion myTarget; private final Document myWorkingDocument; private final Project myProject; - public MergeContent(MergeVersion target, Project project) { + public MergeContent(@NotNull MergeVersion target, Project project) { myTarget = target; myProject = project; myWorkingDocument = myTarget.createWorkingDocument(project); From 1752eaa61a7348e8ec136bcc5bb95db167f66685 Mon Sep 17 00:00:00 2001 From: "Vladimir.Orlov" Date: Wed, 6 Aug 2014 11:52:07 +0400 Subject: [PATCH 03/17] updated path to the gant scripts --- python/edu/build/pycharm_edu_build.gant | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/python/edu/build/pycharm_edu_build.gant b/python/edu/build/pycharm_edu_build.gant index bd14541654ec..e1812c2af77a 100644 --- a/python/edu/build/pycharm_edu_build.gant +++ b/python/edu/build/pycharm_edu_build.gant @@ -19,10 +19,10 @@ import static org.jetbrains.jps.idea.IdeaProjectLoader.guessHome setProperty("home", guessHome(this as Script)) -includeTargets << new File("${guessHome(this as Script)}/build/scripts/utils.gant") +includeTargets << new File("${guessHome(this as Script)}/community/build/scripts/utils.gant") // signMacZip locates in ultimate_utils.gant -includeTargets << new File("${guessHome(this)}/build/scripts/ultimate_utils.gant") -includeTargets << new File("${guessHome(this)}/build/scripts/libLicenses.gant") + includeTargets << new File("${guessHome(this)}/build/scripts/ultimate_utils.gant") +includeTargets << new File("${guessHome(this)}/community/build/scripts/libLicenses.gant") requireProperty("buildNumber", requireProperty("build.number", snapshot)) From e2e32e60defee52d28df36e1b6d0a4527f56e604 Mon Sep 17 00:00:00 2001 From: Alexander Lobas Date: Wed, 6 Aug 2014 11:54:00 +0400 Subject: [PATCH 04/17] IDEA-106381 GUI Designer: JComboBoxes list does not populated under JDK7 and works fine under JDK6 --- .../util/src/com/intellij/openapi/util/text/StringUtil.java | 4 ++++ .../src/com/intellij/uiDesigner/PsiPropertiesProvider.java | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java index 181d660503b8..bc37f673bb03 100644 --- a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java +++ b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java @@ -923,6 +923,10 @@ public class StringUtil extends StringUtilRt { } } + public static String defaultIfEmpty(@Nullable String value, String defaultValue) { + return isEmpty(value) ? defaultValue : value; + } + @Contract("null -> false") public static boolean isNotEmpty(@Nullable String s) { return s != null && !s.isEmpty(); diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/PsiPropertiesProvider.java b/plugins/ui-designer/src/com/intellij/uiDesigner/PsiPropertiesProvider.java index 5b8518f0d70b..91b75c91b619 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/PsiPropertiesProvider.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/PsiPropertiesProvider.java @@ -16,6 +16,7 @@ package com.intellij.uiDesigner; import com.intellij.openapi.module.Module; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.util.ClassUtil; @@ -74,7 +75,8 @@ public final class PsiPropertiesProvider implements PropertiesProvider { } final PsiType type = getter.getReturnType(); - final String propertyClassName = type.getCanonicalText(); + String propertyClassName = + StringUtil.defaultIfEmpty(StringUtil.substringBefore(type.getCanonicalText(), "<"), type.getCanonicalText()); LwIntrospectedProperty property = CompiledClassPropertiesProvider.propertyFromClassName(propertyClassName, name); if (property == null) { From d1560cd5b33cc1a95033c670d84af1a37948eef1 Mon Sep 17 00:00:00 2001 From: "Vladimir.Orlov" Date: Wed, 6 Aug 2014 11:57:16 +0400 Subject: [PATCH 05/17] updated path to the gant scripts --- python/edu/build/pycharm_edu_build.gant | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/python/edu/build/pycharm_edu_build.gant b/python/edu/build/pycharm_edu_build.gant index e1812c2af77a..c68ebc568bd4 100644 --- a/python/edu/build/pycharm_edu_build.gant +++ b/python/edu/build/pycharm_edu_build.gant @@ -26,9 +26,9 @@ includeTargets << new File("${guessHome(this)}/community/build/scripts/libLicens requireProperty("buildNumber", requireProperty("build.number", snapshot)) -setProperty("ch", home) -setProperty("pythonCommunityHome", "$home/python") -setProperty("pythonEduHome", "$home/python/edu") +setProperty("ch", "$home/community") +setProperty("pythonCommunityHome", "$ch/python") +setProperty("pythonEduHome", "$ch/python/edu") // load ApplicationInfo.xml properties ant.xmlproperty(file: "$pythonEduHome/resources/idea/PyCharmEduApplicationInfo.xml", collapseAttributes: "true") From 7893da06c0dd7c6773db55c9be5289b107cf0eac Mon Sep 17 00:00:00 2001 From: Rustam Vishnyakov Date: Wed, 6 Aug 2014 11:49:43 +0400 Subject: [PATCH 06/17] Fixed IDEA-128236 codeStyleSettings.xml is always modified (RIGHT_MARGIN position change) --- .../src/com/intellij/psi/codeStyle/CodeStyleSettings.java | 2 +- .../com/intellij/psi/codeStyle/CommonCodeStyleSettings.java | 1 - .../options/codeStyle/OptionTableWithPreviewPanel.java | 3 ++- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettings.java b/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettings.java index 2c44a32d9ace..5a44cdc7e30f 100644 --- a/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettings.java +++ b/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettings.java @@ -56,7 +56,6 @@ public class CodeStyleSettings extends CommonCodeStyleSettings implements Clonea public CodeStyleSettings(boolean loadExtensions) { super(null); - RIGHT_MARGIN = DEFAULT_RIGHT_MARGIN; initTypeToName(); initImportsByDefault(); @@ -244,6 +243,7 @@ public class CodeStyleSettings extends CommonCodeStyleSettings implements Clonea public int INNER_CLASSES_ORDER_WEIGHT = 7; //----------------- WRAPPING --------------------------- + public int RIGHT_MARGIN = 120; public boolean WRAP_WHEN_TYPING_REACHES_RIGHT_MARGIN = false; diff --git a/platform/lang-api/src/com/intellij/psi/codeStyle/CommonCodeStyleSettings.java b/platform/lang-api/src/com/intellij/psi/codeStyle/CommonCodeStyleSettings.java index 20b96cac3920..299d17215fdf 100644 --- a/platform/lang-api/src/com/intellij/psi/codeStyle/CommonCodeStyleSettings.java +++ b/platform/lang-api/src/com/intellij/psi/codeStyle/CommonCodeStyleSettings.java @@ -287,7 +287,6 @@ public class CommonCodeStyleSettings { //----------------- GENERAL -------------------- public int RIGHT_MARGIN = -1; - public final static int DEFAULT_RIGHT_MARGIN = 120; public boolean LINE_COMMENT_AT_FIRST_COLUMN = true; public boolean BLOCK_COMMENT_AT_FIRST_COLUMN = true; diff --git a/platform/lang-impl/src/com/intellij/application/options/codeStyle/OptionTableWithPreviewPanel.java b/platform/lang-impl/src/com/intellij/application/options/codeStyle/OptionTableWithPreviewPanel.java index f978d5f6dcdb..59736bc0e4b2 100644 --- a/platform/lang-impl/src/com/intellij/application/options/codeStyle/OptionTableWithPreviewPanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/codeStyle/OptionTableWithPreviewPanel.java @@ -18,6 +18,7 @@ package com.intellij.application.options.codeStyle; import com.intellij.lang.Language; import com.intellij.openapi.application.ApplicationBundle; import com.intellij.psi.codeStyle.CodeStyleSettings; +import com.intellij.psi.codeStyle.CommonCodeStyleSettings; import com.intellij.psi.codeStyle.CustomCodeStyleSettings; import com.intellij.ui.SpeedSearchComparator; import com.intellij.ui.TreeTableSpeedSearch; @@ -378,7 +379,7 @@ public abstract class OptionTableWithPreviewPanel extends MultilanguageCodeStyle this.groupName = groupName; try { - Class styleSettingsClass = clazz == null ? CodeStyleSettings.class : clazz; + Class styleSettingsClass = clazz == null ? CommonCodeStyleSettings.class : clazz; this.field = styleSettingsClass.getField(fieldName); } catch (NoSuchFieldException e) { From 9083a29c225e0b2156960cee1e715ecc3ebf305a Mon Sep 17 00:00:00 2001 From: "Vladimir.Orlov" Date: Wed, 6 Aug 2014 12:28:22 +0400 Subject: [PATCH 07/17] updated home for python edu build scripts. --- python/edu/build/pycharm_edu_build.gant | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/edu/build/pycharm_edu_build.gant b/python/edu/build/pycharm_edu_build.gant index c68ebc568bd4..436fa4ca1329 100644 --- a/python/edu/build/pycharm_edu_build.gant +++ b/python/edu/build/pycharm_edu_build.gant @@ -17,7 +17,7 @@ import org.jetbrains.jps.LayoutInfo import static org.jetbrains.jps.idea.IdeaProjectLoader.guessHome -setProperty("home", guessHome(this as Script)) +//setProperty("home", guessHome(this as Script)) includeTargets << new File("${guessHome(this as Script)}/community/build/scripts/utils.gant") // signMacZip locates in ultimate_utils.gant From 9b95adb105173ced664ec08ec47d318b8a2ab67c Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Wed, 6 Aug 2014 13:14:33 +0400 Subject: [PATCH 08/17] IDEA-125372 diff: fix NPE we can't provide correct 'canNavigate' because then we'll navigate to the corresponding temporal file, that is not a desired behaviour --- .../openapi/fileEditor/FileEditorManager.java | 2 +- .../openapi/diff/ex/DiffPanelOptions.java | 15 +++++++++------ .../intellij/openapi/diff/impl/DiffPanelImpl.java | 7 ++----- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/platform/platform-api/src/com/intellij/openapi/fileEditor/FileEditorManager.java b/platform/platform-api/src/com/intellij/openapi/fileEditor/FileEditorManager.java index 366f69db9cc6..b9589574059d 100644 --- a/platform/platform-api/src/com/intellij/openapi/fileEditor/FileEditorManager.java +++ b/platform/platform-api/src/com/intellij/openapi/fileEditor/FileEditorManager.java @@ -30,7 +30,7 @@ public abstract class FileEditorManager { public static final Key USE_CURRENT_WINDOW = Key.create("OpenFile.searchForOpen"); - public static FileEditorManager getInstance(Project project) { + public static FileEditorManager getInstance(@NotNull Project project) { return project.getComponent(FileEditorManager.class); } diff --git a/platform/platform-impl/src/com/intellij/openapi/diff/ex/DiffPanelOptions.java b/platform/platform-impl/src/com/intellij/openapi/diff/ex/DiffPanelOptions.java index 538058d2d190..ec7a316357e2 100644 --- a/platform/platform-impl/src/com/intellij/openapi/diff/ex/DiffPanelOptions.java +++ b/platform/platform-impl/src/com/intellij/openapi/diff/ex/DiffPanelOptions.java @@ -23,6 +23,8 @@ import com.intellij.openapi.fileEditor.OpenFileDescriptor; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.ui.DialogWrapperDialog; import com.intellij.openapi.util.Disposer; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.awt.*; @@ -56,25 +58,26 @@ public class DiffPanelOptions { myShowSourcePolicy = showSourcePolicy; } - public void showSource(OpenFileDescriptor descriptor) { + public void showSource(@Nullable OpenFileDescriptor descriptor) { + if (descriptor == null || myDiffPanel.getProject() == null) return; myShowSourcePolicy.showSource(descriptor, myDiffPanel); } public interface ShowSourcePolicy { - void showSource(OpenFileDescriptor descriptor, DiffPanelImpl diffPanel); + void showSource(@NotNull OpenFileDescriptor descriptor, @NotNull DiffPanelImpl diffPanel); ShowSourcePolicy DONT_SHOW = new ShowSourcePolicy() { - public void showSource(OpenFileDescriptor descriptor, DiffPanelImpl diffPanel) {} + public void showSource(@NotNull OpenFileDescriptor descriptor, @NotNull DiffPanelImpl diffPanel) {} }; ShowSourcePolicy OPEN_EDITOR = new ShowSourcePolicy() { - public void showSource(OpenFileDescriptor descriptor, DiffPanelImpl diffPanel) { + public void showSource(@NotNull OpenFileDescriptor descriptor, @NotNull DiffPanelImpl diffPanel) { FileEditorManager.getInstance(diffPanel.getProject()).openTextEditor(descriptor, true); } }; ShowSourcePolicy OPEN_EDITOR_AND_CLOSE_DIFF = new ShowSourcePolicy() { - public void showSource(OpenFileDescriptor descriptor, DiffPanelImpl diffPanel) { + public void showSource(@NotNull OpenFileDescriptor descriptor, @NotNull DiffPanelImpl diffPanel) { OPEN_EDITOR.showSource(descriptor, diffPanel); if (diffPanel.getOwnerWindow() == null) return; Disposer.dispose(diffPanel); @@ -97,7 +100,7 @@ public class DiffPanelOptions { }; ShowSourcePolicy DEFAULT = new ShowSourcePolicy() { - public void showSource(OpenFileDescriptor descriptor, DiffPanelImpl diffPanel) { + public void showSource(@NotNull OpenFileDescriptor descriptor, @NotNull DiffPanelImpl diffPanel) { Window window = diffPanel.getOwnerWindow(); if (window == null) return; else if (window instanceof Frame) OPEN_EDITOR.showSource(descriptor, diffPanel); diff --git a/platform/platform-impl/src/com/intellij/openapi/diff/impl/DiffPanelImpl.java b/platform/platform-impl/src/com/intellij/openapi/diff/impl/DiffPanelImpl.java index 3baff07649aa..8ea3242d9361 100644 --- a/platform/platform-impl/src/com/intellij/openapi/diff/impl/DiffPanelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/diff/impl/DiffPanelImpl.java @@ -612,7 +612,7 @@ public class DiffPanelImpl implements DiffPanelEx, ContentChangeListener, TwoSid return myData.getProject(); } - public void showSource(OpenFileDescriptor descriptor) { + public void showSource(@Nullable OpenFileDescriptor descriptor) { myOptions.showSource(descriptor); } @@ -1009,10 +1009,7 @@ public class DiffPanelImpl implements DiffPanelEx, ContentChangeListener, TwoSid @Override public void navigate(boolean requestFocus) { - final OpenFileDescriptor descriptor = mySide.getCurrentOpenFileDescriptor(); - if (descriptor != null) { - showSource(descriptor); - } + showSource(mySide.getCurrentOpenFileDescriptor()); } } } From e9bcd97216bede97b1fbfc3c3cca9548498f4033 Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Wed, 6 Aug 2014 13:46:22 +0400 Subject: [PATCH 09/17] IDEA-127235 [regression] Changes in ValueDescriptor's names are not reflected --- .../intellij/debugger/engine/JavaStackFrame.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/JavaStackFrame.java b/java/debugger/impl/src/com/intellij/debugger/engine/JavaStackFrame.java index 353619761de0..0d79f463859f 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/JavaStackFrame.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/JavaStackFrame.java @@ -314,8 +314,7 @@ public class JavaStackFrame extends XStackFrame { final Collection argValues = frame.getArgumentValues(); int index = 0; for (Value argValue : argValues) { - final ArgumentValueDescriptorImpl descriptor = myNodeManager.getArgumentValueDescriptor(null, index++, argValue, null); - children.add(JavaValue.create(descriptor, evaluationContext, myNodeManager)); + children.add(createArgumentValue(index++, argValue, null, evaluationContext)); } node.setMessage(MessageDescriptor.LOCAL_VARIABLES_INFO_UNAVAILABLE.getLabel(), XDebuggerUIConstants.INFORMATION_MESSAGE_ICON, SimpleTextAttributes.REGULAR_ATTRIBUTES, null); //myChildren.add(myNodeManager.createMessageNode(MessageDescriptor.LOCAL_VARIABLES_INFO_UNAVAILABLE)); @@ -326,9 +325,7 @@ public class JavaStackFrame extends XStackFrame { try { final Map values = LocalVariablesUtil.fetchValues(frame.getStackFrame(), decompiled); for (DecompiledLocalVariable var : decompiled) { - final Value value = values.get(var); - final ArgumentValueDescriptorImpl descriptor = myNodeManager.getArgumentValueDescriptor(null, var.getSlot(), value, var.getName()); - children.add(JavaValue.create(descriptor, evaluationContext, myNodeManager)); + children.add(createArgumentValue(var.getSlot(), values.get(var), var.getName(), evaluationContext)); } } catch (Exception ex) { @@ -342,6 +339,13 @@ public class JavaStackFrame extends XStackFrame { } } + private JavaValue createArgumentValue(int index, Value value, String name, EvaluationContextImpl evaluationContext) { + ArgumentValueDescriptorImpl descriptor = myNodeManager.getArgumentValueDescriptor(null, index, value, name); + descriptor.setContext(evaluationContext); + descriptor.updateRepresentation(evaluationContext, DescriptorLabelListener.DUMMY_LISTENER); + return JavaValue.create(descriptor, evaluationContext, myNodeManager); + } + protected void superBuildVariables(final EvaluationContextImpl evaluationContext, XValueChildrenList children) throws EvaluateException { final StackFrameProxyImpl frame = getStackFrameProxy(); for (final LocalVariableProxyImpl local : frame.visibleVariables()) { From 476e7d267ae64de40da47ad8e1081272b0fe32c1 Mon Sep 17 00:00:00 2001 From: "Vladimir.Orlov" Date: Wed, 6 Aug 2014 13:52:48 +0400 Subject: [PATCH 10/17] updated path to the gant scripts for pycharm edu. --- python/edu/build/pycharm_edu_build.gant | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/python/edu/build/pycharm_edu_build.gant b/python/edu/build/pycharm_edu_build.gant index 436fa4ca1329..8c857c159874 100644 --- a/python/edu/build/pycharm_edu_build.gant +++ b/python/edu/build/pycharm_edu_build.gant @@ -17,16 +17,16 @@ import org.jetbrains.jps.LayoutInfo import static org.jetbrains.jps.idea.IdeaProjectLoader.guessHome -//setProperty("home", guessHome(this as Script)) +setProperty("home", guessHome(this as Script)) -includeTargets << new File("${guessHome(this as Script)}/community/build/scripts/utils.gant") +includeTargets << new File("${guessHome(this as Script)}/build/scripts/utils.gant") // signMacZip locates in ultimate_utils.gant - includeTargets << new File("${guessHome(this)}/build/scripts/ultimate_utils.gant") -includeTargets << new File("${guessHome(this)}/community/build/scripts/libLicenses.gant") + includeTargets << new File("${guessHome(this)}/ultimate/build/scripts/ultimate_utils.gant") +includeTargets << new File("${guessHome(this)}/build/scripts/libLicenses.gant") requireProperty("buildNumber", requireProperty("build.number", snapshot)) -setProperty("ch", "$home/community") +setProperty("ch", "$home") setProperty("pythonCommunityHome", "$ch/python") setProperty("pythonEduHome", "$ch/python/edu") From a773a6ef1db2d39bc894f19978d2a151b0eb7474 Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Wed, 6 Aug 2014 13:54:03 +0400 Subject: [PATCH 11/17] IDEA-127235 [regression] Changes in ValueDescriptor's names are not reflected --- .../impl/src/com/intellij/debugger/engine/JavaStackFrame.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/JavaStackFrame.java b/java/debugger/impl/src/com/intellij/debugger/engine/JavaStackFrame.java index 0d79f463859f..db28c4bf34a7 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/JavaStackFrame.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/JavaStackFrame.java @@ -341,8 +341,8 @@ public class JavaStackFrame extends XStackFrame { private JavaValue createArgumentValue(int index, Value value, String name, EvaluationContextImpl evaluationContext) { ArgumentValueDescriptorImpl descriptor = myNodeManager.getArgumentValueDescriptor(null, index, value, name); + // setContext is required to calculate correct name descriptor.setContext(evaluationContext); - descriptor.updateRepresentation(evaluationContext, DescriptorLabelListener.DUMMY_LISTENER); return JavaValue.create(descriptor, evaluationContext, myNodeManager); } From 555fd0b68ffe5f4e6a10fabfac8e9ae1f8ac0db2 Mon Sep 17 00:00:00 2001 From: nik Date: Tue, 5 Aug 2014 20:43:11 +0400 Subject: [PATCH 12/17] 'Show Serialized XML' action: show serialization exceptions (EA-55882) --- .../devkit/src/actions/ShowSerializedXmlAction.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/plugins/devkit/src/actions/ShowSerializedXmlAction.java b/plugins/devkit/src/actions/ShowSerializedXmlAction.java index 888042424295..e718eb74989d 100644 --- a/plugins/devkit/src/actions/ShowSerializedXmlAction.java +++ b/plugins/devkit/src/actions/ShowSerializedXmlAction.java @@ -41,6 +41,7 @@ import com.intellij.psi.util.PsiTreeUtil; import com.intellij.util.containers.FList; import com.intellij.util.lang.UrlClassLoader; import com.intellij.util.xmlb.Accessor; +import com.intellij.util.xmlb.XmlSerializationException; import com.intellij.util.xmlb.XmlSerializer; import com.intellij.util.xmlb.XmlSerializerUtil; import org.jdom.Element; @@ -121,7 +122,16 @@ public class ShowSerializedXmlAction extends DumbAwareAction { return; } - final Element element = XmlSerializer.serialize(o); + final Element element; + try { + element = XmlSerializer.serialize(o); + } + catch (XmlSerializationException e) { + LOG.info(e); + Throwable cause = e.getCause(); + Messages.showErrorDialog(project, e.getMessage() + (cause != null ? ": " + cause.getMessage() : ""), CommonBundle.getErrorTitle()); + return; + } final String text = JDOMUtil.writeElement(element, "\n"); Messages.showIdeaMessageDialog(project, text, "Serialized XML for '" + className + "'", new String[]{CommonBundle.getOkButtonText()}, 0, Messages.getInformationIcon(), null); From 619a4d646d7f8c9078e8df4b8f9a2c1423df0bdc Mon Sep 17 00:00:00 2001 From: nik Date: Tue, 5 Aug 2014 20:53:27 +0400 Subject: [PATCH 13/17] upload to AppEngine: show error message in EDT (EA-55438) --- .../appengine/actions/UploadApplicationAction.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/google-app-engine/source/com/intellij/appengine/actions/UploadApplicationAction.java b/plugins/google-app-engine/source/com/intellij/appengine/actions/UploadApplicationAction.java index afe24f134587..e3a7762fa539 100644 --- a/plugins/google-app-engine/source/com/intellij/appengine/actions/UploadApplicationAction.java +++ b/plugins/google-app-engine/source/com/intellij/appengine/actions/UploadApplicationAction.java @@ -21,6 +21,7 @@ import com.intellij.appengine.util.AppEngineUtil; import com.intellij.facet.ProjectFacetManager; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.Messages; import com.intellij.packaging.artifacts.Artifact; @@ -67,8 +68,12 @@ public class UploadApplicationAction extends AnAction { } @Override - public void errorOccurred(@NotNull String errorMessage) { - Messages.showErrorDialog(project, errorMessage, CommonBundle.getErrorTitle()); + public void errorOccurred(@NotNull final String errorMessage) { + ApplicationManager.getApplication().invokeLater(new Runnable() { + public void run() { + Messages.showErrorDialog(project, errorMessage, CommonBundle.getErrorTitle()); + } + }); } }, null); if (uploader != null) { From 198ddacde08b40f751f8ac5aaef2cac56d5945b0 Mon Sep 17 00:00:00 2001 From: "Vassiliy.Kudryashov" Date: Wed, 6 Aug 2014 14:51:53 +0400 Subject: [PATCH 14/17] IDEA-127557 Maybe it makes sense to use same edit icon (pen), as in the other pages? --- .../src/com/intellij/openapi/keymap/impl/ui/KeymapPanel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/keymap/impl/ui/KeymapPanel.java b/platform/platform-impl/src/com/intellij/openapi/keymap/impl/ui/KeymapPanel.java index 75de34dcf9b3..ebb3686969f0 100644 --- a/platform/platform-impl/src/com/intellij/openapi/keymap/impl/ui/KeymapPanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/keymap/impl/ui/KeymapPanel.java @@ -393,7 +393,7 @@ public class KeymapPanel extends JPanel implements SearchableConfigurable, Confi group.add(commonActionsManager.createExpandAllAction(treeExpander, myActionsTree.getTree())); group.add(commonActionsManager.createCollapseAllAction(treeExpander, myActionsTree.getTree())); - group.add(new AnAction("Edit Shortcut", "Edit Shortcut", AllIcons.Actions.Edit) { + group.add(new AnAction("Edit Shortcut", "Edit Shortcut", AllIcons.ToolbarDecorator.Edit) { { registerCustomShortcutSet(new CustomShortcutSet(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0)), myActionsTree.getTree()); } From 3ef357bf7c3eba8026a8ffa0d572a503efba4f13 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Wed, 6 Aug 2014 12:15:40 +0200 Subject: [PATCH 15/17] nullability --- .../com/intellij/execution/ui/RunContentDescriptor.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/platform/lang-api/src/com/intellij/execution/ui/RunContentDescriptor.java b/platform/lang-api/src/com/intellij/execution/ui/RunContentDescriptor.java index efee74b807da..8d4d3b29b088 100644 --- a/platform/lang-api/src/com/intellij/execution/ui/RunContentDescriptor.java +++ b/platform/lang-api/src/com/intellij/execution/ui/RunContentDescriptor.java @@ -142,14 +142,15 @@ public class RunContentDescriptor implements Disposable { return myContent; } - public void setRestarter(Runnable runnable) { - myRestarter = runnable; - } - + @Nullable public Runnable getRestarter() { return myRestarter; } + public void setRestarter(@Nullable Runnable runnable) { + myRestarter = runnable; + } + public boolean isActivateToolWindowWhenAdded() { return myActivateToolWindowWhenAdded; } From 5a689c04eed71345879b326639c43d0559d825f9 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Wed, 6 Aug 2014 12:52:39 +0200 Subject: [PATCH 16/17] nullability --- .../lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java b/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java index f19d92f76bcf..b27a939dd57c 100644 --- a/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java +++ b/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java @@ -74,7 +74,7 @@ public class ProgramRunnerUtil { } public static void executeConfiguration(Project project, - DataContext context, + @Nullable DataContext context, @Nullable RunnerAndConfigurationSettings configuration, Executor executor, ExecutionTarget target, From 92b0a684188b2250dffb54c24396cd96f266db8c Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Wed, 6 Aug 2014 12:54:42 +0200 Subject: [PATCH 17/17] XDebugSession tab must set restarter --- .../com/intellij/execution/runners/RestartAction.java | 9 +++++++++ .../intellij/execution/runners/RunContentBuilder.java | 6 ------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/execution/runners/RestartAction.java b/platform/lang-impl/src/com/intellij/execution/runners/RestartAction.java index 507864126430..20b29c2de994 100644 --- a/platform/lang-impl/src/com/intellij/execution/runners/RestartAction.java +++ b/platform/lang-impl/src/com/intellij/execution/runners/RestartAction.java @@ -61,6 +61,15 @@ public class RestartAction extends FakeRerunAction implements DumbAware, AnActio myDescriptor = descriptor; myExecutor = executor; // see IDEADEV-698 + + if (descriptor.getRestarter() == null) { + descriptor.setRestarter(new Runnable() { + @Override + public void run() { + restart(); + } + }); + } } @Override diff --git a/platform/lang-impl/src/com/intellij/execution/runners/RunContentBuilder.java b/platform/lang-impl/src/com/intellij/execution/runners/RunContentBuilder.java index ab9433e66831..bb6d206f1eb9 100644 --- a/platform/lang-impl/src/com/intellij/execution/runners/RunContentBuilder.java +++ b/platform/lang-impl/src/com/intellij/execution/runners/RunContentBuilder.java @@ -206,12 +206,6 @@ public class RunContentBuilder extends LogConsoleManagerBase { final RestartAction restartAction = new RestartAction(myExecutor, myRunner, contentDescriptor, getEnvironment()); restartAction.registerShortcut(component); actionGroup.add(restartAction); - contentDescriptor.setRestarter(new Runnable() { - @Override - public void run() { - restartAction.restart(); - } - }); if (myExecutionResult instanceof DefaultExecutionResult) { final AnAction[] actions = ((DefaultExecutionResult)myExecutionResult).getRestartActions();