From 06f7bc19bbb1a70dcf113b27d82f06af88b537c5 Mon Sep 17 00:00:00 2001 From: "Denis.Zhdanov" Date: Fri, 20 Jul 2012 11:52:17 +0400 Subject: [PATCH] IDEA-66333 Quick documentation lookup on mouse hover Corrected links appliance --- .../navigation/DocPreviewUtil.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/navigation/DocPreviewUtil.java b/platform/lang-impl/src/com/intellij/codeInsight/navigation/DocPreviewUtil.java index 2b951b765701..77994a63d9ae 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/navigation/DocPreviewUtil.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/navigation/DocPreviewUtil.java @@ -44,6 +44,11 @@ public class DocPreviewUtil { private static final Comparator REPLACEMENTS_COMPARATOR = new Comparator() { @Override public int compare(@NotNull String o1, @NotNull String o2) { + String shortName1 = extractShortName(o1); + String shortName2 = extractShortName(o2); + if (!shortName1.equals(shortName2)) { + return shortName1.compareTo(shortName2); + } if (o1.endsWith(o2)) { return -1; } @@ -54,6 +59,11 @@ public class DocPreviewUtil { return o1.compareTo(o2); } } + + private String extractShortName(@NotNull String s) { + int i = s.lastIndexOf('.'); + return i > 0 && i < s.length() - 1 ? s.substring(i + 1) : s; + } }; private DocPreviewUtil() { @@ -79,6 +89,17 @@ public class DocPreviewUtil { // Build links info. Map links = new HashMap(); process(fullText, new LinksCollector(links)); + + // Add short names. + Map toAdd = new HashMap(); + for (Map.Entry entry : links.entrySet()) { + String key = entry.getKey(); + int i = key.lastIndexOf('.'); + if (i > 0 && i < key.length() - 1) { + toAdd.put(key.substring(i + 1), entry.getValue()); + } + } + links.putAll(toAdd); if (qName != null) { links.put(qName, DocumentationManager.PSI_ELEMENT_PROTOCOL + qName); }