diff --git a/idea/src/org/jetbrains/jet/JetNodeTypes.java b/idea/src/org/jetbrains/jet/JetNodeTypes.java index 132df67e06a..4958894873a 100644 --- a/idea/src/org/jetbrains/jet/JetNodeTypes.java +++ b/idea/src/org/jetbrains/jet/JetNodeTypes.java @@ -36,7 +36,6 @@ public interface JetNodeTypes { // TODO: Not sure if we really need separate PSI nodes for the class parameters? JetNodeType PRIMARY_CONSTRUCTOR_PARAMETERS_LIST = new JetNodeType("PRIMARY_CONSTRUCTOR_PARAMETERS_LIST", JetParameterList.class); JetNodeType PRIMARY_CONSTRUCTOR_PARAMETER = new JetNodeType("PRIMARY_CONSTRUCTOR_PARAMETER", JetParameter.class); - JetNodeType NAMED_ARGUMENT = new JetNodeType("NAMED_ARGUMENT"); JetNodeType CLASS_BODY = new JetNodeType("CLASS_BODY", JetClassBody.class); JetNodeType IMPORT_DIRECTIVE = new JetNodeType("IMPORT_DIRECTIVE", JetImportDirective.class); JetNodeType IMPORTED = new JetNodeType("IMPORTED"); @@ -48,6 +47,7 @@ public interface JetNodeTypes { JetNodeType TYPE_ARGUMENT_LIST = new JetNodeType("TYPE_ARGUMENT_LIST", JetTypeArgumentList.class); JetNodeType VALUE_ARGUMENT_LIST = new JetNodeType("VALUE_ARGUMENT_LIST", JetArgumentList.class); JetNodeType VALUE_ARGUMENT = new JetNodeType("VALUE_ARGUMENT", JetArgument.class); + JetNodeType NAMED_ARGUMENT = new JetNodeType("NAMED_ARGUMENT"); JetNodeType TYPE_REFERENCE = new JetNodeType("TYPE_REFERENCE", JetTypeReference.class); JetNodeType LABELED_TUPLE_ENTRY = new JetNodeType("LABELED_TUPLE_ENTRY"); JetNodeType TUPLE_TYPE = new JetNodeType("TUPLE_TYPE"); diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetArgument.java b/idea/src/org/jetbrains/jet/lang/psi/JetArgument.java index 57c19f3f10d..4d6a3f26b28 100644 --- a/idea/src/org/jetbrains/jet/lang/psi/JetArgument.java +++ b/idea/src/org/jetbrains/jet/lang/psi/JetArgument.java @@ -2,6 +2,7 @@ package org.jetbrains.jet.lang.psi; import com.intellij.lang.ASTNode; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** * @author max @@ -14,4 +15,9 @@ public class JetArgument extends JetElement { public void accept(JetVisitor visitor) { visitor.visitArgument(this); } + + @Nullable + public JetExpression getArgumentExpression() { + return findChildByClass(JetExpression.class); + } } diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetNamedArgumentImpl.java b/idea/src/org/jetbrains/jet/lang/psi/JetNamedArgumentImpl.java new file mode 100644 index 00000000000..b0625fccdb4 --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetNamedArgumentImpl.java @@ -0,0 +1,22 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lexer.JetTokens; + +/** + * @author max + */ +public class JetNamedArgumentImpl extends JetArgument { + public JetNamedArgumentImpl(@NotNull ASTNode node) { + super(node); + } + + public String getParameterName() { + return getParameterNameNode().getText(); + } + + private ASTNode getParameterNameNode() { + return getNode().findChildByType(JetTokens.IDENTIFIER); + } +}