Added escaping/unescaping signatures when saving/loading from annotations.
This commit is contained in:
+2
-1
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.lang.resolve.java.kt;
|
package org.jetbrains.jet.lang.resolve.java.kt;
|
||||||
|
|
||||||
|
import com.intellij.openapi.util.text.StringUtil;
|
||||||
import com.intellij.psi.PsiAnnotation;
|
import com.intellij.psi.PsiAnnotation;
|
||||||
import com.intellij.psi.PsiMethod;
|
import com.intellij.psi.PsiMethod;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -36,7 +37,7 @@ public class KotlinSignatureAnnotation extends PsiAnnotationWrapper {
|
|||||||
|
|
||||||
public String signature() {
|
public String signature() {
|
||||||
if (signature == null) {
|
if (signature == null) {
|
||||||
signature = getStringAttribute(JvmStdlibNames.KOTLIN_SIGNATURE_VALUE_METHOD, "");
|
signature = StringUtil.unescapeStringCharacters(getStringAttribute(JvmStdlibNames.KOTLIN_SIGNATURE_VALUE_METHOD, ""));
|
||||||
}
|
}
|
||||||
return signature;
|
return signature;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import com.intellij.openapi.ui.popup.JBPopupAdapter;
|
|||||||
import com.intellij.openapi.ui.popup.JBPopupFactory;
|
import com.intellij.openapi.ui.popup.JBPopupFactory;
|
||||||
import com.intellij.openapi.ui.popup.LightweightWindowEvent;
|
import com.intellij.openapi.ui.popup.LightweightWindowEvent;
|
||||||
import com.intellij.openapi.util.SystemInfo;
|
import com.intellij.openapi.util.SystemInfo;
|
||||||
|
import com.intellij.openapi.util.text.StringUtil;
|
||||||
import com.intellij.openapi.wm.IdeFocusManager;
|
import com.intellij.openapi.wm.IdeFocusManager;
|
||||||
import com.intellij.psi.JavaPsiFacade;
|
import com.intellij.psi.JavaPsiFacade;
|
||||||
import com.intellij.psi.PsiDocumentManager;
|
import com.intellij.psi.PsiDocumentManager;
|
||||||
@@ -223,7 +224,7 @@ class EditSignatureBalloon {
|
|||||||
|
|
||||||
static PsiNameValuePair[] signatureToNameValuePairs(@NotNull Project project, @NotNull String signature) {
|
static PsiNameValuePair[] signatureToNameValuePairs(@NotNull Project project, @NotNull String signature) {
|
||||||
return JavaPsiFacade.getElementFactory(project).createAnnotationFromText(
|
return JavaPsiFacade.getElementFactory(project).createAnnotationFromText(
|
||||||
"@" + KotlinSignatureInJavaMarkerProvider.KOTLIN_SIGNATURE_ANNOTATION + "(value=\"" + signature + "\")", null)
|
"@" + KotlinSignatureInJavaMarkerProvider.KOTLIN_SIGNATURE_ANNOTATION
|
||||||
.getParameterList().getAttributes();
|
+ "(value=\"" + StringUtil.escapeStringCharacters(signature) + "\")", null).getParameterList().getAttributes();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -28,6 +28,7 @@ import com.intellij.openapi.actionSystem.PlatformDataKeys;
|
|||||||
import com.intellij.openapi.editor.Editor;
|
import com.intellij.openapi.editor.Editor;
|
||||||
import com.intellij.openapi.fileEditor.OpenFileDescriptor;
|
import com.intellij.openapi.fileEditor.OpenFileDescriptor;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
|
import com.intellij.openapi.util.text.StringUtil;
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
import com.intellij.openapi.vfs.VirtualFile;
|
||||||
import com.intellij.psi.*;
|
import com.intellij.psi.*;
|
||||||
import com.intellij.util.Function;
|
import com.intellij.util.Function;
|
||||||
@@ -93,7 +94,7 @@ public class KotlinSignatureInJavaMarkerProvider implements LineMarkerProvider {
|
|||||||
PsiNameValuePair pair = kotlinSignatureAnnotation.getParameterList().getAttributes()[0];
|
PsiNameValuePair pair = kotlinSignatureAnnotation.getParameterList().getAttributes()[0];
|
||||||
PsiAnnotationMemberValue value = pair.getValue();
|
PsiAnnotationMemberValue value = pair.getValue();
|
||||||
return value == null ? "null" : value instanceof PsiLiteralExpression
|
return value == null ? "null" : value instanceof PsiLiteralExpression
|
||||||
? ((PsiLiteralExpression) value).getValue().toString()
|
? StringUtil.unescapeStringCharacters(((PsiLiteralExpression) value).getValue().toString())
|
||||||
: value.getText();
|
: value.getText();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user