Import directive node getters
This commit is contained in:
@@ -38,7 +38,7 @@ public interface JetNodeTypes {
|
||||
JetNodeType PRIMARY_CONSTRUCTOR_PARAMETER = new JetNodeType("PRIMARY_CONSTRUCTOR_PARAMETER", JetParameter.class);
|
||||
JetNodeType CLASS_BODY = new JetNodeType("CLASS_BODY", JetClassBody.class);
|
||||
JetNodeType IMPORT_DIRECTIVE = new JetNodeType("IMPORT_DIRECTIVE", JetImportDirective.class);
|
||||
JetNodeType IMPORTED = new JetNodeType("IMPORTED");
|
||||
JetNodeType IMPORTED = new JetNodeType("IMPORTED"); // TODO: ???
|
||||
JetNodeType NAMESPACE_BODY = new JetNodeType("NAMESPACE_BODY", JetNamespaceBody.class);
|
||||
JetNodeType MODIFIER_LIST = new JetNodeType("MODIFIER_LIST", JetModifierList.class);
|
||||
JetNodeType ATTRIBUTE_ANNOTATION = new JetNodeType("ATTRIBUTE_ANNOTATION", JetAttributeAnnotation.class);
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package org.jetbrains.jet.lang.psi;
|
||||
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lexer.JetTokens;
|
||||
|
||||
/**
|
||||
* @author max
|
||||
@@ -15,4 +18,39 @@ public class JetImportDirective extends JetElement {
|
||||
public void accept(@NotNull JetVisitor visitor) {
|
||||
visitor.visitImportDirective(this);
|
||||
}
|
||||
|
||||
public String getImportedName() {
|
||||
StringBuilder answer = new StringBuilder();
|
||||
ASTNode childNode = getNode().getFirstChildNode();
|
||||
while (childNode != null) {
|
||||
IElementType tt = childNode.getElementType();
|
||||
if (tt == JetTokens.MAP || tt == JetTokens.AS_KEYWORD) break;
|
||||
if (tt == JetTokens.IDENTIFIER || tt == JetTokens.DOT) {
|
||||
answer.append(childNode.getText());
|
||||
}
|
||||
childNode = childNode.getTreeNext();
|
||||
}
|
||||
return answer.toString();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getAliasName() {
|
||||
boolean asPassed = false;
|
||||
ASTNode childNode = getNode().getFirstChildNode();
|
||||
while (childNode != null) {
|
||||
IElementType tt = childNode.getElementType();
|
||||
if (tt == JetTokens.AS_KEYWORD) asPassed = true;
|
||||
if (asPassed && tt == JetTokens.IDENTIFIER) {
|
||||
return childNode.getText();
|
||||
}
|
||||
|
||||
childNode = childNode.getTreeNext();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isAllUnder() {
|
||||
return getNode().findChildByType(JetTokens.MAP) != null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user