Codebase update
This commit is contained in:
+21
@@ -0,0 +1,21 @@
|
|||||||
|
<component name="ArtifactManager">
|
||||||
|
<artifact name="KotlinAndroidExtensions">
|
||||||
|
<output-path>$PROJECT_DIR$/out/artifacts/KotlinAndroidExtensions</output-path>
|
||||||
|
<root id="root">
|
||||||
|
<element id="directory" name="lib">
|
||||||
|
<element id="archive" name="kotlin-android-extensions.jar">
|
||||||
|
<element id="module-output" name="android-idea-plugin" />
|
||||||
|
</element>
|
||||||
|
<element id="directory" name="jps">
|
||||||
|
<element id="archive" name="kotlin-android-extensions-jps.jar">
|
||||||
|
<element id="module-output" name="android-jps-plugin" />
|
||||||
|
<element id="module-output" name="plugin-api" />
|
||||||
|
</element>
|
||||||
|
</element>
|
||||||
|
<element id="archive" name="android-compiler-plugin.jar">
|
||||||
|
<element id="module-output" name="android-compiler-plugin" />
|
||||||
|
</element>
|
||||||
|
</element>
|
||||||
|
</root>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
+6
-7
@@ -17,14 +17,13 @@
|
|||||||
package org.jetbrains.jet.codegen.extensions
|
package org.jetbrains.jet.codegen.extensions
|
||||||
|
|
||||||
import org.jetbrains.jet.extensions.ProjectExtensionDescriptor
|
import org.jetbrains.jet.extensions.ProjectExtensionDescriptor
|
||||||
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall
|
import org.jetbrains.kotlin.codegen.state.JetTypeMapper
|
||||||
import org.jetbrains.jet.codegen.StackValue
|
|
||||||
import org.jetbrains.jet.codegen.state.JetTypeMapper
|
|
||||||
import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter
|
import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter
|
||||||
import org.jetbrains.jet.codegen.ClassBodyCodegen
|
import org.jetbrains.kotlin.codegen.StackValue
|
||||||
import org.jetbrains.jet.codegen.ClassBuilder
|
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall
|
||||||
import org.jetbrains.jet.lang.psi.JetClassOrObject
|
import org.jetbrains.kotlin.codegen.ClassBuilder
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.psi.JetClassOrObject
|
||||||
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
|
|
||||||
public trait ExpressionCodegenExtension {
|
public trait ExpressionCodegenExtension {
|
||||||
class object : ProjectExtensionDescriptor<ExpressionCodegenExtension>("org.jetbrains.kotlin.expressionCodegenExtension", javaClass<ExpressionCodegenExtension>())
|
class object : ProjectExtensionDescriptor<ExpressionCodegenExtension>("org.jetbrains.kotlin.expressionCodegenExtension", javaClass<ExpressionCodegenExtension>())
|
||||||
|
|||||||
@@ -17,19 +17,13 @@
|
|||||||
package org.jetbrains.jet.cli.jvm
|
package org.jetbrains.jet.cli.jvm
|
||||||
|
|
||||||
import org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor
|
import org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor
|
||||||
import org.jetbrains.jet.cli.common.arguments.CommonCompilerArguments
|
|
||||||
import kotlin.platform.*
|
import kotlin.platform.*
|
||||||
import java.util.jar.JarFile
|
import java.util.jar.JarFile
|
||||||
import java.util.jar.Attributes
|
import java.util.jar.Attributes
|
||||||
import org.jetbrains.kotlin.compiler.plugin.CliOptionProcessingException
|
import org.jetbrains.kotlin.compiler.plugin.CliOptionProcessingException
|
||||||
import java.util.regex.Pattern
|
import java.util.regex.Pattern
|
||||||
import org.jetbrains.jet.utils.valuesToMap
|
|
||||||
import org.jetbrains.jet.config.CompilerConfiguration
|
|
||||||
import com.intellij.util.containers.MultiMap
|
import com.intellij.util.containers.MultiMap
|
||||||
import org.jetbrains.kotlin.compiler.plugin.CliOption
|
import org.jetbrains.kotlin.compiler.plugin.CliOption
|
||||||
import org.jetbrains.jet.cli.common.messages.MessageCollector
|
|
||||||
import org.jetbrains.jet.cli.common.messages.CompilerMessageSeverity
|
|
||||||
import org.jetbrains.jet.cli.common.messages.CompilerMessageLocation
|
|
||||||
import java.net.URLClassLoader
|
import java.net.URLClassLoader
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -39,6 +33,9 @@ import java.io.IOException
|
|||||||
import java.util.Enumeration
|
import java.util.Enumeration
|
||||||
import org.jetbrains.kotlin.compiler.plugin.parsePluginOption
|
import org.jetbrains.kotlin.compiler.plugin.parsePluginOption
|
||||||
import org.jetbrains.kotlin.compiler.plugin.CliOptionValue
|
import org.jetbrains.kotlin.compiler.plugin.CliOptionValue
|
||||||
|
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
||||||
|
import org.jetbrains.kotlin.utils.valuesToMap
|
||||||
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
|
|
||||||
|
|
||||||
public object PluginCliParser {
|
public object PluginCliParser {
|
||||||
|
|||||||
@@ -34,11 +34,11 @@ import org.jetbrains.kotlin.analyzer.ModuleContent
|
|||||||
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJava
|
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJava
|
||||||
import org.jetbrains.kotlin.resolve.CodeAnalyzerInitializer
|
import org.jetbrains.kotlin.resolve.CodeAnalyzerInitializer
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import org.jetbrains.jet.lang.psi.JetFile
|
|
||||||
import java.util.ArrayList
|
import java.util.ArrayList
|
||||||
import org.jetbrains.jet.extensions.ExternalDeclarationsProvider
|
import org.jetbrains.jet.extensions.ExternalDeclarationsProvider
|
||||||
import kotlin.platform.platformStatic
|
import kotlin.platform.platformStatic
|
||||||
import com.intellij.openapi.module.Module
|
import com.intellij.openapi.module.Module
|
||||||
|
import org.jetbrains.kotlin.psi.JetFile
|
||||||
|
|
||||||
public class JvmResolverForModule(
|
public class JvmResolverForModule(
|
||||||
override val lazyResolveSession: ResolveSession,
|
override val lazyResolveSession: ResolveSession,
|
||||||
|
|||||||
@@ -16,8 +16,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.extensions
|
package org.jetbrains.jet.extensions
|
||||||
|
|
||||||
import org.jetbrains.jet.lang.psi.JetFile
|
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||||
import org.jetbrains.jet.analyzer.ModuleInfo
|
import org.jetbrains.kotlin.psi.JetFile
|
||||||
|
|
||||||
public trait ExternalDeclarationsProvider {
|
public trait ExternalDeclarationsProvider {
|
||||||
class object : ProjectExtensionDescriptor<ExternalDeclarationsProvider>(
|
class object : ProjectExtensionDescriptor<ExternalDeclarationsProvider>(
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import java.io.StringWriter
|
|||||||
import com.intellij.openapi.application.ApplicationManager
|
import com.intellij.openapi.application.ApplicationManager
|
||||||
import com.intellij.psi.PsiComment
|
import com.intellij.psi.PsiComment
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.jet.analyzer.ModuleInfo
|
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||||
|
|
||||||
public fun JetPsiFactory(project: Project?): JetPsiFactory = JetPsiFactory(project!!)
|
public fun JetPsiFactory(project: Project?): JetPsiFactory = JetPsiFactory(project!!)
|
||||||
public fun JetPsiFactory(contextElement: JetElement): JetPsiFactory = JetPsiFactory(contextElement.getProject())
|
public fun JetPsiFactory(contextElement: JetElement): JetPsiFactory = JetPsiFactory(contextElement.getProject())
|
||||||
|
|||||||
@@ -9,6 +9,6 @@
|
|||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="library" exported="" name="intellij-core" level="project" />
|
<orderEntry type="library" exported="" name="intellij-core" level="project" />
|
||||||
<orderEntry type="library" name="kotlin-runtime" level="project" />
|
<orderEntry type="library" name="kotlin-runtime" level="project" />
|
||||||
|
<orderEntry type="module" module-name="frontend" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
|
|
||||||
|
|||||||
@@ -1,129 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-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.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.jet.config;
|
|
||||||
|
|
||||||
import com.intellij.openapi.util.Key;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public class CompilerConfiguration {
|
|
||||||
private final Map<Key, Object> map = new HashMap<Key, Object>();
|
|
||||||
private boolean readOnly = false;
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
public <T> T get(@NotNull CompilerConfigurationKey<T> key) {
|
|
||||||
T data = (T) map.get(key.ideaKey);
|
|
||||||
return data == null ? null : unmodifiable(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public <T> T get(@NotNull CompilerConfigurationKey<T> key, @NotNull T defaultValue) {
|
|
||||||
T data = (T) map.get(key.ideaKey);
|
|
||||||
return data == null ? defaultValue : unmodifiable(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public <T> List<T> getList(@NotNull CompilerConfigurationKey<List<T>> key) {
|
|
||||||
List<T> data = (List<T>) map.get(key.ideaKey);
|
|
||||||
if (data == null) {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return Collections.unmodifiableList(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public <T> void put(@NotNull CompilerConfigurationKey<T> key, @Nullable T value) {
|
|
||||||
checkReadOnly();
|
|
||||||
map.put(key.ideaKey, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public <T> void add(@NotNull CompilerConfigurationKey<List<T>> key, @NotNull T value) {
|
|
||||||
checkReadOnly();
|
|
||||||
Key<List<T>> ideaKey = key.ideaKey;
|
|
||||||
if (map.get(ideaKey) == null) {
|
|
||||||
map.put(ideaKey, new ArrayList<T>());
|
|
||||||
}
|
|
||||||
List<T> list = (List<T>) map.get(ideaKey);
|
|
||||||
list.add(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public <T> void addAll(@NotNull CompilerConfigurationKey<List<T>> key, @NotNull Collection<T> values) {
|
|
||||||
checkReadOnly();
|
|
||||||
checkForNullElements(values);
|
|
||||||
Key<List<T>> ideaKey = key.ideaKey;
|
|
||||||
if (map.get(ideaKey) == null) {
|
|
||||||
map.put(ideaKey, new ArrayList<T>());
|
|
||||||
}
|
|
||||||
List<T> list = (List<T>) map.get(ideaKey);
|
|
||||||
list.addAll(values);
|
|
||||||
}
|
|
||||||
|
|
||||||
public CompilerConfiguration copy() {
|
|
||||||
CompilerConfiguration copy = new CompilerConfiguration();
|
|
||||||
copy.map.putAll(map);
|
|
||||||
return copy;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void checkReadOnly() {
|
|
||||||
if (readOnly) {
|
|
||||||
throw new IllegalStateException("CompilerConfiguration is read-only");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setReadOnly(boolean readOnly) {
|
|
||||||
if (readOnly != this.readOnly) {
|
|
||||||
checkReadOnly();
|
|
||||||
this.readOnly = readOnly;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
private static <T> T unmodifiable(@NotNull T object) {
|
|
||||||
if (object instanceof List) {
|
|
||||||
return (T) Collections.unmodifiableList((List) object);
|
|
||||||
}
|
|
||||||
else if (object instanceof Map) {
|
|
||||||
return (T) Collections.unmodifiableMap((Map) object);
|
|
||||||
}
|
|
||||||
else if (object instanceof Collection) {
|
|
||||||
return (T) Collections.unmodifiableCollection((Collection) object);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return object;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return map.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static <T> void checkForNullElements(Collection<T> values) {
|
|
||||||
int index = 0;
|
|
||||||
for (T value : values) {
|
|
||||||
if (value == null) {
|
|
||||||
throw new IllegalArgumentException("Element " + index
|
|
||||||
+ " is null, while null values in compiler configuration are not allowed");
|
|
||||||
}
|
|
||||||
index++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-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.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.jet.config;
|
|
||||||
|
|
||||||
import com.intellij.openapi.util.Key;
|
|
||||||
import org.jetbrains.annotations.NonNls;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
public class CompilerConfigurationKey<T> {
|
|
||||||
Key<T> ideaKey;
|
|
||||||
|
|
||||||
private CompilerConfigurationKey(@NotNull @NonNls String name) {
|
|
||||||
ideaKey = Key.create(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public static <T> CompilerConfigurationKey<T> create(@NotNull @NonNls String name) {
|
|
||||||
return new CompilerConfigurationKey<T>(name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+1
-1
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.compiler.plugin
|
package org.jetbrains.kotlin.compiler.plugin
|
||||||
|
|
||||||
import org.jetbrains.jet.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
|
|
||||||
public trait CommandLineProcessor {
|
public trait CommandLineProcessor {
|
||||||
public val pluginId: String
|
public val pluginId: String
|
||||||
|
|||||||
@@ -16,9 +16,9 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.compiler.plugin
|
package org.jetbrains.kotlin.compiler.plugin
|
||||||
|
|
||||||
import org.jetbrains.jet.config.CompilerConfigurationKey
|
|
||||||
import org.jetbrains.jet.config.CompilerConfiguration
|
|
||||||
import com.intellij.mock.MockProject
|
import com.intellij.mock.MockProject
|
||||||
|
import org.jetbrains.kotlin.config.CompilerConfigurationKey
|
||||||
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
|
|
||||||
public trait ComponentRegistrar {
|
public trait ComponentRegistrar {
|
||||||
class object {
|
class object {
|
||||||
|
|||||||
@@ -142,7 +142,6 @@ import org.jetbrains.kotlin.completion.handlers.AbstractKeywordCompletionHandler
|
|||||||
import org.jetbrains.kotlin.idea.kdoc.AbstractKDocHighlightingTest
|
import org.jetbrains.kotlin.idea.kdoc.AbstractKDocHighlightingTest
|
||||||
import org.jetbrains.kotlin.addImport.AbstractAddImportTest
|
import org.jetbrains.kotlin.addImport.AbstractAddImportTest
|
||||||
import org.jetbrains.kotlin.idea.highlighter.*
|
import org.jetbrains.kotlin.idea.highlighter.*
|
||||||
import org.jetbrains.jet.android.AbstractCrossParserTest
|
|
||||||
import org.jetbrains.jet.android.AbstractAndroidCompletionTest
|
import org.jetbrains.jet.android.AbstractAndroidCompletionTest
|
||||||
import org.jetbrains.jet.android.AbstractAndroidGotoTest
|
import org.jetbrains.jet.android.AbstractAndroidGotoTest
|
||||||
import org.jetbrains.jet.jps.build.android.AbstractAndroidJpsTestCase
|
import org.jetbrains.jet.jps.build.android.AbstractAndroidJpsTestCase
|
||||||
@@ -151,6 +150,7 @@ import org.jetbrains.jet.android.AbstractAndroidFindUsagesTest
|
|||||||
import org.jetbrains.jet.lang.resolve.android.test.AbstractAndroidBytecodeShapeTest
|
import org.jetbrains.jet.lang.resolve.android.test.AbstractAndroidBytecodeShapeTest
|
||||||
import org.jetbrains.jet.lang.resolve.android.test.AbstractAndroidXml2KConversionTest
|
import org.jetbrains.jet.lang.resolve.android.test.AbstractAndroidXml2KConversionTest
|
||||||
import org.jetbrains.jet.lang.resolve.android.test.AbstractAndroidBoxTest
|
import org.jetbrains.jet.lang.resolve.android.test.AbstractAndroidBoxTest
|
||||||
|
import org.jetbrains.jet.android.AbstractParserResultEqualityTest
|
||||||
|
|
||||||
fun main(args: Array<String>) {
|
fun main(args: Array<String>) {
|
||||||
System.setProperty("java.awt.headless", "true")
|
System.setProperty("java.awt.headless", "true")
|
||||||
|
|||||||
+2
-2
@@ -18,8 +18,8 @@ package org.jetbrains.jet.plugin.findUsages.handlers
|
|||||||
|
|
||||||
import com.intellij.openapi.extensions.ExtensionPointName
|
import com.intellij.openapi.extensions.ExtensionPointName
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.jet.plugin.references.JetSimpleNameReference
|
import org.jetbrains.kotlin.idea.references.JetSimpleNameReference
|
||||||
import org.jetbrains.jet.lang.psi.JetPsiFactory
|
import org.jetbrains.kotlin.psi.JetPsiFactory
|
||||||
|
|
||||||
public trait SimpleNameReferenceExtension {
|
public trait SimpleNameReferenceExtension {
|
||||||
class object {
|
class object {
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.jps.build
|
package org.jetbrains.jet.jps.build
|
||||||
|
|
||||||
import org.jetbrains.jet.cli.common.arguments.CommonCompilerArguments
|
|
||||||
import org.jetbrains.jps.incremental.ModuleBuildTarget
|
import org.jetbrains.jps.incremental.ModuleBuildTarget
|
||||||
import org.jetbrains.jps.incremental.CompileContext
|
import org.jetbrains.jps.incremental.CompileContext
|
||||||
|
|
||||||
|
|||||||
@@ -17,40 +17,38 @@
|
|||||||
package org.jetbrains.kotlin.android
|
package org.jetbrains.kotlin.android
|
||||||
|
|
||||||
import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
|
import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
|
||||||
import org.jetbrains.jet.config.CompilerConfiguration
|
|
||||||
import com.intellij.mock.MockProject
|
import com.intellij.mock.MockProject
|
||||||
import org.jetbrains.jet.config.CompilerConfigurationKey
|
|
||||||
import org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor
|
import org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor
|
||||||
import org.jetbrains.kotlin.compiler.plugin.CliOption
|
import org.jetbrains.kotlin.compiler.plugin.CliOption
|
||||||
import org.jetbrains.kotlin.compiler.plugin.CliOptionProcessingException
|
import org.jetbrains.kotlin.compiler.plugin.CliOptionProcessingException
|
||||||
import org.jetbrains.jet.extensions.ExternalDeclarationsProvider
|
import org.jetbrains.jet.extensions.ExternalDeclarationsProvider
|
||||||
import org.jetbrains.jet.lang.psi.JetFile
|
|
||||||
import org.jetbrains.jet.lang.resolve.android.*
|
import org.jetbrains.jet.lang.resolve.android.*
|
||||||
import com.intellij.openapi.components.ServiceManager
|
import com.intellij.openapi.components.ServiceManager
|
||||||
import org.jetbrains.jet.utils.emptyOrSingletonList
|
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import org.jetbrains.jet.codegen.extensions.ExpressionCodegenExtension
|
import org.jetbrains.jet.codegen.extensions.ExpressionCodegenExtension
|
||||||
import org.jetbrains.jet.lang.descriptors.CallableDescriptor
|
|
||||||
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall
|
|
||||||
import org.jetbrains.jet.codegen.StackValue
|
|
||||||
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor
|
|
||||||
import org.jetbrains.org.objectweb.asm.Type
|
import org.jetbrains.org.objectweb.asm.Type
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorToSourceUtils
|
|
||||||
import org.jetbrains.jet.codegen.ClassBuilder
|
|
||||||
import org.jetbrains.org.objectweb.asm.Opcodes.*
|
import org.jetbrains.org.objectweb.asm.Opcodes.*
|
||||||
import org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin
|
|
||||||
import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter
|
import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter
|
||||||
import org.jetbrains.jet.lang.psi.JetClassOrObject
|
|
||||||
import org.jetbrains.jet.codegen.FunctionCodegen
|
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
|
||||||
import org.jetbrains.org.objectweb.asm.Label
|
import org.jetbrains.org.objectweb.asm.Label
|
||||||
import org.jetbrains.jet.lang.psi.JetClass
|
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||||
import org.jetbrains.jet.lang.psi.JetClassBody
|
import org.jetbrains.kotlin.psi.JetFile
|
||||||
import org.jetbrains.jet.lang.resolve.lazy.descriptors.LazyClassDescriptor
|
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||||
import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor
|
import org.jetbrains.kotlin.codegen.StackValue
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.descriptors.LazyJavaClassDescriptor
|
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
|
||||||
import org.jetbrains.jet.analyzer.ModuleInfo
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
|
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
|
||||||
|
import org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaClassDescriptor
|
||||||
|
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassDescriptor
|
||||||
|
import org.jetbrains.kotlin.codegen.ClassBuilder
|
||||||
|
import org.jetbrains.kotlin.psi.JetClassOrObject
|
||||||
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
|
import org.jetbrains.kotlin.psi.JetClass
|
||||||
|
import org.jetbrains.kotlin.psi.JetClassBody
|
||||||
|
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin
|
||||||
|
import org.jetbrains.kotlin.codegen.FunctionCodegen
|
||||||
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
|
import org.jetbrains.kotlin.config.CompilerConfigurationKey
|
||||||
|
|
||||||
public object AndroidConfigurationKeys {
|
public object AndroidConfigurationKeys {
|
||||||
|
|
||||||
@@ -83,7 +81,7 @@ public class AndroidCommandLineProcessor : CommandLineProcessor {
|
|||||||
public class CliAndroidDeclarationsProvider(private val project: Project) : ExternalDeclarationsProvider {
|
public class CliAndroidDeclarationsProvider(private val project: Project) : ExternalDeclarationsProvider {
|
||||||
override fun getExternalDeclarations(moduleInfo: ModuleInfo?): Collection<JetFile> {
|
override fun getExternalDeclarations(moduleInfo: ModuleInfo?): Collection<JetFile> {
|
||||||
val parser = ServiceManager.getService<AndroidUIXmlProcessor>(project, javaClass<AndroidUIXmlProcessor>())
|
val parser = ServiceManager.getService<AndroidUIXmlProcessor>(project, javaClass<AndroidUIXmlProcessor>())
|
||||||
return emptyOrSingletonList(parser.parseToPsi())
|
return parser.parseToPsi() ?: listOf()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -218,7 +216,7 @@ public class AndroidComponentRegistrar : ComponentRegistrar {
|
|||||||
public override fun registerProjectComponents(project: MockProject, configuration: CompilerConfiguration) {
|
public override fun registerProjectComponents(project: MockProject, configuration: CompilerConfiguration) {
|
||||||
val androidResPath = configuration.get(AndroidConfigurationKeys.ANDROID_RES_PATH)
|
val androidResPath = configuration.get(AndroidConfigurationKeys.ANDROID_RES_PATH)
|
||||||
val androidManifest = configuration.get(AndroidConfigurationKeys.ANDROID_MANIFEST)
|
val androidManifest = configuration.get(AndroidConfigurationKeys.ANDROID_MANIFEST)
|
||||||
project.registerService(javaClass<AndroidUIXmlProcessor>(), CliAndroidUIXmlProcessor(project, androidResPath, androidManifest))
|
project.registerService(javaClass<AndroidUIXmlProcessor>(), CliAndroidUIXmlProcessor(project, androidManifest, androidResPath))
|
||||||
|
|
||||||
ExternalDeclarationsProvider.registerExtension(project, CliAndroidDeclarationsProvider(project))
|
ExternalDeclarationsProvider.registerExtension(project, CliAndroidDeclarationsProvider(project))
|
||||||
ExpressionCodegenExtension.registerExtension(project, AndroidExpressionCodegen())
|
ExpressionCodegenExtension.registerExtension(project, AndroidExpressionCodegen())
|
||||||
|
|||||||
+2
-1
@@ -20,7 +20,8 @@ import com.intellij.openapi.util.Key
|
|||||||
|
|
||||||
public object AndroidConst {
|
public object AndroidConst {
|
||||||
val ANDROID_USER_PACKAGE: Key<String> = Key.create<String>("ANDROID_USER_PACKAGE")
|
val ANDROID_USER_PACKAGE: Key<String> = Key.create<String>("ANDROID_USER_PACKAGE")
|
||||||
val SYNTHETIC_FILENAME: String = "ANDROIDXML.kt"
|
val SYNTHETIC_FILENAME: String = "ANDROIDXML"
|
||||||
|
val SYNTHETIC_PACKAGE: String = "kotlinx.android.synthetic."
|
||||||
|
|
||||||
val ANDROID_NAMESPACE: String = "android"
|
val ANDROID_NAMESPACE: String = "android"
|
||||||
val ID_ATTRIBUTE_NO_NAMESPACE: String = "id"
|
val ID_ATTRIBUTE_NO_NAMESPACE: String = "id"
|
||||||
|
|||||||
+2
-4
@@ -19,21 +19,19 @@ package org.jetbrains.jet.lang.resolve.android
|
|||||||
import com.intellij.psi.PsiFile
|
import com.intellij.psi.PsiFile
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import org.jetbrains.jet.lang.psi.JetFile
|
|
||||||
import com.intellij.openapi.components.ServiceManager
|
import com.intellij.openapi.components.ServiceManager
|
||||||
import com.intellij.psi.PsiField
|
import com.intellij.psi.PsiField
|
||||||
import com.intellij.psi.PsiClass
|
import com.intellij.psi.PsiClass
|
||||||
import org.jetbrains.jet.utils.emptyOrSingletonList
|
|
||||||
import com.intellij.openapi.application.ApplicationManager
|
import com.intellij.openapi.application.ApplicationManager
|
||||||
import com.intellij.openapi.util.Computable
|
import com.intellij.openapi.util.Computable
|
||||||
import com.intellij.openapi.module.ModuleServiceManager
|
import com.intellij.openapi.module.ModuleServiceManager
|
||||||
|
|
||||||
fun isAndroidSyntheticFile(f: PsiFile?): Boolean {
|
fun isAndroidSyntheticFile(f: PsiFile?): Boolean {
|
||||||
return f?.getUserData(org.jetbrains.jet.lang.resolve.android.AndroidConst.ANDROID_USER_PACKAGE) != null
|
return f?.getUserData(AndroidConst.ANDROID_USER_PACKAGE) != null
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun isAndroidSyntheticElement(element: PsiElement?): Boolean {
|
public fun isAndroidSyntheticElement(element: PsiElement?): Boolean {
|
||||||
return isAndroidSyntheticFile(ApplicationManager.getApplication()!!.runReadAction(Computable {
|
return isAndroidSyntheticFile(ApplicationManager.getApplication().runReadAction(Computable {
|
||||||
element?.getContainingFile()
|
element?.getContainingFile()
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-5
@@ -32,17 +32,18 @@ public class CliAndroidUIXmlProcessor(
|
|||||||
CliAndroidResourceManager(project, manifestPath, mainResDirectory)
|
CliAndroidResourceManager(project, manifestPath, mainResDirectory)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun parseSingleFile(file: PsiFile): String {
|
override fun parseSingleFile(file: PsiFile): Collection<AndroidWidget> {
|
||||||
val ids: MutableCollection<AndroidWidget> = ArrayList()
|
val widgets: MutableCollection<AndroidWidget> = ArrayList()
|
||||||
val handler = AndroidXmlHandler(resourceManager, { id, clazz -> ids.add(AndroidWidget(id, clazz)) })
|
val handler = AndroidXmlHandler(resourceManager, { id, clazz -> widgets.add(AndroidWidget(id, clazz)) })
|
||||||
|
|
||||||
try {
|
try {
|
||||||
val inputStream = ByteArrayInputStream(file.getVirtualFile().contentsToByteArray())
|
val inputStream = ByteArrayInputStream(file.getVirtualFile().contentsToByteArray())
|
||||||
resourceManager.saxParser.parse(inputStream, handler)
|
resourceManager.saxParser.parse(inputStream, handler)
|
||||||
return produceKotlinProperties(KotlinStringWriter(), ids).toString()
|
return widgets
|
||||||
}
|
}
|
||||||
catch (e: Throwable) {
|
catch (e: Throwable) {
|
||||||
LOG.error(e)
|
LOG.error(e)
|
||||||
return ""
|
return listOf()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-3
@@ -17,12 +17,12 @@
|
|||||||
package org.jetbrains.jet.lang.resolve.android
|
package org.jetbrains.jet.lang.resolve.android
|
||||||
|
|
||||||
trait KotlinWriter {
|
trait KotlinWriter {
|
||||||
fun output(): StringBuffer
|
fun toStringBuffer(): StringBuffer
|
||||||
}
|
}
|
||||||
|
|
||||||
class KotlinStringWriter : KotlinWriter {
|
class KotlinStringWriter : KotlinWriter {
|
||||||
|
|
||||||
private val ctx = org.jetbrains.jet.lang.resolve.android.Context()
|
private val ctx = Context()
|
||||||
private val imports = ctx.fork()
|
private val imports = ctx.fork()
|
||||||
private val body = ctx.fork()
|
private val body = ctx.fork()
|
||||||
|
|
||||||
@@ -91,9 +91,13 @@ class KotlinStringWriter : KotlinWriter {
|
|||||||
body.newLine()
|
body.newLine()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun output(): StringBuffer {
|
override fun toStringBuffer(): StringBuffer {
|
||||||
ctx.absorbChildren()
|
ctx.absorbChildren()
|
||||||
return ctx.buffer
|
return ctx.buffer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
return ctx.buffer.toString()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+7
-8
@@ -16,20 +16,19 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.lang.resolve.android.test
|
package org.jetbrains.jet.lang.resolve.android.test
|
||||||
|
|
||||||
import org.jetbrains.jet.codegen.generated.AbstractBlackBoxCodegenTest
|
|
||||||
import org.jetbrains.jet.config.CompilerConfiguration
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import com.intellij.util.Processor
|
import com.intellij.util.Processor
|
||||||
import org.jetbrains.jet.ConfigurationKind
|
|
||||||
import org.jetbrains.jet.TestJdkKind
|
|
||||||
import org.jetbrains.jet.JetTestUtils
|
|
||||||
import java.util.regex.Pattern
|
import java.util.regex.Pattern
|
||||||
import com.intellij.openapi.util.io.FileUtil
|
import com.intellij.openapi.util.io.FileUtil
|
||||||
import java.util.ArrayList
|
import java.util.ArrayList
|
||||||
import java.util.Collections
|
import java.util.Collections
|
||||||
import com.intellij.util.ArrayUtil
|
import com.intellij.util.ArrayUtil
|
||||||
import org.jetbrains.jet.JetTestCaseBuilder
|
import org.jetbrains.kotlin.codegen.generated.AbstractBlackBoxCodegenTest
|
||||||
import org.jetbrains.jet.codegen.CodegenTestFiles
|
import org.jetbrains.kotlin.test.JetTestUtils
|
||||||
|
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||||
|
import org.jetbrains.kotlin.test.TestJdkKind
|
||||||
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
|
import org.jetbrains.kotlin.codegen.CodegenTestFiles
|
||||||
|
|
||||||
public abstract class AbstractAndroidBoxTest : AbstractBlackBoxCodegenTest() {
|
public abstract class AbstractAndroidBoxTest : AbstractBlackBoxCodegenTest() {
|
||||||
|
|
||||||
@@ -96,7 +95,7 @@ public abstract class AbstractAndroidBoxTest : AbstractBlackBoxCodegenTest() {
|
|||||||
myFiles = CodegenTestFiles.create(
|
myFiles = CodegenTestFiles.create(
|
||||||
myEnvironment!!.getProject(),
|
myEnvironment!!.getProject(),
|
||||||
ArrayUtil.toStringArray(files),
|
ArrayUtil.toStringArray(files),
|
||||||
JetTestCaseBuilder.getHomeDirectory() + "/plugins/android-compiler-plugin/testData"
|
JetTestUtils.getHomeDirectory() + "/plugins/android-compiler-plugin/testData"
|
||||||
)
|
)
|
||||||
blackBox();
|
blackBox();
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-8
@@ -16,18 +16,15 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.lang.resolve.android.test
|
package org.jetbrains.jet.lang.resolve.android.test
|
||||||
|
|
||||||
import org.jetbrains.jet.codegen.AbstractBytecodeTextTest
|
|
||||||
import org.jetbrains.jet.JetTestUtils
|
|
||||||
import org.jetbrains.jet.ConfigurationKind
|
|
||||||
import org.jetbrains.jet.TestJdkKind
|
|
||||||
import org.jetbrains.jet.config.CompilerConfiguration
|
|
||||||
import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys
|
|
||||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment
|
|
||||||
import org.jetbrains.kotlin.android.AndroidConfigurationKeys
|
import org.jetbrains.kotlin.android.AndroidConfigurationKeys
|
||||||
import org.jetbrains.jet.extensions.ExternalDeclarationsProvider
|
import org.jetbrains.jet.extensions.ExternalDeclarationsProvider
|
||||||
import org.jetbrains.jet.codegen.extensions.ExpressionCodegenExtension
|
import org.jetbrains.jet.codegen.extensions.ExpressionCodegenExtension
|
||||||
import org.jetbrains.kotlin.android.AndroidExpressionCodegen
|
import org.jetbrains.kotlin.android.AndroidExpressionCodegen
|
||||||
import org.jetbrains.jet.cli.jvm.compiler.EnvironmentConfigFiles
|
import org.jetbrains.kotlin.codegen.AbstractBytecodeTextTest
|
||||||
|
import org.jetbrains.kotlin.test.JetTestUtils
|
||||||
|
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||||
|
import org.jetbrains.kotlin.test.TestJdkKind
|
||||||
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
|
|
||||||
public abstract class AbstractAndroidBytecodeShapeTest : AbstractBytecodeTextTest() {
|
public abstract class AbstractAndroidBytecodeShapeTest : AbstractBytecodeTextTest() {
|
||||||
|
|
||||||
|
|||||||
+15
-8
@@ -21,17 +21,16 @@ import java.io.File
|
|||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.util.Scanner
|
import java.util.Scanner
|
||||||
import java.io.FileWriter
|
import java.io.FileWriter
|
||||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment
|
|
||||||
import org.jetbrains.jet.config.CompilerConfiguration
|
|
||||||
import org.jetbrains.jet.JetTestUtils
|
|
||||||
import org.jetbrains.jet.ConfigurationKind
|
|
||||||
import org.jetbrains.jet.TestJdkKind
|
|
||||||
import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys
|
|
||||||
import org.junit.Assert
|
import org.junit.Assert
|
||||||
import kotlin.test.fail
|
import kotlin.test.fail
|
||||||
import org.jetbrains.jet.cli.jvm.compiler.EnvironmentConfigFiles
|
|
||||||
import org.jetbrains.jet.lang.resolve.android.CliAndroidUIXmlProcessor
|
import org.jetbrains.jet.lang.resolve.android.CliAndroidUIXmlProcessor
|
||||||
import org.jetbrains.jet.lang.resolve.android.AndroidUIXmlProcessor
|
import org.jetbrains.jet.lang.resolve.android.AndroidUIXmlProcessor
|
||||||
|
import kotlin.test.assertEquals
|
||||||
|
import org.jetbrains.kotlin.test.JetTestUtils
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.compiler.JetCoreEnvironment
|
||||||
|
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||||
|
import org.jetbrains.kotlin.test.TestJdkKind
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
||||||
|
|
||||||
public abstract class AbstractAndroidXml2KConversionTest : UsefulTestCase() {
|
public abstract class AbstractAndroidXml2KConversionTest : UsefulTestCase() {
|
||||||
|
|
||||||
@@ -41,7 +40,15 @@ public abstract class AbstractAndroidXml2KConversionTest : UsefulTestCase() {
|
|||||||
|
|
||||||
val actual = parser.parse()
|
val actual = parser.parse()
|
||||||
|
|
||||||
JetTestUtils.assertEqualsToFile(File(path + "/layout.kt"), actual)
|
val layoutFiles = File(path).listFiles {
|
||||||
|
it.isFile() && it.name.startsWith("layout") && it.name.endsWith(".kt")
|
||||||
|
}?.sortBy { it.name } ?: listOf()
|
||||||
|
|
||||||
|
assertEquals(layoutFiles.size(), actual.size())
|
||||||
|
|
||||||
|
for ((index, file) in layoutFiles.withIndex()) {
|
||||||
|
JetTestUtils.assertEqualsToFile(file, actual[index])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun doNoManifestTest(path: String) {
|
public fun doNoManifestTest(path: String) {
|
||||||
|
|||||||
+4
-4
@@ -17,10 +17,10 @@
|
|||||||
package org.jetbrains.jet.lang.resolve.android.test;
|
package org.jetbrains.jet.lang.resolve.android.test;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.jet.JUnit3RunnerWithInners;
|
import org.jetbrains.kotlin.test.InnerTestClasses;
|
||||||
import org.jetbrains.jet.JetTestUtils;
|
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
||||||
import org.jetbrains.jet.test.InnerTestClasses;
|
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||||
import org.jetbrains.jet.test.TestMetadata;
|
import org.jetbrains.kotlin.test.TestMetadata;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|||||||
+3
-4
@@ -17,10 +17,9 @@
|
|||||||
package org.jetbrains.jet.lang.resolve.android.test;
|
package org.jetbrains.jet.lang.resolve.android.test;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.jet.JUnit3RunnerWithInners;
|
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
||||||
import org.jetbrains.jet.JetTestUtils;
|
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||||
import org.jetbrains.jet.test.InnerTestClasses;
|
import org.jetbrains.kotlin.test.TestMetadata;
|
||||||
import org.jetbrains.jet.test.TestMetadata;
|
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|||||||
+4
-4
@@ -17,10 +17,10 @@
|
|||||||
package org.jetbrains.jet.lang.resolve.android.test;
|
package org.jetbrains.jet.lang.resolve.android.test;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.jet.JUnit3RunnerWithInners;
|
import org.jetbrains.kotlin.test.InnerTestClasses;
|
||||||
import org.jetbrains.jet.JetTestUtils;
|
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
||||||
import org.jetbrains.jet.test.InnerTestClasses;
|
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||||
import org.jetbrains.jet.test.TestMetadata;
|
import org.jetbrains.kotlin.test.TestMetadata;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|||||||
+6
-7
@@ -18,17 +18,16 @@ package org.jetbrains.jet.lang.resolve.android.test
|
|||||||
|
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import org.jetbrains.jet.extensions.ExternalDeclarationsProvider
|
import org.jetbrains.jet.extensions.ExternalDeclarationsProvider
|
||||||
import org.jetbrains.jet.lang.psi.JetFile
|
|
||||||
import org.jetbrains.jet.utils.emptyOrSingletonList
|
|
||||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment
|
|
||||||
import org.jetbrains.kotlin.android.AndroidConfigurationKeys
|
import org.jetbrains.kotlin.android.AndroidConfigurationKeys
|
||||||
import org.jetbrains.jet.cli.jvm.compiler.EnvironmentConfigFiles
|
|
||||||
import org.jetbrains.jet.codegen.extensions.ExpressionCodegenExtension
|
import org.jetbrains.jet.codegen.extensions.ExpressionCodegenExtension
|
||||||
import org.jetbrains.kotlin.android.AndroidExpressionCodegen
|
import org.jetbrains.kotlin.android.AndroidExpressionCodegen
|
||||||
import org.jetbrains.jet.config.CompilerConfiguration
|
|
||||||
import com.intellij.testFramework.UsefulTestCase
|
import com.intellij.testFramework.UsefulTestCase
|
||||||
import org.jetbrains.jet.lang.resolve.android.CliAndroidUIXmlProcessor
|
import org.jetbrains.jet.lang.resolve.android.CliAndroidUIXmlProcessor
|
||||||
import org.jetbrains.jet.analyzer.ModuleInfo
|
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||||
|
import org.jetbrains.kotlin.psi.JetFile
|
||||||
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.compiler.JetCoreEnvironment
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
||||||
|
|
||||||
private class AndroidTestExternalDeclarationsProvider(
|
private class AndroidTestExternalDeclarationsProvider(
|
||||||
val project: Project,
|
val project: Project,
|
||||||
@@ -37,7 +36,7 @@ private class AndroidTestExternalDeclarationsProvider(
|
|||||||
) : ExternalDeclarationsProvider {
|
) : ExternalDeclarationsProvider {
|
||||||
override fun getExternalDeclarations(moduleInfo: ModuleInfo?): Collection<JetFile> {
|
override fun getExternalDeclarations(moduleInfo: ModuleInfo?): Collection<JetFile> {
|
||||||
val parser = CliAndroidUIXmlProcessor(project, manifestPath, resPath)
|
val parser = CliAndroidUIXmlProcessor(project, manifestPath, resPath)
|
||||||
return emptyOrSingletonList(parser.parseToPsi())
|
return parser.parseToPsi() ?: listOf()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,5 +15,6 @@
|
|||||||
<orderEntry type="module" module-name="idea" scope="PROVIDED" />
|
<orderEntry type="module" module-name="idea" scope="PROVIDED" />
|
||||||
<orderEntry type="module" module-name="compiler-tests" scope="TEST" />
|
<orderEntry type="module" module-name="compiler-tests" scope="TEST" />
|
||||||
<orderEntry type="module" module-name="cli" scope="TEST" />
|
<orderEntry type="module" module-name="cli" scope="TEST" />
|
||||||
|
<orderEntry type="module" module-name="light-classes" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
+3
-3
@@ -21,18 +21,18 @@ import com.intellij.psi.PsiElement
|
|||||||
import com.intellij.usageView.UsageInfo
|
import com.intellij.usageView.UsageInfo
|
||||||
import com.intellij.util.Processor
|
import com.intellij.util.Processor
|
||||||
import com.intellij.find.findUsages.FindUsagesOptions
|
import com.intellij.find.findUsages.FindUsagesOptions
|
||||||
import org.jetbrains.jet.lang.psi.JetNamedDeclaration
|
|
||||||
import com.intellij.openapi.actionSystem.DataContext
|
import com.intellij.openapi.actionSystem.DataContext
|
||||||
import org.jetbrains.jet.lang.resolve.android.isAndroidSyntheticElement
|
import org.jetbrains.jet.lang.resolve.android.isAndroidSyntheticElement
|
||||||
import com.intellij.openapi.components.ServiceManager
|
import com.intellij.openapi.components.ServiceManager
|
||||||
import org.jetbrains.jet.lang.resolve.android.AndroidUIXmlProcessor
|
import org.jetbrains.jet.lang.resolve.android.AndroidUIXmlProcessor
|
||||||
import com.intellij.psi.xml.XmlAttribute
|
import com.intellij.psi.xml.XmlAttribute
|
||||||
import org.jetbrains.jet.lang.psi.JetProperty
|
|
||||||
import org.jetbrains.android.util.AndroidResourceUtil
|
import org.jetbrains.android.util.AndroidResourceUtil
|
||||||
import java.util.ArrayList
|
import java.util.ArrayList
|
||||||
import com.intellij.find.findUsages.JavaVariableFindUsagesOptions
|
import com.intellij.find.findUsages.JavaVariableFindUsagesOptions
|
||||||
import org.jetbrains.jet.plugin.findUsages.handlers.KotlinFindUsagesHandlerDecorator
|
import org.jetbrains.jet.plugin.findUsages.handlers.KotlinFindUsagesHandlerDecorator
|
||||||
import org.jetbrains.jet.plugin.util.application.runReadAction
|
import org.jetbrains.kotlin.psi.JetNamedDeclaration
|
||||||
|
import org.jetbrains.kotlin.psi.JetProperty
|
||||||
|
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||||
|
|
||||||
class AndroidFindUsageHandlerDecorator : KotlinFindUsagesHandlerDecorator {
|
class AndroidFindUsageHandlerDecorator : KotlinFindUsagesHandlerDecorator {
|
||||||
override fun decorateHandler(element: PsiElement, forHighlightUsages: Boolean, delegate: FindUsagesHandler): FindUsagesHandler {
|
override fun decorateHandler(element: PsiElement, forHighlightUsages: Boolean, delegate: FindUsagesHandler): FindUsagesHandler {
|
||||||
|
|||||||
+5
-5
@@ -23,15 +23,15 @@ import com.intellij.openapi.actionSystem.DataContext
|
|||||||
import com.intellij.openapi.components.ServiceManager
|
import com.intellij.openapi.components.ServiceManager
|
||||||
import org.jetbrains.jet.lang.resolve.android.AndroidUIXmlProcessor
|
import org.jetbrains.jet.lang.resolve.android.AndroidUIXmlProcessor
|
||||||
import com.intellij.psi.impl.source.tree.LeafPsiElement
|
import com.intellij.psi.impl.source.tree.LeafPsiElement
|
||||||
import org.jetbrains.jet.plugin.references.JetSimpleNameReference
|
|
||||||
import org.jetbrains.jet.lang.psi.JetSimpleNameExpression
|
|
||||||
import org.jetbrains.jet.lang.psi.JetProperty
|
|
||||||
import com.intellij.psi.impl.light.LightElement
|
import com.intellij.psi.impl.light.LightElement
|
||||||
import com.intellij.psi.xml.XmlAttribute
|
import com.intellij.psi.xml.XmlAttribute
|
||||||
import com.intellij.psi.PsiField
|
import com.intellij.psi.PsiField
|
||||||
import com.intellij.openapi.module.ModuleServiceManager
|
import com.intellij.openapi.module.ModuleServiceManager
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.getModuleInfo
|
import org.jetbrains.kotlin.psi.JetSimpleNameExpression
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.ModuleSourceInfo
|
import org.jetbrains.kotlin.idea.references.JetSimpleNameReference
|
||||||
|
import org.jetbrains.kotlin.psi.JetProperty
|
||||||
|
import org.jetbrains.kotlin.idea.caches.resolve.ModuleSourceInfo
|
||||||
|
import org.jetbrains.kotlin.idea.caches.resolve.getModuleInfo
|
||||||
|
|
||||||
public class AndroidGotoDeclarationHandler : GotoDeclarationHandler {
|
public class AndroidGotoDeclarationHandler : GotoDeclarationHandler {
|
||||||
|
|
||||||
|
|||||||
+10
-7
@@ -18,8 +18,6 @@ package org.jetbrains.jet.plugin.android
|
|||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.refactoring.rename.RenamePsiElementProcessor
|
import com.intellij.refactoring.rename.RenamePsiElementProcessor
|
||||||
import org.jetbrains.jet.asJava.*
|
|
||||||
import org.jetbrains.jet.lang.psi.JetProperty
|
|
||||||
import org.jetbrains.jet.lang.resolve.android.isAndroidSyntheticElement
|
import org.jetbrains.jet.lang.resolve.android.isAndroidSyntheticElement
|
||||||
import com.intellij.openapi.components.ServiceManager
|
import com.intellij.openapi.components.ServiceManager
|
||||||
import org.jetbrains.jet.lang.resolve.android.AndroidUIXmlProcessor
|
import org.jetbrains.jet.lang.resolve.android.AndroidUIXmlProcessor
|
||||||
@@ -30,15 +28,20 @@ import org.jetbrains.android.util.AndroidResourceUtil
|
|||||||
import com.intellij.psi.xml.XmlAttribute
|
import com.intellij.psi.xml.XmlAttribute
|
||||||
import com.intellij.psi.impl.light.LightElement
|
import com.intellij.psi.impl.light.LightElement
|
||||||
import com.intellij.openapi.module.ModuleServiceManager
|
import com.intellij.openapi.module.ModuleServiceManager
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.getModuleInfo
|
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.ModuleSourceInfo
|
|
||||||
import com.intellij.openapi.module.Module
|
import com.intellij.openapi.module.Module
|
||||||
import org.jetbrains.jet.lang.psi.JetFile
|
|
||||||
import org.jetbrains.jet.lang.psi.moduleInfo
|
|
||||||
import org.jetbrains.jet.lang.resolve.android.nameToIdDeclaration
|
import org.jetbrains.jet.lang.resolve.android.nameToIdDeclaration
|
||||||
import org.jetbrains.jet.lang.resolve.android.idToName
|
import org.jetbrains.jet.lang.resolve.android.idToName
|
||||||
import com.intellij.psi.PsiField
|
import com.intellij.psi.PsiField
|
||||||
import com.intellij.psi.PsiClass
|
import com.intellij.psi.PsiClass
|
||||||
|
import org.jetbrains.jet.lang.resolve.android.AndroidConst
|
||||||
|
import com.intellij.openapi.module.ModuleUtil
|
||||||
|
import com.intellij.openapi.module.ModuleUtilCore
|
||||||
|
import org.jetbrains.kotlin.psi.JetProperty
|
||||||
|
import org.jetbrains.kotlin.idea.caches.resolve.ModuleSourceInfo
|
||||||
|
import org.jetbrains.kotlin.idea.caches.resolve.getModuleInfo
|
||||||
|
import org.jetbrains.kotlin.psi.JetFile
|
||||||
|
import org.jetbrains.kotlin.psi.moduleInfo
|
||||||
|
import org.jetbrains.kotlin.asJava.namedUnwrappedElement
|
||||||
|
|
||||||
public class AndroidRenameProcessor : RenamePsiElementProcessor() {
|
public class AndroidRenameProcessor : RenamePsiElementProcessor() {
|
||||||
|
|
||||||
@@ -46,7 +49,7 @@ public class AndroidRenameProcessor : RenamePsiElementProcessor() {
|
|||||||
// Either renaming synthetic property, or value in layout xml, or R class field
|
// Either renaming synthetic property, or value in layout xml, or R class field
|
||||||
return (element.namedUnwrappedElement is JetProperty &&
|
return (element.namedUnwrappedElement is JetProperty &&
|
||||||
isAndroidSyntheticElement(element.namedUnwrappedElement)) || element is XmlAttributeValue ||
|
isAndroidSyntheticElement(element.namedUnwrappedElement)) || element is XmlAttributeValue ||
|
||||||
isRClassField(element)
|
isRClassField(element)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isRClassField(element: PsiElement): Boolean {
|
private fun isRClassField(element: PsiElement): Boolean {
|
||||||
|
|||||||
+3
-3
@@ -17,13 +17,13 @@
|
|||||||
package org.jetbrains.jet.plugin.android
|
package org.jetbrains.jet.plugin.android
|
||||||
|
|
||||||
import org.jetbrains.jet.plugin.findUsages.handlers.SimpleNameReferenceExtension
|
import org.jetbrains.jet.plugin.findUsages.handlers.SimpleNameReferenceExtension
|
||||||
import org.jetbrains.jet.plugin.references.JetSimpleNameReference
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.jet.lang.resolve.android.isAndroidSyntheticElement
|
import org.jetbrains.jet.lang.resolve.android.isAndroidSyntheticElement
|
||||||
import org.jetbrains.android.dom.wrappers.ValueResourceElementWrapper
|
import org.jetbrains.android.dom.wrappers.ValueResourceElementWrapper
|
||||||
import org.jetbrains.jet.lang.psi.JetProperty
|
|
||||||
import com.intellij.psi.impl.light.LightElement
|
import com.intellij.psi.impl.light.LightElement
|
||||||
import org.jetbrains.jet.lang.psi.JetPsiFactory
|
import org.jetbrains.kotlin.idea.references.JetSimpleNameReference
|
||||||
|
import org.jetbrains.kotlin.psi.JetProperty
|
||||||
|
import org.jetbrains.kotlin.psi.JetPsiFactory
|
||||||
|
|
||||||
public class AndroidSimpleNameReferenceExtension : SimpleNameReferenceExtension {
|
public class AndroidSimpleNameReferenceExtension : SimpleNameReferenceExtension {
|
||||||
override fun isReferenceTo(reference: JetSimpleNameReference, element: PsiElement): Boolean? {
|
override fun isReferenceTo(reference: JetSimpleNameReference, element: PsiElement): Boolean? {
|
||||||
|
|||||||
+7
-7
@@ -18,13 +18,13 @@ package org.jetbrains.jet.plugin.android
|
|||||||
|
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import org.jetbrains.jet.extensions.ExternalDeclarationsProvider
|
import org.jetbrains.jet.extensions.ExternalDeclarationsProvider
|
||||||
import org.jetbrains.jet.analyzer.ModuleInfo
|
|
||||||
import org.jetbrains.jet.lang.psi.JetFile
|
|
||||||
import com.intellij.openapi.components.ServiceManager
|
import com.intellij.openapi.components.ServiceManager
|
||||||
import org.jetbrains.jet.lang.resolve.android.AndroidUIXmlProcessor
|
import org.jetbrains.jet.lang.resolve.android.AndroidUIXmlProcessor
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.ModuleSourceInfo
|
|
||||||
import com.intellij.openapi.module.ModuleServiceManager
|
import com.intellij.openapi.module.ModuleServiceManager
|
||||||
import org.jetbrains.jet.lang.psi.moduleInfo
|
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||||
|
import org.jetbrains.kotlin.idea.caches.resolve.ModuleSourceInfo
|
||||||
|
import org.jetbrains.kotlin.psi.JetFile
|
||||||
|
import org.jetbrains.kotlin.psi.moduleInfo
|
||||||
|
|
||||||
public class IDEAndroidExternalDeclarationsProvider(private val project: Project) : ExternalDeclarationsProvider {
|
public class IDEAndroidExternalDeclarationsProvider(private val project: Project) : ExternalDeclarationsProvider {
|
||||||
override fun getExternalDeclarations(moduleInfo: ModuleInfo?): Collection<JetFile> {
|
override fun getExternalDeclarations(moduleInfo: ModuleInfo?): Collection<JetFile> {
|
||||||
@@ -32,9 +32,9 @@ public class IDEAndroidExternalDeclarationsProvider(private val project: Project
|
|||||||
|
|
||||||
val module = moduleInfo.module
|
val module = moduleInfo.module
|
||||||
val parser = ModuleServiceManager.getService<AndroidUIXmlProcessor>(module, javaClass<AndroidUIXmlProcessor>())
|
val parser = ModuleServiceManager.getService<AndroidUIXmlProcessor>(module, javaClass<AndroidUIXmlProcessor>())
|
||||||
val syntheticFile = parser.parseToPsi()
|
val syntheticFiles = parser.parseToPsi()
|
||||||
syntheticFile?.moduleInfo = moduleInfo
|
syntheticFiles?.forEach { it.moduleInfo = moduleInfo }
|
||||||
|
|
||||||
return if (syntheticFile != null) listOf(syntheticFile) else listOf()
|
return syntheticFiles ?: listOf()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+2
-6
@@ -16,23 +16,19 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.android
|
package org.jetbrains.jet.android
|
||||||
|
|
||||||
import org.jetbrains.jet.plugin.PluginTestCaseBase
|
|
||||||
import com.intellij.openapi.application.PathManager
|
import com.intellij.openapi.application.PathManager
|
||||||
import com.intellij.codeInsight.completion.CompletionType
|
import com.intellij.codeInsight.completion.CompletionType
|
||||||
import com.intellij.openapi.util.io.FileUtil
|
import com.intellij.openapi.util.io.FileUtil
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import org.jetbrains.jet.completion.util.testCompletion
|
|
||||||
import org.jetbrains.jet.plugin.project.TargetPlatform
|
|
||||||
import com.intellij.ide.startup.impl.StartupManagerImpl
|
import com.intellij.ide.startup.impl.StartupManagerImpl
|
||||||
import com.intellij.openapi.vfs.newvfs.impl.VfsRootAccess
|
import com.intellij.openapi.vfs.newvfs.impl.VfsRootAccess
|
||||||
import com.intellij.openapi.startup.StartupManager
|
import com.intellij.openapi.startup.StartupManager
|
||||||
import org.jetbrains.jet.JetTestCaseBuilder
|
|
||||||
import org.jetbrains.jet.plugin.actions.internal.KotlinInternalMode
|
|
||||||
import com.intellij.psi.impl.PsiManagerEx
|
import com.intellij.psi.impl.PsiManagerEx
|
||||||
import com.intellij.psi.PsiManager
|
import com.intellij.psi.PsiManager
|
||||||
import org.jetbrains.jet.plugin.references.BuiltInsReferenceResolver
|
|
||||||
import com.android.SdkConstants
|
import com.android.SdkConstants
|
||||||
import com.intellij.codeInsight.CodeInsightSettings
|
import com.intellij.codeInsight.CodeInsightSettings
|
||||||
|
import org.jetbrains.kotlin.completion.util.testCompletion
|
||||||
|
import org.jetbrains.kotlin.idea.project.TargetPlatform
|
||||||
|
|
||||||
public abstract class AbstractAndroidCompletionTest : KotlinAndroidTestCase() {
|
public abstract class AbstractAndroidCompletionTest : KotlinAndroidTestCase() {
|
||||||
private var kotlinInternalModeOriginalValue: Boolean = false
|
private var kotlinInternalModeOriginalValue: Boolean = false
|
||||||
|
|||||||
-1
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.android
|
package org.jetbrains.jet.android
|
||||||
|
|
||||||
import org.jetbrains.jet.plugin.PluginTestCaseBase
|
|
||||||
import kotlin.test.assertTrue
|
import kotlin.test.assertTrue
|
||||||
import com.intellij.codeInsight.TargetElementUtilBase
|
import com.intellij.codeInsight.TargetElementUtilBase
|
||||||
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction
|
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction
|
||||||
|
|||||||
+1
-2
@@ -18,11 +18,10 @@ package org.jetbrains.jet.android
|
|||||||
|
|
||||||
import com.intellij.openapi.application.PathManager
|
import com.intellij.openapi.application.PathManager
|
||||||
import com.android.SdkConstants
|
import com.android.SdkConstants
|
||||||
import org.jetbrains.jet.plugin.PluginTestCaseBase
|
|
||||||
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction
|
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction
|
||||||
import kotlin.test.fail
|
import kotlin.test.fail
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
import org.jetbrains.jet.lang.psi.JetProperty
|
import org.jetbrains.kotlin.psi.JetProperty
|
||||||
|
|
||||||
public abstract class AbstractAndroidGotoTest : KotlinAndroidTestCase() {
|
public abstract class AbstractAndroidGotoTest : KotlinAndroidTestCase() {
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -21,12 +21,11 @@ import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil
|
|||||||
import com.intellij.codeInsight.TargetElementUtilBase
|
import com.intellij.codeInsight.TargetElementUtilBase
|
||||||
import com.intellij.refactoring.rename.RenamePsiElementProcessor
|
import com.intellij.refactoring.rename.RenamePsiElementProcessor
|
||||||
import com.intellij.refactoring.rename.RenameProcessor
|
import com.intellij.refactoring.rename.RenameProcessor
|
||||||
import org.jetbrains.jet.plugin.PluginTestCaseBase
|
|
||||||
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction
|
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
import kotlin.test.assertTrue
|
import kotlin.test.assertTrue
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.jet.lang.psi.JetProperty
|
import org.jetbrains.kotlin.psi.JetProperty
|
||||||
|
|
||||||
public abstract class AbstractAndroidRenameTest : KotlinAndroidTestCase() {
|
public abstract class AbstractAndroidRenameTest : KotlinAndroidTestCase() {
|
||||||
|
|
||||||
|
|||||||
+7
-9
@@ -16,19 +16,17 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.android
|
package org.jetbrains.jet.android
|
||||||
|
|
||||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment
|
|
||||||
import org.jetbrains.jet.lang.resolve.android.CliAndroidUIXmlProcessor
|
import org.jetbrains.jet.lang.resolve.android.CliAndroidUIXmlProcessor
|
||||||
import org.jetbrains.jet.JetTestUtils
|
|
||||||
import org.jetbrains.jet.ConfigurationKind
|
|
||||||
import org.jetbrains.jet.TestJdkKind
|
|
||||||
import org.jetbrains.jet.plugin.android.IDEAndroidUIXmlProcessor
|
import org.jetbrains.jet.plugin.android.IDEAndroidUIXmlProcessor
|
||||||
import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys
|
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
import org.jetbrains.jet.plugin.android.TestConst
|
import org.jetbrains.jet.plugin.android.TestConst
|
||||||
import org.jetbrains.jet.plugin.PluginTestCaseBase
|
|
||||||
import org.jetbrains.kotlin.android.AndroidConfigurationKeys
|
import org.jetbrains.kotlin.android.AndroidConfigurationKeys
|
||||||
import org.jetbrains.jet.cli.jvm.compiler.EnvironmentConfigFiles
|
|
||||||
import com.intellij.openapi.module.ModuleManager
|
import com.intellij.openapi.module.ModuleManager
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.compiler.JetCoreEnvironment
|
||||||
|
import org.jetbrains.kotlin.test.JetTestUtils
|
||||||
|
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||||
|
import org.jetbrains.kotlin.test.TestJdkKind
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
||||||
|
|
||||||
public abstract class AbstractParserResultEqualityTest : KotlinAndroidTestCase() {
|
public abstract class AbstractParserResultEqualityTest : KotlinAndroidTestCase() {
|
||||||
public fun doTest(path: String) {
|
public fun doTest(path: String) {
|
||||||
@@ -38,8 +36,8 @@ public abstract class AbstractParserResultEqualityTest : KotlinAndroidTestCase()
|
|||||||
val cliParser = CliAndroidUIXmlProcessor(project, path + "../AndroidManifest.xml", path + getResDir() + "/layout/")
|
val cliParser = CliAndroidUIXmlProcessor(project, path + "../AndroidManifest.xml", path + getResDir() + "/layout/")
|
||||||
val ideParser = IDEAndroidUIXmlProcessor(ModuleManager.getInstance(project).getModules()[0])
|
val ideParser = IDEAndroidUIXmlProcessor(ModuleManager.getInstance(project).getModules()[0])
|
||||||
|
|
||||||
val cliResult = cliParser.parseToPsi()!!.getText()
|
val cliResult = cliParser.parseToPsi()!!.joinToString("\n\n")
|
||||||
val ideResult = ideParser.parseToPsi()!!.getText()
|
val ideResult = ideParser.parseToPsi()!!.joinToString("\n\n")
|
||||||
|
|
||||||
assertEquals(cliResult, ideResult)
|
assertEquals(cliResult, ideResult)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-4
@@ -17,10 +17,9 @@
|
|||||||
package org.jetbrains.jet.android;
|
package org.jetbrains.jet.android;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.jet.JUnit3RunnerWithInners;
|
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
||||||
import org.jetbrains.jet.JetTestUtils;
|
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||||
import org.jetbrains.jet.test.InnerTestClasses;
|
import org.jetbrains.kotlin.test.TestMetadata;
|
||||||
import org.jetbrains.jet.test.TestMetadata;
|
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|||||||
+3
-4
@@ -17,10 +17,9 @@
|
|||||||
package org.jetbrains.jet.android;
|
package org.jetbrains.jet.android;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.jet.JUnit3RunnerWithInners;
|
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
||||||
import org.jetbrains.jet.JetTestUtils;
|
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||||
import org.jetbrains.jet.test.InnerTestClasses;
|
import org.jetbrains.kotlin.test.TestMetadata;
|
||||||
import org.jetbrains.jet.test.TestMetadata;
|
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|||||||
+3
-4
@@ -17,10 +17,9 @@
|
|||||||
package org.jetbrains.jet.android;
|
package org.jetbrains.jet.android;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.jet.JUnit3RunnerWithInners;
|
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
||||||
import org.jetbrains.jet.JetTestUtils;
|
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||||
import org.jetbrains.jet.test.InnerTestClasses;
|
import org.jetbrains.kotlin.test.TestMetadata;
|
||||||
import org.jetbrains.jet.test.TestMetadata;
|
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|||||||
+3
-4
@@ -17,10 +17,9 @@
|
|||||||
package org.jetbrains.jet.android;
|
package org.jetbrains.jet.android;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.jet.JUnit3RunnerWithInners;
|
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
||||||
import org.jetbrains.jet.JetTestUtils;
|
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||||
import org.jetbrains.jet.test.InnerTestClasses;
|
import org.jetbrains.kotlin.test.TestMetadata;
|
||||||
import org.jetbrains.jet.test.TestMetadata;
|
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|||||||
+9
-9
@@ -21,7 +21,6 @@ import com.android.ide.common.rendering.RenderSecurityManager;
|
|||||||
import com.intellij.analysis.AnalysisScope;
|
import com.intellij.analysis.AnalysisScope;
|
||||||
import com.intellij.codeInspection.GlobalInspectionTool;
|
import com.intellij.codeInspection.GlobalInspectionTool;
|
||||||
import com.intellij.codeInspection.InspectionManager;
|
import com.intellij.codeInspection.InspectionManager;
|
||||||
import com.intellij.codeInspection.ex.GlobalInspectionContextImpl;
|
|
||||||
import com.intellij.codeInspection.ex.GlobalInspectionToolWrapper;
|
import com.intellij.codeInspection.ex.GlobalInspectionToolWrapper;
|
||||||
import com.intellij.codeInspection.ex.InspectionManagerEx;
|
import com.intellij.codeInspection.ex.InspectionManagerEx;
|
||||||
import com.intellij.facet.FacetManager;
|
import com.intellij.facet.FacetManager;
|
||||||
@@ -43,13 +42,14 @@ import com.intellij.testFramework.TestLogger;
|
|||||||
import com.intellij.testFramework.builders.JavaModuleFixtureBuilder;
|
import com.intellij.testFramework.builders.JavaModuleFixtureBuilder;
|
||||||
import com.intellij.testFramework.fixtures.*;
|
import com.intellij.testFramework.fixtures.*;
|
||||||
import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl;
|
import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl;
|
||||||
|
import com.intellij.testFramework.fixtures.impl.GlobalInspectionContextForTests;
|
||||||
import org.jetbrains.android.facet.AndroidFacet;
|
import org.jetbrains.android.facet.AndroidFacet;
|
||||||
import org.jetbrains.android.facet.AndroidRootUtil;
|
import org.jetbrains.android.facet.AndroidRootUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.JetTestCaseBuilder;
|
import org.jetbrains.kotlin.idea.actions.internal.KotlinInternalMode;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.kotlin.idea.references.BuiltInsReferenceResolver;
|
||||||
import org.jetbrains.jet.plugin.actions.internal.KotlinInternalMode;
|
import org.jetbrains.kotlin.psi.JetFile;
|
||||||
import org.jetbrains.jet.plugin.references.BuiltInsReferenceResolver;
|
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -147,7 +147,7 @@ public abstract class KotlinAndroidTestCase extends KotlinAndroidTestCaseBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
((StartupManagerImpl) StartupManager.getInstance(getProject())).runPostStartupActivities();
|
((StartupManagerImpl) StartupManager.getInstance(getProject())).runPostStartupActivities();
|
||||||
VfsRootAccess.allowRootAccess(JetTestCaseBuilder.getHomeDirectory());
|
VfsRootAccess.allowRootAccess(JetTestUtils.getHomeDirectory());
|
||||||
|
|
||||||
kotlinInternalModeOriginalValue = KotlinInternalMode.OBJECT$.getEnabled();
|
kotlinInternalModeOriginalValue = KotlinInternalMode.OBJECT$.getEnabled();
|
||||||
KotlinInternalMode.OBJECT$.setEnabled(true);
|
KotlinInternalMode.OBJECT$.setEnabled(true);
|
||||||
@@ -233,7 +233,7 @@ public abstract class KotlinAndroidTestCase extends KotlinAndroidTestCaseBase {
|
|||||||
@Override
|
@Override
|
||||||
public void tearDown() throws Exception {
|
public void tearDown() throws Exception {
|
||||||
KotlinInternalMode.OBJECT$.setEnabled(kotlinInternalModeOriginalValue);
|
KotlinInternalMode.OBJECT$.setEnabled(kotlinInternalModeOriginalValue);
|
||||||
VfsRootAccess.disallowRootAccess(JetTestCaseBuilder.getHomeDirectory());
|
VfsRootAccess.disallowRootAccess(JetTestUtils.getHomeDirectory());
|
||||||
|
|
||||||
Set<JetFile> builtInsSources = getProject().getComponent(BuiltInsReferenceResolver.class).getBuiltInsSources();
|
Set<JetFile> builtInsSources = getProject().getComponent(BuiltInsReferenceResolver.class).getBuiltInsSources();
|
||||||
FileManager fileManager = ((PsiManagerEx) PsiManager.getInstance(getProject())).getFileManager();
|
FileManager fileManager = ((PsiManagerEx) PsiManager.getInstance(getProject())).getFileManager();
|
||||||
@@ -293,10 +293,10 @@ public abstract class KotlinAndroidTestCase extends KotlinAndroidTestCaseBase {
|
|||||||
scope.invalidate();
|
scope.invalidate();
|
||||||
|
|
||||||
final InspectionManagerEx inspectionManager = (InspectionManagerEx)InspectionManager.getInstance(getProject());
|
final InspectionManagerEx inspectionManager = (InspectionManagerEx)InspectionManager.getInstance(getProject());
|
||||||
final GlobalInspectionContextImpl globalContext =
|
final GlobalInspectionContextForTests globalContext =
|
||||||
CodeInsightTestFixtureImpl.createGlobalContextForTool(scope, getProject(), inspectionManager, wrapper);
|
CodeInsightTestFixtureImpl.createGlobalContextForTool(scope, getProject(), inspectionManager, wrapper);
|
||||||
|
|
||||||
InspectionTestUtil.runTool(wrapper, scope, globalContext, inspectionManager);
|
InspectionTestUtil.runTool(wrapper, scope, globalContext);
|
||||||
InspectionTestUtil.compareToolResults(globalContext, wrapper, false, getTestDataPath() + globalTestDir);
|
InspectionTestUtil.compareToolResults(globalContext, wrapper, false, getTestDataPath() + globalTestDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-5
@@ -28,7 +28,6 @@ import com.intellij.openapi.roots.ModuleRootModificationUtil;
|
|||||||
import com.intellij.openapi.roots.OrderRootType;
|
import com.intellij.openapi.roots.OrderRootType;
|
||||||
import com.intellij.openapi.util.Segment;
|
import com.intellij.openapi.util.Segment;
|
||||||
import com.intellij.openapi.util.TextRange;
|
import com.intellij.openapi.util.TextRange;
|
||||||
import com.intellij.openapi.vfs.JarFileSystem;
|
|
||||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
import com.intellij.openapi.vfs.VirtualFile;
|
||||||
import com.intellij.openapi.vfs.VirtualFileManager;
|
import com.intellij.openapi.vfs.VirtualFileManager;
|
||||||
@@ -38,13 +37,11 @@ import com.intellij.psi.xml.XmlAttributeValue;
|
|||||||
import com.intellij.testFramework.IdeaTestCase;
|
import com.intellij.testFramework.IdeaTestCase;
|
||||||
import com.intellij.testFramework.UsefulTestCase;
|
import com.intellij.testFramework.UsefulTestCase;
|
||||||
import com.intellij.testFramework.fixtures.CodeInsightTestFixture;
|
import com.intellij.testFramework.fixtures.CodeInsightTestFixture;
|
||||||
import com.intellij.testFramework.fixtures.JavaCodeInsightTestFixture;
|
|
||||||
import org.jetbrains.android.dom.wrappers.LazyValueResourceElementWrapper;
|
import org.jetbrains.android.dom.wrappers.LazyValueResourceElementWrapper;
|
||||||
import org.jetbrains.android.sdk.*;
|
import org.jetbrains.android.sdk.*;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.JetTestCaseBuilder;
|
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||||
import org.jetbrains.jet.plugin.PluginTestCaseBase;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
@@ -83,7 +80,7 @@ public abstract class KotlinAndroidTestCaseBase extends UsefulTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static String getPluginTestDataPathBase() {
|
public static String getPluginTestDataPathBase() {
|
||||||
return JetTestCaseBuilder.getHomeDirectory() + TEST_DATA_PROJECT_RELATIVE;
|
return JetTestUtils.getHomeDirectory() + TEST_DATA_PROJECT_RELATIVE;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTestDataPath() {
|
public String getTestDataPath() {
|
||||||
|
|||||||
+3
-4
@@ -17,10 +17,9 @@
|
|||||||
package org.jetbrains.jet.android;
|
package org.jetbrains.jet.android;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.jet.JUnit3RunnerWithInners;
|
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
||||||
import org.jetbrains.jet.JetTestUtils;
|
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||||
import org.jetbrains.jet.test.InnerTestClasses;
|
import org.jetbrains.kotlin.test.TestMetadata;
|
||||||
import org.jetbrains.jet.test.TestMetadata;
|
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ import java.io.File
|
|||||||
import org.jetbrains.jps.android.AndroidJpsUtil
|
import org.jetbrains.jps.android.AndroidJpsUtil
|
||||||
import org.jetbrains.kotlin.compiler.plugin.CliOption
|
import org.jetbrains.kotlin.compiler.plugin.CliOption
|
||||||
import org.jetbrains.kotlin.android.AndroidCommandLineProcessor
|
import org.jetbrains.kotlin.android.AndroidCommandLineProcessor
|
||||||
import org.jetbrains.jet.utils.PathUtil
|
|
||||||
import org.jetbrains.kotlin.compiler.plugin.getPluginOptionString
|
import org.jetbrains.kotlin.compiler.plugin.getPluginOptionString
|
||||||
|
import com.intellij.util.PathUtil
|
||||||
|
|
||||||
public class KotlinAndroidJpsPlugin : KotlinJpsCompilerArgumentsProvider {
|
public class KotlinAndroidJpsPlugin : KotlinJpsCompilerArgumentsProvider {
|
||||||
private val jarFileName = "android-compiler-plugin.jar"
|
private val jarFileName = "android-compiler-plugin.jar"
|
||||||
@@ -42,16 +42,16 @@ public class KotlinAndroidJpsPlugin : KotlinJpsCompilerArgumentsProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun getClasspath(moduleBuildTarget: ModuleBuildTarget, context: CompileContext): List<String> {
|
override fun getClasspath(moduleBuildTarget: ModuleBuildTarget, context: CompileContext): List<String> {
|
||||||
val inJar = PathUtil.getJarPathForClass(javaClass).isFile()
|
val inJar = File(PathUtil.getJarPathForClass(javaClass)).isFile()
|
||||||
val manifestFile = getAndroidManifest(moduleBuildTarget.getModule())
|
val manifestFile = getAndroidManifest(moduleBuildTarget.getModule())
|
||||||
return if (manifestFile != null) {
|
return if (manifestFile != null) {
|
||||||
listOf(
|
listOf(
|
||||||
if (inJar) {
|
if (inJar) {
|
||||||
val libDirectory = PathUtil.getJarPathForClass(javaClass).getParentFile().getParentFile()
|
val libDirectory = File(PathUtil.getJarPathForClass(javaClass)).getParentFile().getParentFile()
|
||||||
File(libDirectory, jarFileName).getAbsolutePath()
|
File(libDirectory, jarFileName).getAbsolutePath()
|
||||||
} else {
|
} else {
|
||||||
// We're in tests now (in out/production/android-jps-plugin)
|
// We're in tests now (in out/production/android-jps-plugin)
|
||||||
val kotlinProjectDirectory = PathUtil.getJarPathForClass(javaClass).getParentFile().getParentFile().getParentFile()
|
val kotlinProjectDirectory = File(PathUtil.getJarPathForClass(javaClass)).getParentFile().getParentFile().getParentFile()
|
||||||
File(kotlinProjectDirectory, "dist/kotlinc/lib/$jarFileName").getAbsolutePath()
|
File(kotlinProjectDirectory, "dist/kotlinc/lib/$jarFileName").getAbsolutePath()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-4
@@ -17,10 +17,9 @@
|
|||||||
package org.jetbrains.jet.jps.build.android;
|
package org.jetbrains.jet.jps.build.android;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.jet.JUnit3RunnerWithInners;
|
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
||||||
import org.jetbrains.jet.JetTestUtils;
|
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||||
import org.jetbrains.jet.test.InnerTestClasses;
|
import org.jetbrains.kotlin.test.TestMetadata;
|
||||||
import org.jetbrains.jet.test.TestMetadata;
|
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|||||||
Reference in New Issue
Block a user