Skip to content

Commit

Permalink
Fixing broken generate actions
Browse files Browse the repository at this point in the history
  • Loading branch information
m0rkeulv committed Jul 11, 2024
1 parent fa2e921 commit 11583bc
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import com.intellij.openapi.util.Pair;
import com.intellij.plugins.haxe.lang.psi.HaxeClass;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiManager;
import com.intellij.psi.util.PsiTreeUtil;
import org.jetbrains.annotations.NotNull;

Expand All @@ -43,6 +44,12 @@ private static Pair<Editor, PsiFile> getEditorAndPsiFile(final AnActionEvent e)
if (project == null) return Pair.create(null, null);
Editor editor = e.getData(PlatformDataKeys.EDITOR);
PsiFile psiFile = e.getData(LangDataKeys.PSI_FILE);

//TODO getData for PSI_FILE does not seem to work anymore?
if (psiFile == null && editor != null) {
psiFile = PsiManager.getInstance(project).findFile(editor.getVirtualFile());
}

return Pair.create(editor, psiFile);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,29 +89,29 @@ protected String buildFunctionsText(HaxeNamedComponent namedComponent) {

@Override
protected void modifyElement(HaxeNamedComponent namedComponent) {
if (!(namedComponent instanceof HaxeFieldDeclaration)) {
return;
}
if (((HaxeFieldDeclaration)namedComponent).getPropertyDeclaration() != null) {
// todo: modify
return;
}
if ((namedComponent instanceof HaxeFieldDeclaration fieldDeclaration)) {
if (fieldDeclaration.getPropertyDeclaration() != null) {
// todo: modify
return;
}

final String typeText = HaxePresentableUtil.buildTypeText(namedComponent, ((HaxeFieldDeclaration)namedComponent).getTypeTag());
final String typeText = HaxePresentableUtil.buildTypeText(namedComponent, fieldDeclaration.getTypeTag());
final String init = fieldDeclaration.getVarInit() != null ? fieldDeclaration.getVarInit().getText() : "";

final HaxeFieldDeclaration declaration =
HaxeElementGenerator.createVarDeclaration(namedComponent.getProject(), buildVarDeclaration(namedComponent, typeText));
final HaxePropertyDeclaration propertyDeclaration = declaration.getPropertyDeclaration();
if (propertyDeclaration != null) {
HaxeFieldDeclaration varDeclaration = PsiTreeUtil.getParentOfType(namedComponent, HaxeFieldDeclaration.class, false);
if (varDeclaration != null) {
HaxeMetadataUtils.copyMetadata(declaration, varDeclaration);
varDeclaration.replace(declaration);
final HaxeFieldDeclaration declaration =
HaxeElementGenerator.createVarDeclaration(namedComponent.getProject(), buildVarDeclaration(namedComponent, typeText, init));
final HaxePropertyDeclaration propertyDeclaration = declaration.getPropertyDeclaration();
if (propertyDeclaration != null) {
HaxeFieldDeclaration varDeclaration = PsiTreeUtil.getParentOfType(namedComponent, HaxeFieldDeclaration.class, false);
if (varDeclaration != null) {
HaxeMetadataUtils.copyMetadata(declaration, varDeclaration);
varDeclaration.replace(declaration);
}
}
}
}

private String buildVarDeclaration(HaxeNamedComponent namedComponent, String typeText) {
private String buildVarDeclaration(HaxeNamedComponent namedComponent, String typeText, String initExpression) {
final StringBuilder result = new StringBuilder();
result.append("@:isVar ");
if (namedComponent.isPublic()) {
Expand Down Expand Up @@ -141,6 +141,9 @@ private String buildVarDeclaration(HaxeNamedComponent namedComponent, String typ
if (!typeText.isEmpty()) {
result.append(":").append(typeText);
}
if (!initExpression.isEmpty()){
result.append(initExpression);
}

result.append(";");
return result.toString();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import com.intellij.plugins.haxe.model.type.HaxeTypeResolver;
import com.intellij.plugins.haxe.util.HaxeResolveUtil;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil;

import java.util.ArrayList;
import java.util.List;
Expand Down Expand Up @@ -76,7 +77,7 @@ protected void processElements(Project project, Set<HaxeNamedComponent> elements
out += "public function new(";
boolean first = true;

PsiElement anchor = null;
PsiElement anchor = clazz.getBodyPsi() != null ? PsiTreeUtil.getDeepestVisibleFirst(clazz.getBodyPsi()) : null;

List<HaxeFieldModel> fields = clazz.getFields();
for (HaxeFieldModel field : fields) {
Expand All @@ -90,8 +91,10 @@ protected void processElements(Project project, Set<HaxeNamedComponent> elements
first = false;
}
out += param.name;
out += ":";
out += param.type;
if(!param.type.equals("unknown")) {
out += ":";
out += param.type;
}
}

out += ") {\n";
Expand Down

0 comments on commit 11583bc

Please sign in to comment.