From 395959bf216574cad6a1632b13f472f4565c5cfb Mon Sep 17 00:00:00 2001 From: Mikhail Mutcianko Date: Thu, 31 Jul 2014 12:28:33 +0400 Subject: [PATCH] reformat code, optimize imports --- .../resolve/android/AndroidUIXmlParser.kt | 35 ++++++++++--------- .../jet/lang/resolve/android/AndroidUtil.kt | 16 ++------- .../lang/resolve/android/AndroidXmlHandler.kt | 4 +-- .../resolve/android/CliAndroidUIXmlParser.kt | 10 ++---- .../jet/lang/resolve/android/KotlinWriter.kt | 3 +- .../android/AndroidGotoDeclarationHandler.kt | 9 ++--- .../jet/plugin/android/AndroidXmlVisitor.kt | 2 +- .../plugin/android/IDEAndroidUIXmlParser.kt | 10 ++---- .../android/XmlAttributeValueWrapper.java | 19 ++-------- 9 files changed, 37 insertions(+), 71 deletions(-) diff --git a/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidUIXmlParser.kt b/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidUIXmlParser.kt index 977cea50c74..c9352a22b4d 100644 --- a/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidUIXmlParser.kt +++ b/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidUIXmlParser.kt @@ -33,7 +33,6 @@ import com.intellij.openapi.project.Project import java.util.concurrent.ConcurrentLinkedQueue import com.intellij.openapi.util.Key import com.intellij.testFramework.LightVirtualFile -import com.intellij.openapi.vfs.VirtualFileSystem import com.intellij.psi.PsiManager import java.io.FileInputStream import org.xml.sax.helpers.DefaultHandler @@ -44,20 +43,17 @@ import com.intellij.psi.util.PsiModificationTracker import com.intellij.psi.impl.PsiModificationTrackerImpl import java.util.Queue import com.intellij.psi.PsiFile -import org.xml.sax.InputSource -import java.io.ByteArrayInputStream -import com.intellij.openapi.diagnostic.Log -import org.xml.sax.SAXException import com.intellij.openapi.diagnostic.Logger import com.intellij.psi.PsiElement abstract class AndroidUIXmlParser { - inner class NoUIXMLsFound: Exception("No android UI xmls found in $searchPath") - class NoAndroidManifestFound: Exception("No android manifest file found in project root") + inner class NoUIXMLsFound : Exception("No android UI xmls found in $searchPath") + class NoAndroidManifestFound : Exception("No android manifest file found in project root") class ManifestParsingFailed - enum class CacheAction { HIT; MISS } + enum class CacheAction { HIT; MISS + } val androidImports = arrayListOf("android.app.Activity", "android.view.View", @@ -105,11 +101,13 @@ abstract class AndroidUIXmlParser { psiFile.putUserData(ANDROID_USER_PACKAGE, androidAppPackage) lastCachedPsi = psiFile psiFile - } catch (e: Exception) { + } + catch (e: Exception) { invalidateCaches() null } - } else lastCachedPsi + } + else lastCachedPsi } private fun isAndroidUIXml(file: File): Boolean { @@ -128,7 +126,8 @@ abstract class AndroidUIXmlParser { if (!path.exists()) continue; if (path.isFile() && isAndroidUIXml(path)) { res.add(path) - } else if (path.isDirectory()) { + } + else if (path.isDirectory()) { res.addAll(searchForUIXml(path.listFiles()?.toArrayList())) } } @@ -190,7 +189,7 @@ abstract class AndroidUIXmlParser { val fileManager = VirtualFileManager.getInstance() val watchDir = fileManager.findFileByUrl("file://" + searchPath) val psiManager = PsiManager.getInstance(project) - return watchDir?.getChildren()?.toArrayList()?.map { psiManager.findFile(it) } ?.mapNotNull { it } ?: ArrayList(0) + return watchDir?.getChildren()?.toArrayList()?.map { psiManager.findFile(it) }?.mapNotNull { it } ?: ArrayList(0) } protected fun populateQueue(project: Project) { @@ -210,11 +209,13 @@ abstract class AndroidUIXmlParser { _package = attributes.toMap()["package"] ?: "" } }) - } catch (e: Exception) { + } + catch (e: Exception) { throw e } return AndroidManifest(_package) - } catch (e: Exception) { + } + catch (e: Exception) { throw NoAndroidManifestFound() } } @@ -223,9 +224,9 @@ abstract class AndroidUIXmlParser { for (id in ids) { val body = arrayListOf("return findViewById(0) as ${id.className}") kw.writeImmutableExtensionProperty(receiver = "Activity", - name = id.id, - retType = id.className, - getterBody = body ) + name = id.id, + retType = id.className, + getterBody = body) } return kw.output() } diff --git a/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidUtil.kt b/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidUtil.kt index 0aed83cc255..06d62b12ef1 100644 --- a/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidUtil.kt +++ b/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidUtil.kt @@ -16,13 +16,12 @@ package org.jetbrains.jet.lang.resolve.android -import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.PsiFile import com.intellij.psi.PsiElement trait AndroidResource -class AndroidID(val rawID: String): AndroidResource { +class AndroidID(val rawID: String) : AndroidResource { override fun equals(other: Any?): Boolean { return other is AndroidID && this.rawID == other.rawID @@ -35,20 +34,11 @@ class AndroidID(val rawID: String): AndroidResource { } } -class AndroidWidget(val id: String, val className: String): AndroidResource +class AndroidWidget(val id: String, val className: String) : AndroidResource -class AndroidManifest(val _package: String): AndroidResource - -//fun isAndroidSyntheticFile(f: VirtualFile?): Boolean { -// if (f?.getName() == AndroidConst.SYNTHETIC_FILENAME) { -// val userData = f?.getUserData(AndroidConst.ANDROID_SYNTHETIC); -// return (userData != null && userData.equals("OK")) -// } -// return false -//} +class AndroidManifest(val _package: String) : AndroidResource fun isAndroidSyntheticFile(f: PsiFile?): Boolean { -// return isAndroidSyntheticFile(f?.getVirtualFile()) if (f?.getName() == AndroidConst.SYNTHETIC_FILENAME) { val userData = f?.getUserData(AndroidConst.ANDROID_SYNTHETIC); return (userData != null && userData.equals("OK")) diff --git a/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidXmlHandler.kt b/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidXmlHandler.kt index 0576fe04f5a..c09e4e887fe 100644 --- a/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidXmlHandler.kt +++ b/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidXmlHandler.kt @@ -20,7 +20,7 @@ import org.xml.sax.helpers.DefaultHandler import org.xml.sax.Attributes import java.util.HashMap -class AndroidXmlHandler(val elementCallback: (String, String)-> Unit): DefaultHandler() { +class AndroidXmlHandler(val elementCallback: (String, String) -> Unit) : DefaultHandler() { override fun startDocument() { super.startDocument() @@ -46,7 +46,7 @@ class AndroidXmlHandler(val elementCallback: (String, String)-> Unit): DefaultHa public fun Attributes.toMap(): HashMap { val res = HashMap() - for (index in 0..getLength()-1) { + for (index in 0..getLength() - 1) { val attrName = getLocalName(index)!! val attrVal = getValue(index)!! res[attrName] = attrVal diff --git a/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/CliAndroidUIXmlParser.kt b/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/CliAndroidUIXmlParser.kt index 6e84f67d845..8484a90afba 100644 --- a/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/CliAndroidUIXmlParser.kt +++ b/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/CliAndroidUIXmlParser.kt @@ -16,17 +16,12 @@ package org.jetbrains.jet.lang.resolve.android -import com.intellij.openapi.vfs.VirtualFileManager import java.util.ArrayList import com.intellij.openapi.project.Project import com.intellij.psi.PsiFile -import java.io.ByteArrayInputStream -import org.xml.sax.InputSource -import javax.xml.parsers.SAXParser -import javax.xml.parsers.SAXParserFactory import com.intellij.psi.PsiElement -class CliAndroidUIXmlParser(val project: Project, override val searchPath: String?): AndroidUIXmlParser() { +class CliAndroidUIXmlParser(val project: Project, override val searchPath: String?) : AndroidUIXmlParser() { override var androidAppPackage: String = "" @@ -42,7 +37,8 @@ class CliAndroidUIXmlParser(val project: Project, override val searchPath: Strin try { saxParser.parse(file.getVirtualFile()?.getInputStream()!!, handler) return produceKotlinProperties(KotlinStringWriter(), ids).toString() - } catch (e: Throwable) { + } + catch (e: Throwable) { LOG.error(e) return "" } diff --git a/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/KotlinWriter.kt b/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/KotlinWriter.kt index 261eebcca5a..096ddaad1f6 100644 --- a/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/KotlinWriter.kt +++ b/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/KotlinWriter.kt @@ -62,7 +62,8 @@ class KotlinStringWriter : KotlinWriter { } body.decIndent() body.writeln("}") - } else { + } + else { body.writeNoIndent("=") body.writeNoIndent(getterBody.join("").replace("return", "")) body.newLine() diff --git a/idea/src/org/jetbrains/jet/plugin/android/AndroidGotoDeclarationHandler.kt b/idea/src/org/jetbrains/jet/plugin/android/AndroidGotoDeclarationHandler.kt index d9cbf0c1fa1..ff2ca51dcb5 100644 --- a/idea/src/org/jetbrains/jet/plugin/android/AndroidGotoDeclarationHandler.kt +++ b/idea/src/org/jetbrains/jet/plugin/android/AndroidGotoDeclarationHandler.kt @@ -20,15 +20,11 @@ import com.intellij.codeInsight.navigation.actions.GotoDeclarationHandler import com.intellij.psi.PsiElement import com.intellij.openapi.editor.Editor import com.intellij.openapi.actionSystem.DataContext -import org.jetbrains.jet.lang.psi.JetProperty import com.intellij.openapi.components.ServiceManager import org.jetbrains.jet.lang.resolve.android.AndroidUIXmlParser -import com.intellij.psi.util.PsiTreeUtil -import com.intellij.psi.PsiReferenceExpression -import com.intellij.psi.PsiIdentifier import com.intellij.psi.impl.source.tree.LeafPsiElement -public class AndroidGotoDeclarationHandler: GotoDeclarationHandler { +public class AndroidGotoDeclarationHandler : GotoDeclarationHandler { override fun getGotoDeclarationTargets(sourceElement: PsiElement?, offset: Int, editor: Editor?): Array? { if (sourceElement is LeafPsiElement) { val parser = ServiceManager.getService(sourceElement.getProject(), javaClass()) @@ -37,7 +33,8 @@ public class AndroidGotoDeclarationHandler: GotoDeclarationHandler { return array(psiElement) } else return null - } else return null + } + else return null } override fun getActionText(context: DataContext?): String? { diff --git a/idea/src/org/jetbrains/jet/plugin/android/AndroidXmlVisitor.kt b/idea/src/org/jetbrains/jet/plugin/android/AndroidXmlVisitor.kt index 03b9ac33684..5ffb43963db 100644 --- a/idea/src/org/jetbrains/jet/plugin/android/AndroidXmlVisitor.kt +++ b/idea/src/org/jetbrains/jet/plugin/android/AndroidXmlVisitor.kt @@ -21,7 +21,7 @@ import com.intellij.psi.PsiElement import com.intellij.psi.xml.XmlElement import com.intellij.psi.xml.XmlTag -class AndroidXmlVisitor(val elementCallback: (String, String)-> Unit): XmlElementVisitor() { +class AndroidXmlVisitor(val elementCallback: (String, String) -> Unit) : XmlElementVisitor() { override fun visitElement(element: PsiElement) { element.acceptChildren(this) diff --git a/idea/src/org/jetbrains/jet/plugin/android/IDEAndroidUIXmlParser.kt b/idea/src/org/jetbrains/jet/plugin/android/IDEAndroidUIXmlParser.kt index 8526bcd3b18..ce1f2f787fd 100644 --- a/idea/src/org/jetbrains/jet/plugin/android/IDEAndroidUIXmlParser.kt +++ b/idea/src/org/jetbrains/jet/plugin/android/IDEAndroidUIXmlParser.kt @@ -18,10 +18,7 @@ package org.jetbrains.jet.plugin.android import org.jetbrains.jet.lang.resolve.android.AndroidUIXmlParser import com.intellij.openapi.project.Project -import com.intellij.openapi.vfs.VirtualFileManager import java.util.ArrayList -import com.intellij.openapi.vfs.VirtualFileAdapter -import com.intellij.openapi.vfs.VirtualFileEvent import com.intellij.psi.PsiFile import org.jetbrains.jet.lang.resolve.android.AndroidWidget import org.jetbrains.jet.lang.resolve.android.KotlinStringWriter @@ -30,9 +27,8 @@ import com.intellij.psi.XmlElementVisitor import com.intellij.psi.xml.XmlTag import com.intellij.psi.PsiElement import java.util.HashMap -import com.intellij.psi.xml.XmlAttribute -class IDEAndroidUIXmlParser(val project: Project): AndroidUIXmlParser() { +class IDEAndroidUIXmlParser(val project: Project) : AndroidUIXmlParser() { override val searchPath: String? = project.getBasePath() + "/res/layout/" override var androidAppPackage: String = "" @@ -74,7 +70,7 @@ class IDEAndroidUIXmlParser(val project: Project): AndroidUIXmlParser() { override fun parseSingleFileImpl(file: PsiFile): String { val ids: MutableCollection = ArrayList() - file.accept(AndroidXmlVisitor({ id, wClass -> ids.add(AndroidWidget(id, wClass))})) + file.accept(AndroidXmlVisitor({ id, wClass -> ids.add(AndroidWidget(id, wClass)) })) return produceKotlinProperties(KotlinStringWriter(), ids).toString() } @@ -89,7 +85,7 @@ class IDEAndroidUIXmlParser(val project: Project): AndroidUIXmlParser() { val idPrefix = "@+id/" val attribute = tag?.getAttribute("android:id") if (attribute != null && attribute.getValue() == idPrefix + oldName) { - allRenames[XmlAttributeValueWrapper(attribute.getValueElement()!!)] = idPrefix+newName + allRenames[XmlAttributeValueWrapper(attribute.getValueElement()!!)] = idPrefix + newName } tag?.acceptChildren(this) } diff --git a/idea/src/org/jetbrains/jet/plugin/android/XmlAttributeValueWrapper.java b/idea/src/org/jetbrains/jet/plugin/android/XmlAttributeValueWrapper.java index dc6c326baaa..d82abfcf5b9 100644 --- a/idea/src/org/jetbrains/jet/plugin/android/XmlAttributeValueWrapper.java +++ b/idea/src/org/jetbrains/jet/plugin/android/XmlAttributeValueWrapper.java @@ -30,13 +30,9 @@ import com.intellij.psi.scope.PsiScopeProcessor; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.PsiElementProcessor; import com.intellij.psi.search.SearchScope; -import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.xml.XmlAttribute; import com.intellij.psi.xml.XmlAttributeValue; -import com.intellij.psi.xml.XmlTag; import com.intellij.util.IncorrectOperationException; -import com.intellij.util.xml.DomElement; -import com.intellij.util.xml.DomManager; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -384,25 +380,14 @@ public class XmlAttributeValueWrapper implements XmlAttributeValue, PsiNamedElem @Override public String getName() { - String value = myWrappee.getValue(); return ((NavigationItem) myWrappee).getName(); } @Override @Nullable public PsiElement setName(@NonNls @NotNull String name) throws IncorrectOperationException { - //if (AndroidResourceUtil.isIdDeclaration(myWrappee)) { - XmlAttribute attribute = (XmlAttribute) myWrappee.getParent(); - attribute.setValue(name); - //} - //else { - // // then it is a value resource - // XmlTag tag = PsiTreeUtil.getParentOfType(myWrappee, XmlTag.class); - // DomElement domElement = DomManager.getDomManager(getProject()).getDomElement(tag); - // assert domElement instanceof ResourceElement; - // ResourceElement resElement = (ResourceElement) domElement; - // resElement.getName().setValue(name); - //} + XmlAttribute attribute = (XmlAttribute) myWrappee.getParent(); + attribute.setValue(name); return null; }