summaryrefslogtreecommitdiff
path: root/java/java-psi-api/src/com/intellij/psi/util/PsiFormatUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-psi-api/src/com/intellij/psi/util/PsiFormatUtil.java')
-rw-r--r--java/java-psi-api/src/com/intellij/psi/util/PsiFormatUtil.java34
1 files changed, 34 insertions, 0 deletions
diff --git a/java/java-psi-api/src/com/intellij/psi/util/PsiFormatUtil.java b/java/java-psi-api/src/com/intellij/psi/util/PsiFormatUtil.java
index 472e7cd65403..885f1bd9a444 100644
--- a/java/java-psi-api/src/com/intellij/psi/util/PsiFormatUtil.java
+++ b/java/java-psi-api/src/com/intellij/psi/util/PsiFormatUtil.java
@@ -450,6 +450,40 @@ public class PsiFormatUtil extends PsiFormatUtilBase {
return builder.toString();
}
+ @Nullable
+ public static String getRawExternalName(PsiModifierListOwner owner) {
+ final StringBuilder builder = new StringBuilder();
+ final PsiClass psiClass = PsiTreeUtil.getParentOfType(owner, PsiClass.class, false);
+ if (psiClass == null) return null;
+ ClassUtil.formatClassName(psiClass, builder);
+ if (owner instanceof PsiMethod) {
+ builder.append(" ");
+ formatMethod((PsiMethod)owner, PsiSubstitutor.EMPTY,
+ SHOW_NAME | SHOW_FQ_NAME | SHOW_TYPE | SHOW_RAW_TYPE | SHOW_PARAMETERS | SHOW_FQ_CLASS_NAMES,
+ SHOW_TYPE | SHOW_RAW_TYPE | SHOW_FQ_CLASS_NAMES,
+ Integer.MAX_VALUE, builder);
+ }
+ else if (owner instanceof PsiParameter) {
+ final PsiElement declarationScope = ((PsiParameter)owner).getDeclarationScope();
+ if (!(declarationScope instanceof PsiMethod)) {
+ return null;
+ }
+ final PsiMethod psiMethod = (PsiMethod)declarationScope;
+
+ builder.append(" ");
+ formatMethod(psiMethod, PsiSubstitutor.EMPTY,
+ SHOW_NAME | SHOW_FQ_NAME | SHOW_TYPE | SHOW_RAW_TYPE | SHOW_PARAMETERS | SHOW_FQ_CLASS_NAMES,
+ SHOW_TYPE | SHOW_RAW_TYPE | SHOW_FQ_CLASS_NAMES,
+ Integer.MAX_VALUE, builder);
+ builder.append(" ");
+ builder.append(psiMethod.getParameterList().getParameterIndex((PsiParameter)owner));
+ }
+ else {
+ return null;
+ }
+ return builder.toString();
+ }
+
public static String getPackageDisplayName(@NotNull final PsiClass psiClass) {
if (psiClass instanceof PsiTypeParameter) {
PsiTypeParameterListOwner owner = ((PsiTypeParameter)psiClass).getOwner();