Declare Variable, Add type annotation action for Introduce Variable feature.

This commit is contained in:
Alefas
2012-02-14 21:31:27 +04:00
parent a03922d467
commit 39d442b04f
6 changed files with 168 additions and 11 deletions
@@ -137,4 +137,9 @@ public class JetProperty extends JetTypeParameterListOwner implements JetModifie
public ASTNode getValOrVarNode() {
return getNode().findChildByType(TokenSet.create(VAL_KEYWORD, VAR_KEYWORD));
}
@Nullable
public ASTNode getEqualsSign() {
return getNode().findChildByType(TokenSet.create(EQ));
}
}
@@ -16,6 +16,7 @@
package org.jetbrains.jet.lang.psi;
import com.intellij.lang.ASTNode;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Pair;
import com.intellij.psi.PsiElement;
@@ -24,6 +25,7 @@ import com.intellij.util.LocalTimeCounter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lexer.JetKeywordToken;
import org.jetbrains.jet.lexer.JetTokens;
import org.jetbrains.jet.plugin.JetFileType;
import java.util.List;
@@ -32,6 +34,16 @@ import java.util.List;
* @author max
*/
public class JetPsiFactory {
public static ASTNode createValNode(Project project) {
JetProperty property = createProperty(project, "val x = 1");
return property.getValOrVarNode();
}
public static ASTNode createVarNode(Project project) {
JetProperty property = createProperty(project, "var x = 1");
return property.getValOrVarNode();
}
public static JetExpression createExpression(Project project, String text) {
JetProperty property = createProperty(project, "val x = " + text);
return property.getInitializer();
@@ -48,6 +60,11 @@ public class JetPsiFactory {
return Pair.create(property.findElementAt(5), property.findElementAt(7));
}
public static ASTNode createColonNode(Project project) {
JetProperty property = createProperty(project, "val x: Int");
return property.getNode().findChildByType(JetTokens.COLON);
}
public static PsiElement createWhiteSpace(Project project) {
return createWhiteSpace(project, " ");
}