diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonTooltipRendererProvider.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonTooltipRendererProvider.java index c37adbf42774..4451797b3b26 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonTooltipRendererProvider.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonTooltipRendererProvider.java @@ -24,6 +24,7 @@ import com.intellij.codeInsight.daemon.impl.actions.ShowErrorDescriptionAction; import com.intellij.codeInsight.hint.LineTooltipRenderer; import com.intellij.codeInsight.hint.TooltipLinkHandlerEP; import com.intellij.codeInsight.hint.TooltipRenderer; +import com.intellij.codeInspection.ui.DefaultInspectionToolPresentation; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.ex.ErrorStripTooltipRendererProvider; import com.intellij.openapi.editor.impl.TrafficTooltipRenderer; @@ -42,8 +43,6 @@ import javax.swing.*; import java.util.Collection; import java.util.Comparator; import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; public class DaemonTooltipRendererProvider implements ErrorStripTooltipRendererProvider { @NonNls private static final String END_MARKER = ""; @@ -143,20 +142,7 @@ public class DaemonTooltipRendererProvider implements ErrorStripTooltipRendererP if (ref != null) { String description = TooltipLinkHandlerEP.getDescription(ref, editor); if (description != null) { - description = UIUtil.getHtmlBody(description); - final int descriptionEnd = description.indexOf(""); - if (descriptionEnd < 0) { - final Pattern pattern = Pattern.compile(".*Use.*(the (panel|checkbox|checkboxes|field|button|controls).*below).*", Pattern.DOTALL); - final Matcher matcher = pattern.matcher(description); - int startFindIdx = 0; - while (matcher.find(startFindIdx)) { - final int end = matcher.end(1); - startFindIdx = end; - description = description.substring(0, matcher.start(1)) + " inspection settings " + description.substring(end); - } - } else { - description = description.substring(0, descriptionEnd); - } + description = DefaultInspectionToolPresentation.stripUIRefsFromInspectionDescription(UIUtil.getHtmlBody(description)); text += UIUtil.getHtmlBody(problem).replace(DaemonBundle.message("inspection.extended.description"), DaemonBundle.message("inspection.collapse.description")) + END_MARKER + "
" + description + BORDER_LINE; diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ui/Browser.java b/platform/lang-impl/src/com/intellij/codeInspection/ui/Browser.java index 2dc1cf0b1b4c..9db2d9e1afdf 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ui/Browser.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ui/Browser.java @@ -450,7 +450,7 @@ class Browser extends JPanel { if (description == null) { description = underConstruction; } - page.append(UIUtil.getHtmlBody(description)); + page.append(DefaultInspectionToolPresentation.stripUIRefsFromInspectionDescription(UIUtil.getHtmlBody(description))); page.append(""); myHTMLViewer.setText(XmlStringUtil.wrapInHtml(page)); diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ui/DefaultInspectionToolPresentation.java b/platform/lang-impl/src/com/intellij/codeInspection/ui/DefaultInspectionToolPresentation.java index 212489bda65f..fe7c3ab22b81 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ui/DefaultInspectionToolPresentation.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ui/DefaultInspectionToolPresentation.java @@ -51,6 +51,8 @@ import org.jetbrains.annotations.Nullable; import javax.swing.tree.DefaultTreeModel; import java.io.*; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class DefaultInspectionToolPresentation implements ProblemDescriptionsProcessor, InspectionToolPresentation { @NotNull private final InspectionToolWrapper myToolWrapper; @@ -91,6 +93,23 @@ public class DefaultInspectionToolPresentation implements ProblemDescriptionsPro return FileStatus.NOT_CHANGED; } + public static String stripUIRefsFromInspectionDescription(String description) { + final int descriptionEnd = description.indexOf(""); + if (descriptionEnd < 0) { + final Pattern pattern = Pattern.compile(".*Use.*(the (panel|checkbox|checkboxes|field|button|controls).*below).*", Pattern.DOTALL); + final Matcher matcher = pattern.matcher(description); + int startFindIdx = 0; + while (matcher.find(startFindIdx)) { + final int end = matcher.end(1); + startFindIdx = end; + description = description.substring(0, matcher.start(1)) + " inspection settings " + description.substring(end); + } + } else { + description = description.substring(0, descriptionEnd); + } + return description; + } + protected HighlightSeverity getSeverity(@NotNull RefElement element) { final PsiElement psiElement = element.getPointer().getContainingFile(); if (psiElement != null) { diff --git a/resources-en/src/inspectionDescriptions/CanBeFinal.html b/resources-en/src/inspectionDescriptions/CanBeFinal.html index d293049398f2..8caa55327e0b 100644 --- a/resources-en/src/inspectionDescriptions/CanBeFinal.html +++ b/resources-en/src/inspectionDescriptions/CanBeFinal.html @@ -2,6 +2,7 @@
This inspection reports all fields, methods or classes, found in the specified inspection scope, that may have a final modifier added to their declarations.