From a5575d520f46bbca2b68d76b5335b1f1ca62d5a2 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Thu, 21 Jan 2010 14:40:58 +0300 Subject: [PATCH] reformat code confirmation --- .../options/editor/EditorOptions.java | 8 +- .../options/editor/EditorOptionsPanel.form | 372 ++++++++++-------- .../options/editor/EditorOptionsPanel.java | 13 +- .../codeInsight/actions/LayoutCodeDialog.java | 38 +- .../actions/OptimizeImportsAction.java | 9 +- .../actions/ReformatCodeAction.java | 82 ++-- .../actions/ReformatFilesDialog.java | 2 +- .../openapi/ui/popup/BalloonBuilder.java | 3 + .../openapi/ui/popup/JBPopupFactory.java | 5 +- .../com/intellij/util/ui/OptionsDialog.java | 15 +- .../ex/EditorSettingsExternalizable.java | 9 +- .../intellij/ui/popup/PopupFactoryImpl.java | 8 + .../src/messages/ApplicationBundle.properties | 2 +- 13 files changed, 358 insertions(+), 208 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/application/options/editor/EditorOptions.java b/platform/lang-impl/src/com/intellij/application/options/editor/EditorOptions.java index 51f9e891bd46..155492aca83c 100644 --- a/platform/lang-impl/src/com/intellij/application/options/editor/EditorOptions.java +++ b/platform/lang-impl/src/com/intellij/application/options/editor/EditorOptions.java @@ -22,10 +22,14 @@ import com.intellij.openapi.options.Configurable; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.options.SearchableConfigurable; import com.intellij.openapi.util.IconLoader; +import org.jetbrains.annotations.NonNls; import javax.swing.*; public class EditorOptions implements SearchableConfigurable.Parent { + + @NonNls public static final String ID = "preferences.editor"; + private EditorOptionsPanel myEditorOptionsPanel; public Configurable[] getConfigurables() { @@ -41,11 +45,11 @@ public class EditorOptions implements SearchableConfigurable.Parent { } public String getHelpTopic() { - return "preferences.editor"; + return ID; } public String getId() { - return getHelpTopic(); + return ID; } public Runnable enableSearch(final String option) { 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 1be12d0d8c7c..df44f0ec4488 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 @@ -2,7 +2,7 @@
- + @@ -15,10 +15,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + @@ -49,123 +174,29 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + + + - + + + @@ -173,7 +204,9 @@ - + + + @@ -187,77 +220,102 @@ + + + + + + + - + - + - + - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 ea34fb6280e2..755c5039f92e 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 @@ -70,6 +70,8 @@ public class EditorOptionsPanel { private JCheckBox myCbRenameLocalVariablesInplace; private JCheckBox myCbHighlightIdentifierUnderCaret; private JCheckBox myCbEnsureBlankLineBeforeCheckBox; + private JCheckBox myShowReformatCodeDialogCheckBox; + private JCheckBox myShowOptimizeImportsDialogCheckBox; private final ErrorHighlightingPanel myErrorHighlightingPanel = new ErrorHighlightingPanel(); private final MyConfigurable myConfigurable; @@ -148,6 +150,9 @@ public class EditorOptionsPanel { myCbRenameLocalVariablesInplace.setSelected(editorSettings.isVariableInplaceRenameEnabled()); + myShowReformatCodeDialogCheckBox.setSelected(editorSettings.getOptions().SHOW_REFORMAT_DIALOG); + myShowOptimizeImportsDialogCheckBox.setSelected(editorSettings.getOptions().SHOW_OPIMIZE_IMPORTS_DIALOG); + myErrorHighlightingPanel.reset(); } @@ -211,6 +216,9 @@ public class EditorOptionsPanel { editorSettings.setVariableInplaceRenameEnabled(myCbRenameLocalVariablesInplace.isSelected()); + editorSettings.getOptions().SHOW_REFORMAT_DIALOG = myShowReformatCodeDialogCheckBox.isSelected(); + editorSettings.getOptions().SHOW_OPIMIZE_IMPORTS_DIALOG = myShowOptimizeImportsDialogCheckBox.isSelected(); + reinitAllEditors(); String temp=myRecentFilesLimitField.getText(); @@ -305,7 +313,10 @@ public class EditorOptionsPanel { isModified |= isModified(myRecentFilesLimitField, UISettings.getInstance().RECENT_FILES_LIMIT); isModified |= isModified(myCbRenameLocalVariablesInplace, editorSettings.isVariableInplaceRenameEnabled()); - + + isModified |= isModified(myShowReformatCodeDialogCheckBox, editorSettings.getOptions().SHOW_REFORMAT_DIALOG); + isModified |= isModified(myShowOptimizeImportsDialogCheckBox, editorSettings.getOptions().SHOW_OPIMIZE_IMPORTS_DIALOG); + isModified |= myErrorHighlightingPanel.isModified(); return isModified; } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/actions/LayoutCodeDialog.java b/platform/lang-impl/src/com/intellij/codeInsight/actions/LayoutCodeDialog.java index 1b8b8f6a8aa4..d2e12f531567 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/actions/LayoutCodeDialog.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/actions/LayoutCodeDialog.java @@ -16,6 +16,7 @@ package com.intellij.codeInsight.actions; +import com.intellij.CommonBundle; import com.intellij.codeInsight.CodeInsightBundle; import com.intellij.ide.util.PropertiesComponent; import com.intellij.lang.LanguageImportStatements; @@ -24,11 +25,14 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiFile; +import com.intellij.util.ui.OptionsDialog; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; @@ -42,6 +46,8 @@ public class LayoutCodeDialog extends DialogWrapper { private JRadioButton myRbDirectory; private JCheckBox myCbIncludeSubdirs; private JCheckBox myCbOptimizeImports; + private JCheckBox myDoNotAskMeCheckBox; + public static final @NonNls String OPTIMIZE_IMPORTS_KEY = "LayoutCode.optimizeImports"; private final String myHelpId; @@ -105,9 +111,12 @@ public class LayoutCodeDialog extends DialogWrapper { myCbIncludeSubdirs.setEnabled(myRbDirectory.isSelected()); myCbOptimizeImports.setEnabled( !myRbSelectedText.isSelected() && !(myFile != null && LanguageImportStatements.INSTANCE.forFile(myFile) == null && myRbFile.isSelected())); + + myDoNotAskMeCheckBox.setEnabled(!myRbDirectory.isSelected()); + myRbDirectory.setEnabled(!myDoNotAskMeCheckBox.isSelected()); } - protected JComponent createNorthPanel() { + protected JComponent createCenterPanel() { JPanel panel = new JPanel(new GridBagLayout()); panel.setBorder(BorderFactory.createEmptyBorder(4, 8, 8, 0)); GridBagConstraints gbConstraints = new GridBagConstraints(); @@ -165,19 +174,16 @@ public class LayoutCodeDialog extends DialogWrapper { return panel; } - protected JComponent createCenterPanel() { - JPanel panel = new JPanel(new GridBagLayout()); - - GridBagConstraints gbConstraints = new GridBagConstraints(); - gbConstraints.gridy = 0; - gbConstraints.gridx = 0; - gbConstraints.gridwidth = 1; - gbConstraints.gridheight = 1; - gbConstraints.weightx = 1; - gbConstraints.insets = new Insets(0, 4, 0, 0); - gbConstraints.fill = GridBagConstraints.BOTH; - - return panel; + @Override + protected JComponent createSouthPanel() { + JComponent southPanel = super.createSouthPanel(); + myDoNotAskMeCheckBox = new JCheckBox(CommonBundle.message("dialog.options.do.not.show")); + myDoNotAskMeCheckBox.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + updateState(); + } + }); + return OptionsDialog.addDoNotShowCheckBox(southPanel, myDoNotAskMeCheckBox); } protected Action[] createActions() { @@ -204,6 +210,10 @@ public class LayoutCodeDialog extends DialogWrapper { return myCbOptimizeImports.isSelected(); } + boolean isDoNotAskMe() { + return myDoNotAskMeCheckBox.isSelected(); + } + protected void doOKAction() { super.doOKAction(); setOptimizeImportsOption(isOptimizeImports()); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/actions/OptimizeImportsAction.java b/platform/lang-impl/src/com/intellij/codeInsight/actions/OptimizeImportsAction.java index efc13e6d1cb1..59c18bc50d72 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/actions/OptimizeImportsAction.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/actions/OptimizeImportsAction.java @@ -21,6 +21,7 @@ import com.intellij.lang.LanguageImportStatements; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.editor.ex.EditorSettingsExternalizable; import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.ReadonlyStatusHandler; @@ -104,10 +105,16 @@ public class OptimizeImportsAction extends AnAction { if (ApplicationManager.getApplication().isUnitTestMode()) { includeSubdirectories = processDirectory = false; - } else { + } + else if (!EditorSettingsExternalizable.getInstance().getOptions().SHOW_OPIMIZE_IMPORTS_DIALOG) { + includeSubdirectories = processDirectory = false; + } + else { final LayoutCodeDialog dialog = new LayoutCodeDialog(project, CodeInsightBundle.message("process.optimize.imports"), file, dir, null, HELP_ID); dialog.show(); if (!dialog.isOK()) return; + EditorSettingsExternalizable.getInstance().getOptions().SHOW_OPIMIZE_IMPORTS_DIALOG = !dialog.isDoNotAskMe(); + ReformatCodeAction.updateShowDialogSetting(dialog, "\"Optimize Imports\" dialog disabled"); processDirectory = dialog.isProcessDirectory(); includeSubdirectories = dialog.isIncludeSubdirectories(); } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/actions/ReformatCodeAction.java b/platform/lang-impl/src/com/intellij/codeInsight/actions/ReformatCodeAction.java index 7518be0a4efc..364ddfbb9424 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/actions/ReformatCodeAction.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/actions/ReformatCodeAction.java @@ -16,21 +16,33 @@ package com.intellij.codeInsight.actions; +import com.intellij.application.options.editor.EditorOptions; import com.intellij.codeInsight.CodeInsightBundle; import com.intellij.formatting.FormattingModelBuilder; import com.intellij.lang.LanguageFormatting; +import com.intellij.notification.Notification; +import com.intellij.notification.NotificationListener; +import com.intellij.notification.NotificationType; +import com.intellij.notification.Notifications; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.editor.ex.EditorSettingsExternalizable; import com.intellij.openapi.module.Module; +import com.intellij.openapi.options.ShowSettingsUtil; import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.TextRange; import com.intellij.openapi.vfs.ReadonlyStatusHandler; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.openapi.wm.IdeFrame; +import com.intellij.openapi.wm.ex.WindowManagerEx; import com.intellij.psi.*; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; +import javax.swing.*; +import javax.swing.event.HyperlinkEvent; import java.util.ArrayList; public class ReformatCodeAction extends AnAction implements DumbAware { @@ -125,35 +137,55 @@ public class ReformatCodeAction extends AnAction implements DumbAware { } } - final LayoutCodeDialog dialog = new LayoutCodeDialog(project, CodeInsightBundle.message("process.reformat.code"), file, dir, - hasSelection ? Boolean.TRUE : Boolean.FALSE, HELP_ID); - dialog.show(); - if (!dialog.isOK()) return; + boolean optimizeImports = ReformatFilesDialog.isOptmizeImportsOptionOn(); + if (EditorSettingsExternalizable.getInstance().getOptions().SHOW_REFORMAT_DIALOG) { + final LayoutCodeDialog dialog = new LayoutCodeDialog(project, CodeInsightBundle.message("process.reformat.code"), file, dir, + hasSelection ? Boolean.TRUE : Boolean.FALSE, HELP_ID); + dialog.show(); + if (!dialog.isOK()) return; + EditorSettingsExternalizable.getInstance().getOptions().SHOW_REFORMAT_DIALOG = !dialog.isDoNotAskMe(); + updateShowDialogSetting(dialog, "\"Reformat Code\" dialog disabled"); + optimizeImports = dialog.isOptimizeImports(); + if (dialog.isProcessDirectory()){ + if (optimizeImports) { + new ReformatAndOptimizeImportsProcessor(project, dir, dialog.isIncludeSubdirectories()).run(); + } + else { + new ReformatCodeProcessor(project, dir, dialog.isIncludeSubdirectories()).run(); + } + } + return; + } - final boolean optimizeImports = dialog.isOptimizeImports(); - if (dialog.isProcessDirectory()){ - if (optimizeImports) { - new ReformatAndOptimizeImportsProcessor(project, dir, dialog.isIncludeSubdirectories()).run(); - } - else { - new ReformatCodeProcessor(project, dir, dialog.isIncludeSubdirectories()).run(); - } + final TextRange range; + if (editor != null && editor.getSelectionModel().hasSelection()){ + range = new TextRange(editor.getSelectionModel().getSelectionStart(), editor.getSelectionModel().getSelectionEnd()); } else{ - final TextRange range; - if (editor != null && dialog.isProcessSelectedText()){ - range = new TextRange(editor.getSelectionModel().getSelectionStart(), editor.getSelectionModel().getSelectionEnd()); - } - else{ - range = null; - } + range = null; + } - if (optimizeImports && range == null) { - new ReformatAndOptimizeImportsProcessor(project, file).run(); - } - else { - new ReformatCodeProcessor(project, file, range).run(); - } + if (optimizeImports && range == null) { + new ReformatAndOptimizeImportsProcessor(project, file).run(); + } + else { + new ReformatCodeProcessor(project, file, range).run(); + } + } + + public static void updateShowDialogSetting(LayoutCodeDialog dialog, String title) { + if (dialog.isDoNotAskMe()) { + Notifications.Bus.notify(new Notification("settings", title, + "You can re-enable the dialog on the IDE Settings -> Editor pane", + NotificationType.INFORMATION, new NotificationListener() { + public void hyperlinkUpdate(@NotNull Notification notification, @NotNull HyperlinkEvent e) { + if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { + EditorOptions editorOptions = ShowSettingsUtil.getInstance().findApplicationConfigurable(EditorOptions.class); + IdeFrame ideFrame = WindowManagerEx.getInstanceEx().findFrameFor(null); + ShowSettingsUtil.getInstance().editConfigurable((JFrame)ideFrame, editorOptions); + } + } + })); } } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/actions/ReformatFilesDialog.java b/platform/lang-impl/src/com/intellij/codeInsight/actions/ReformatFilesDialog.java index 322e4adb2ed7..9e22ffa8977b 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/actions/ReformatFilesDialog.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/actions/ReformatFilesDialog.java @@ -47,7 +47,7 @@ public class ReformatFilesDialog extends DialogWrapper { super.doOKAction(); } - private boolean isOptmizeImportsOptionOn() { + static boolean isOptmizeImportsOptionOn() { return Boolean.valueOf(PropertiesComponent.getInstance().getValue(LayoutCodeDialog.OPTIMIZE_IMPORTS_KEY)); } diff --git a/platform/platform-api/src/com/intellij/openapi/ui/popup/BalloonBuilder.java b/platform/platform-api/src/com/intellij/openapi/ui/popup/BalloonBuilder.java index c9967c21564a..eb5eb3803faa 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/popup/BalloonBuilder.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/popup/BalloonBuilder.java @@ -20,6 +20,9 @@ import org.jetbrains.annotations.NotNull; import java.awt.*; import java.awt.event.ActionListener; +/** + * @see JBPopupFactory#createBalloonBuilder(javax.swing.JComponent) + */ public interface BalloonBuilder { @NotNull diff --git a/platform/platform-api/src/com/intellij/openapi/ui/popup/JBPopupFactory.java b/platform/platform-api/src/com/intellij/openapi/ui/popup/JBPopupFactory.java index d2f1e36e72db..398ba2f5b57c 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/popup/JBPopupFactory.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/popup/JBPopupFactory.java @@ -21,6 +21,7 @@ import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.ui.MessageType; import com.intellij.openapi.util.Condition; import com.intellij.ui.awt.RelativePoint; import org.jetbrains.annotations.NotNull; @@ -229,7 +230,9 @@ public abstract class JBPopupFactory { public abstract BalloonBuilder createBalloonBuilder(@NotNull JComponent content); - public abstract BalloonBuilder createHtmlTextBalloonBuilder(@NotNull String htmlContent, @Nullable Icon icon, final Color fillColor, @Nullable HyperlinkListener listener); + public abstract BalloonBuilder createHtmlTextBalloonBuilder(@NotNull String htmlContent, @Nullable Icon icon, Color fillColor, @Nullable HyperlinkListener listener); + + public abstract BalloonBuilder createHtmlTextBalloonBuilder(@NotNull String htmlContent, MessageType messageType, @Nullable HyperlinkListener listener); public abstract JBPopup createMessage(String text); diff --git a/platform/platform-api/src/com/intellij/util/ui/OptionsDialog.java b/platform/platform-api/src/com/intellij/util/ui/OptionsDialog.java index 3b87c57c84a4..f1b84baca9c1 100644 --- a/platform/platform-api/src/com/intellij/util/ui/OptionsDialog.java +++ b/platform/platform-api/src/com/intellij/util/ui/OptionsDialog.java @@ -66,14 +66,21 @@ public abstract class OptionsDialog extends DialogWrapper { return southPanel; } - final JPanel panel = new JPanel(new GridBagLayout()); - panel.add(myCheckBoxDoNotShowDialog, new GridBagConstraints(GridBagConstraints.RELATIVE, 0, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); - panel.add(southPanel, new GridBagConstraints(GridBagConstraints.RELATIVE, 0, 1, 1, 0.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); - myCheckBoxDoNotShowDialog.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 20)); + final JPanel panel = addDoNotShowCheckBox(southPanel, myCheckBoxDoNotShowDialog); myCheckBoxDoNotShowDialog.setSelected(!isToBeShown()); return panel; } + public static JPanel addDoNotShowCheckBox(JComponent southPanel, JCheckBox checkBox) { + final JPanel panel = new JPanel(new GridBagLayout()); + checkBox.setVerticalAlignment(SwingConstants.BOTTOM); + + panel.add(checkBox, new GridBagConstraints(GridBagConstraints.RELATIVE, 0, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(15, 0, 0, 0), 0, 0)); + panel.add(southPanel, new GridBagConstraints(GridBagConstraints.RELATIVE, 0, 1, 1, 0.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); + checkBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 20)); + return panel; + } + public static boolean shiftIsPressed(int inputEventModifiers) { return (inputEventModifiers & Event.SHIFT_MASK) != 0; } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorSettingsExternalizable.java b/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorSettingsExternalizable.java index a229be13cf93..4952f0e270cb 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorSettingsExternalizable.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorSettingsExternalizable.java @@ -38,7 +38,7 @@ import java.nio.charset.Charset; public class EditorSettingsExternalizable implements NamedJDOMExternalizable, ExportableApplicationComponent, Cloneable { //Q: make it interface? - private static class OptionSet implements Cloneable { + public static class OptionSet implements Cloneable { public String LINE_SEPARATOR; public boolean IS_VIRTUAL_SPACE = true; public boolean IS_CARET_INSIDE_TABS; @@ -69,6 +69,9 @@ public class EditorSettingsExternalizable implements NamedJDOMExternalizable, Ex public boolean RENAME_VARIABLES_INPLACE = true; public boolean REFRAIN_FROM_SCROLLING = false; + public boolean SHOW_REFORMAT_DIALOG = true; + public boolean SHOW_OPIMIZE_IMPORTS_DIALOG = true; + public Object clone() { try { return super.clone(); @@ -131,6 +134,10 @@ public class EditorSettingsExternalizable implements NamedJDOMExternalizable, Ex return "editor"; } + public OptionSet getOptions() { + return myOptions; + } + public boolean isRightMarginShown() { return myOptions.IS_RIGHT_MARGIN_SHOWN; } diff --git a/platform/platform-impl/src/com/intellij/ui/popup/PopupFactoryImpl.java b/platform/platform-impl/src/com/intellij/ui/popup/PopupFactoryImpl.java index 88f180e5dee3..885cbdb606d5 100644 --- a/platform/platform-impl/src/com/intellij/ui/popup/PopupFactoryImpl.java +++ b/platform/platform-impl/src/com/intellij/ui/popup/PopupFactoryImpl.java @@ -27,6 +27,7 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.VisualPosition; import com.intellij.openapi.project.Project; +import com.intellij.openapi.ui.MessageType; import com.intellij.openapi.ui.popup.*; import com.intellij.openapi.ui.popup.util.BaseListPopupStep; import com.intellij.openapi.util.Condition; @@ -725,4 +726,11 @@ public class PopupFactoryImpl extends JBPopupFactory { return builder; } + + @Override + public BalloonBuilder createHtmlTextBalloonBuilder(@NotNull String htmlContent, + MessageType messageType, + @Nullable HyperlinkListener listener) { + return createHtmlTextBalloonBuilder(htmlContent, messageType.getDefaultIcon(), messageType.getPopupBackground(), listener); + } } diff --git a/platform/platform-resources-en/src/messages/ApplicationBundle.properties b/platform/platform-resources-en/src/messages/ApplicationBundle.properties index f7ee122452fc..006c78c1f0ba 100644 --- a/platform/platform-resources-en/src/messages/ApplicationBundle.properties +++ b/platform/platform-resources-en/src/messages/ApplicationBundle.properties @@ -307,7 +307,7 @@ group.advanced.mouse.usages=Advanced mouse usages checkbox.enable.ctrl.mousewheel.changes.font.size=Enable Ctrl+MouseWheel changes font size checkbox.enable.ctrl.mousewheel.changes.font.size.macos=Enable Command+MouseWheel changes font size checkbox.enable.drag.n.drop.functionality.in.editor=Enable Drag'n'Drop functionality in editor -checkbox.honor.camelhumps.words.settings.on.double.click=Honor "CamelHumps" words settings
when selecting on double click +checkbox.honor.camelhumps.words.settings.on.double.click=Honor "CamelHumps" words settings when selecting on double click group.smart.keys=Smart Keys checkbox.use.camelhumps.words=Use "CamelHumps" words checkbox.insert.pair.quote=Insert pair quote