summaryrefslogtreecommitdiff
path: root/java/java-psi-api/src/com/intellij/psi/PsiNameHelper.java
diff options
context:
space:
mode:
authorJean-Baptiste Queru <jbq@google.com>2013-02-27 09:41:48 -0800
committerJean-Baptiste Queru <jbq@google.com>2013-02-27 09:41:48 -0800
commit1d526b16d476792ca7ce47616d55833115e8d6ab (patch)
tree650fb03af01ff04097d1d59939518cc71be029cb /java/java-psi-api/src/com/intellij/psi/PsiNameHelper.java
parent9edc8f6b58f71ec510ba36b838f115718d9a174d (diff)
downloadidea-1d526b16d476792ca7ce47616d55833115e8d6ab.tar.gz
Snapshot of commit 329607d9ebcedf2bb0ad81265354366db7dc3f9c
from branch master of git://git.jetbrains.org/idea/community.git Change-Id: I3b27d82897504da1b66169b67c7771e0f551c973
Diffstat (limited to 'java/java-psi-api/src/com/intellij/psi/PsiNameHelper.java')
-rw-r--r--java/java-psi-api/src/com/intellij/psi/PsiNameHelper.java26
1 files changed, 12 insertions, 14 deletions
diff --git a/java/java-psi-api/src/com/intellij/psi/PsiNameHelper.java b/java/java-psi-api/src/com/intellij/psi/PsiNameHelper.java
index be0712efa5bc..e82221e7a887 100644
--- a/java/java-psi-api/src/com/intellij/psi/PsiNameHelper.java
+++ b/java/java-psi-api/src/com/intellij/psi/PsiNameHelper.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 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.
@@ -67,17 +67,12 @@ public abstract class PsiNameHelper {
@NotNull
public static String getShortClassName(@NotNull String referenceText) {
- return getShortClassName(referenceText, true);
- }
+ int lessPos = referenceText.length(), bracesBalance = 0, i;
- private static String getShortClassName(String referenceText, boolean removeWhitespace) {
- int lessPos = referenceText.length();
- int bracesBalance = 0;
- int i;
loop:
for (i = referenceText.length() - 1; i >= 0; i--) {
- final char aChar = referenceText.charAt(i);
- switch (aChar) {
+ char ch = referenceText.charAt(i);
+ switch (ch) {
case ')':
case '>':
bracesBalance++;
@@ -91,22 +86,25 @@ public abstract class PsiNameHelper {
case '@':
case '.':
- if (bracesBalance == 0) break loop;
+ if (bracesBalance <= 0) break loop;
break;
default:
- if (bracesBalance == 0 && removeWhitespace && !Character.isWhitespace(aChar) && !Character.isJavaIdentifierPart(aChar)) {
- return getShortClassName(removeWhitespace(referenceText), false);
+ if (Character.isWhitespace(ch) && bracesBalance <= 0) {
+ for (int j = i + 1; j < lessPos; j++) {
+ if (!Character.isWhitespace(referenceText.charAt(j))) break loop;
+ }
+ lessPos = i;
}
}
}
+
String sub = referenceText.substring(i + 1, lessPos).trim();
return sub.length() == referenceText.length() ? sub : new String(sub);
}
public static String getPresentableText(PsiJavaCodeReferenceElement ref) {
final String referenceName = ref.getReferenceName();
-
PsiType[] typeParameters = ref.getTypeParameters();
return getPresentableText(referenceName, typeParameters);
}
@@ -167,7 +165,7 @@ public abstract class PsiNameHelper {
* <code>["List&lt;String&gt","Integer"]</code>
*
* @param referenceText the text of the reference to calculate type parameters for.
- * @return the calculated array of type parameters.
+ * @return the calculated array of type parameters.
*/
public static String[] getClassParametersText(String referenceText) {
if (referenceText.indexOf('<') < 0) return ArrayUtil.EMPTY_STRING_ARRAY;