Merge remote branch 'origin/master'
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
package org.jetbrains.jet.lang.psi;
|
package org.jetbrains.jet.lang.psi;
|
||||||
|
|
||||||
import com.intellij.lang.ASTNode;
|
import com.intellij.lang.ASTNode;
|
||||||
import com.intellij.psi.util.PsiTreeUtil;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.JetNodeTypes;
|
import org.jetbrains.jet.JetNodeTypes;
|
||||||
@@ -105,17 +104,6 @@ public class JetClass extends JetTypeParameterListOwner implements JetClassOrObj
|
|||||||
return body.getProperties();
|
return body.getProperties();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getFQName() {
|
|
||||||
JetNamedDeclaration parent = PsiTreeUtil.getParentOfType(this, JetNamespace.class, JetClass.class);
|
|
||||||
if (parent instanceof JetNamespace) {
|
|
||||||
return ((JetNamespace) parent).getFQName() + "." + getName();
|
|
||||||
}
|
|
||||||
if (parent instanceof JetClass) {
|
|
||||||
return ((JetClass) parent).getFQName() + "." + getName();
|
|
||||||
}
|
|
||||||
return getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isTrait() {
|
public boolean isTrait() {
|
||||||
return findChildByType(JetTokens.TRAIT_KEYWORD) != null;
|
return findChildByType(JetTokens.TRAIT_KEYWORD) != null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,11 @@ import com.intellij.openapi.module.Module;
|
|||||||
import com.intellij.openapi.util.text.StringUtil;
|
import com.intellij.openapi.util.text.StringUtil;
|
||||||
import com.intellij.psi.PsiElement;
|
import com.intellij.psi.PsiElement;
|
||||||
import com.intellij.psi.PsiFile;
|
import com.intellij.psi.PsiFile;
|
||||||
import org.jetbrains.jet.lang.psi.*;
|
import com.intellij.psi.util.PsiTreeUtil;
|
||||||
|
import org.jetbrains.jet.lang.psi.JetClass;
|
||||||
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
|
import org.jetbrains.jet.lang.psi.JetNamedDeclaration;
|
||||||
|
import org.jetbrains.jet.lang.psi.JetNamespace;
|
||||||
import org.jetbrains.jet.plugin.JetMainDetector;
|
import org.jetbrains.jet.plugin.JetMainDetector;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -21,6 +25,17 @@ public class JetRunConfigurationProducer extends RuntimeConfigurationProducer im
|
|||||||
super(JetRunConfigurationType.getInstance());
|
super(JetRunConfigurationType.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String getFQName(JetClass jetClass) {
|
||||||
|
JetNamedDeclaration parent = PsiTreeUtil.getParentOfType(jetClass, JetNamespace.class, JetClass.class);
|
||||||
|
if (parent instanceof JetNamespace) {
|
||||||
|
return ((JetNamespace) parent).getFQName() + "." + jetClass.getName();
|
||||||
|
}
|
||||||
|
if (parent instanceof JetClass) {
|
||||||
|
return getFQName(((JetClass) parent)) + "." + jetClass.getName();
|
||||||
|
}
|
||||||
|
return jetClass.getName();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PsiElement getSourceElement() {
|
public PsiElement getSourceElement() {
|
||||||
return mySourceElement;
|
return mySourceElement;
|
||||||
@@ -31,7 +46,7 @@ public class JetRunConfigurationProducer extends RuntimeConfigurationProducer im
|
|||||||
JetClass containingClass = (JetClass) location.getParentElement(JetClass.class);
|
JetClass containingClass = (JetClass) location.getParentElement(JetClass.class);
|
||||||
if (containingClass != null && JetMainDetector.hasMain(containingClass.getDeclarations())) {
|
if (containingClass != null && JetMainDetector.hasMain(containingClass.getDeclarations())) {
|
||||||
mySourceElement = containingClass;
|
mySourceElement = containingClass;
|
||||||
return createConfigurationByQName(location.getModule(), configurationContext, containingClass.getFQName());
|
return createConfigurationByQName(location.getModule(), configurationContext, getFQName(containingClass));
|
||||||
}
|
}
|
||||||
PsiFile psiFile = location.getPsiElement().getContainingFile();
|
PsiFile psiFile = location.getPsiElement().getContainingFile();
|
||||||
if (psiFile instanceof JetFile) {
|
if (psiFile instanceof JetFile) {
|
||||||
|
|||||||
Reference in New Issue
Block a user