From 58854daba7bb1dbc0e6e2b7af186d254ba6ccca5 Mon Sep 17 00:00:00 2001 From: Johannes Mey <johannes.mey@tu-dresden.de> Date: Thu, 2 Dec 2021 00:54:25 +0100 Subject: [PATCH] rename attribute superclasses --- src/main/grammar/Aspect.bnf | 10 +++++----- .../aspect/psi/JastAddAspectAttribute.java | 3 +++ ...dAspectAspectDeclarationImplExtension.java | 8 +------- ...InhAttributeDeclarationImplExtension.java} | 20 ++++++++++--------- ...SynAttributeDeclarationImplExtension.java} | 19 +++++++++--------- ...pectCollectionAttributeImplExtension.java} | 20 +++++++++---------- 6 files changed, 39 insertions(+), 41 deletions(-) rename src/main/java/org/jastadd/tooling/aspect/psi/impl/{JastAddAspectInhAttributeImpl.java => JastAddAspectAspectInhAttributeDeclarationImplExtension.java} (70%) rename src/main/java/org/jastadd/tooling/aspect/psi/impl/{JastAddAspectSynAttributeImpl.java => JastAddAspectAspectSynAttributeDeclarationImplExtension.java} (72%) rename src/main/java/org/jastadd/tooling/aspect/psi/impl/{JastAddAspectCollAttributeImpl.java => JastAddAspectCollectionAttributeImplExtension.java} (72%) diff --git a/src/main/grammar/Aspect.bnf b/src/main/grammar/Aspect.bnf index fd079b1..65e0e18 100644 --- a/src/main/grammar/Aspect.bnf +++ b/src/main/grammar/Aspect.bnf @@ -86,13 +86,13 @@ aspect_interface_member_declaration ::= ( aspect_nested_class_declaration aspect_interface_syn_attribute_declaration ::= annotation* SYN LAZY? FINAL? aspect_type attribute_name LPAREN (type parameter_name (COMMA type parameter_name)* )? RPAREN (CIRCULAR LBRACKET expression RBRACKET)? SEMICOLON { implements="org.jastadd.tooling.aspect.psi.JastAddAspectAttribute" - extends="org.jastadd.tooling.aspect.psi.impl.JastAddAspectSynAttributeImpl" + extends="org.jastadd.tooling.aspect.psi.impl.JastAddAspectAspectSynAttributeDeclarationImplExtension" } aspect_interface_inh_attribute_declaration ::= annotation* INH LAZY? FINAL? aspect_type attribute_name LPAREN (type parameter_name (COMMA type parameter_name)* )? RPAREN (CIRCULAR LBRACKET expression RBRACKET)? SEMICOLON { implements="org.jastadd.tooling.aspect.psi.JastAddAspectAttribute" - extends="org.jastadd.tooling.aspect.psi.impl.JastAddAspectInhAttributeImpl" + extends="org.jastadd.tooling.aspect.psi.impl.JastAddAspectAspectInhAttributeDeclarationImplExtension" } aspect_interface_method_declaration ::= (PUBLIC | PROTECTED | PRIVATE | STATIC | ABSTRACT | FINAL | NATIVE | SYNCHRONIZED )* aspect_result_type method_declarator (THROWS name_list)? SEMICOLON @@ -118,13 +118,13 @@ aspect_field_declaration ::= modifiers aspect_type ast_type_name DOT variable_de aspect_syn_attribute_declaration ::= annotation* SYN NTA? LAZY? FINAL? aspect_type ast_type_name DOT attribute_name LPAREN (type parameter_name (COMMA type parameter_name)* )? RPAREN (CIRCULAR LBRACKET expression RBRACKET)? ( ASSIGN expression SEMICOLON | block | SEMICOLON ) { implements="org.jastadd.tooling.aspect.psi.JastAddAspectAttribute" - extends="org.jastadd.tooling.aspect.psi.impl.JastAddAspectSynAttributeImpl" + extends="org.jastadd.tooling.aspect.psi.impl.JastAddAspectAspectSynAttributeDeclarationImplExtension" } aspect_inh_attribute_declaration ::= annotation* INH NTA? LAZY? FINAL? aspect_type ast_type_name DOT attribute_name LPAREN (type parameter_name (COMMA type parameter_name)* )? RPAREN (CIRCULAR LBRACKET expression RBRACKET)? SEMICOLON { implements="org.jastadd.tooling.aspect.psi.JastAddAspectAttribute" - extends="org.jastadd.tooling.aspect.psi.impl.JastAddAspectInhAttributeImpl" + extends="org.jastadd.tooling.aspect.psi.impl.JastAddAspectAspectInhAttributeDeclarationImplExtension" } // FIXME parentheses are not required around the WHEN expression? @@ -141,7 +141,7 @@ aspect_refine_inh_equation ::= REFINE aspect_name EQUATION ast_type_name DOT att collection_attribute ::= annotation* COLL aspect_type ast_type_name DOT attribute_name LPAREN RPAREN CIRCULAR? (LBRACKET expression RBRACKET)? (WITH method_name)? (ROOT ast_type_name)? SEMICOLON { implements="org.jastadd.tooling.aspect.psi.JastAddAspectAttribute" - extends="org.jastadd.tooling.aspect.psi.impl.JastAddAspectCollAttributeImpl" + extends="org.jastadd.tooling.aspect.psi.impl.JastAddAspectCollectionAttributeImplExtension" } collection_contribution ::= annotation* ast_type_name CONTRIBUTES ( NTA expression TO ast_type_name DOT attribute_name LPAREN RPAREN | EACH? expression (WHEN expression)? TO ast_type_name DOT attribute_name LPAREN RPAREN (FOR EACH? expression)? | block TO ast_type_name DOT attribute_name LPAREN RPAREN ) SEMICOLON diff --git a/src/main/java/org/jastadd/tooling/aspect/psi/JastAddAspectAttribute.java b/src/main/java/org/jastadd/tooling/aspect/psi/JastAddAspectAttribute.java index e3e4c7b..9611195 100644 --- a/src/main/java/org/jastadd/tooling/aspect/psi/JastAddAspectAttribute.java +++ b/src/main/java/org/jastadd/tooling/aspect/psi/JastAddAspectAttribute.java @@ -4,4 +4,7 @@ import com.intellij.psi.PsiElement; import org.jastadd.tooling.grammar.psi.GrammarNamedElement; public interface JastAddAspectAttribute extends PsiElement, GrammarNamedElement { + + String signature(); + } diff --git a/src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectAspectDeclarationImplExtension.java b/src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectAspectDeclarationImplExtension.java index a077cbc..bac6dcc 100644 --- a/src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectAspectDeclarationImplExtension.java +++ b/src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectAspectDeclarationImplExtension.java @@ -52,15 +52,9 @@ public class JastAddAspectAspectDeclarationImplExtension extends GrammarNamedEle return "aspect " + getName(); } - @Override - public String getLocationString() { - Document document = FileDocumentManager.getInstance().getDocument(getNode().getPsi().getContainingFile().getVirtualFile()); - return document != null ? "l." + document.getLineNumber(getTextRange().getStartOffset() + 1) : ""; - } - @Override public Icon getIcon(boolean unused) { - return JastAddIcons.FILE; + return JastAddIcons.ASPECT; } }; } diff --git a/src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectInhAttributeImpl.java b/src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectAspectInhAttributeDeclarationImplExtension.java similarity index 70% rename from src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectInhAttributeImpl.java rename to src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectAspectInhAttributeDeclarationImplExtension.java index 5b2692b..91838ec 100644 --- a/src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectInhAttributeImpl.java +++ b/src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectAspectInhAttributeDeclarationImplExtension.java @@ -9,6 +9,7 @@ import com.intellij.psi.PsiElement; import com.intellij.util.IncorrectOperationException; import org.jastadd.tooling.aspect.psi.AspectTypes; import org.jastadd.tooling.aspect.psi.JastAddAspectAspectInhAttributeDeclaration; +import org.jastadd.tooling.aspect.psi.JastAddAspectAspectSynAttributeDeclaration; import org.jastadd.tooling.aspect.psi.JastAddAspectAttribute; import org.jastadd.tooling.grammar.psi.impl.GrammarNamedElementImpl; import org.jastadd.tooling.util.JastAddIcons; @@ -16,9 +17,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; +import java.util.stream.Collectors; -public abstract class JastAddAspectInhAttributeImpl extends GrammarNamedElementImpl implements JastAddAspectAttribute { - public JastAddAspectInhAttributeImpl(@NotNull ASTNode node) { +public abstract class JastAddAspectAspectInhAttributeDeclarationImplExtension extends GrammarNamedElementImpl implements JastAddAspectAttribute { + public JastAddAspectAspectInhAttributeDeclarationImplExtension(@NotNull ASTNode node) { super(node); } @@ -47,19 +49,19 @@ public abstract class JastAddAspectInhAttributeImpl extends GrammarNamedElementI return this; } + @Override + public String signature() { + JastAddAspectAspectInhAttributeDeclaration decl = (JastAddAspectAspectInhAttributeDeclaration) this; + return "inh " + decl.getAstTypeName().getText() + "." + decl.getAttributeName().getText() + "(" + decl.getTypeList().stream().map(PsiElement::getText).collect(Collectors.joining(", ")) + ") : " + decl.getAspectType().getText(); + } + @Override public ItemPresentation getPresentation() { return new ItemPresentation() { @Nullable @Override public String getPresentableText() { - return "inh " + getName(); - } - - @Override - public String getLocationString() { - Document document = FileDocumentManager.getInstance().getDocument(getNode().getPsi().getContainingFile().getVirtualFile()); - return document != null ? "l." + document.getLineNumber(getTextRange().getStartOffset() + 1) : ""; + return signature(); } @Override diff --git a/src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectSynAttributeImpl.java b/src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectAspectSynAttributeDeclarationImplExtension.java similarity index 72% rename from src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectSynAttributeImpl.java rename to src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectAspectSynAttributeDeclarationImplExtension.java index 358e467..ecb2e41 100644 --- a/src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectSynAttributeImpl.java +++ b/src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectAspectSynAttributeDeclarationImplExtension.java @@ -16,9 +16,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; +import java.util.stream.Collectors; -public abstract class JastAddAspectSynAttributeImpl extends GrammarNamedElementImpl implements JastAddAspectAttribute { - public JastAddAspectSynAttributeImpl(@NotNull ASTNode node) { +public abstract class JastAddAspectAspectSynAttributeDeclarationImplExtension extends GrammarNamedElementImpl implements JastAddAspectAttribute { + public JastAddAspectAspectSynAttributeDeclarationImplExtension(@NotNull ASTNode node) { super(node); } @@ -48,19 +49,19 @@ public abstract class JastAddAspectSynAttributeImpl extends GrammarNamedElementI return this; } + @Override + public String signature() { + JastAddAspectAspectSynAttributeDeclaration decl = (JastAddAspectAspectSynAttributeDeclaration) this; + return "syn " + decl.getAstTypeName().getText() + "." + decl.getAttributeName().getText() + "(" + decl.getTypeList().stream().map(PsiElement::getText).collect(Collectors.joining(", ")) + ") : " + decl.getAspectType().getText(); + } + @Override public ItemPresentation getPresentation() { return new ItemPresentation() { @Nullable @Override public String getPresentableText() { - return "syn " + getName(); - } - - @Override - public String getLocationString() { - Document document = FileDocumentManager.getInstance().getDocument(getNode().getPsi().getContainingFile().getVirtualFile()); - return document != null ? "l." + document.getLineNumber(getTextRange().getStartOffset() + 1) : ""; + return signature(); } @Override diff --git a/src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectCollAttributeImpl.java b/src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectCollectionAttributeImplExtension.java similarity index 72% rename from src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectCollAttributeImpl.java rename to src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectCollectionAttributeImplExtension.java index 931466e..7fde5d3 100644 --- a/src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectCollAttributeImpl.java +++ b/src/main/java/org/jastadd/tooling/aspect/psi/impl/JastAddAspectCollectionAttributeImplExtension.java @@ -2,8 +2,6 @@ package org.jastadd.tooling.aspect.psi.impl; import com.intellij.lang.ASTNode; import com.intellij.navigation.ItemPresentation; -import com.intellij.openapi.editor.Document; -import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.util.NlsSafe; import com.intellij.psi.PsiElement; import com.intellij.util.IncorrectOperationException; @@ -17,8 +15,8 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; -public abstract class JastAddAspectCollAttributeImpl extends GrammarNamedElementImpl implements JastAddAspectAttribute { - public JastAddAspectCollAttributeImpl(@NotNull ASTNode node) { +public abstract class JastAddAspectCollectionAttributeImplExtension extends GrammarNamedElementImpl implements JastAddAspectAttribute { + public JastAddAspectCollectionAttributeImplExtension(@NotNull ASTNode node) { super(node); } @@ -47,19 +45,19 @@ public abstract class JastAddAspectCollAttributeImpl extends GrammarNamedElement return this; } + @Override + public String signature() { + JastAddAspectCollectionAttribute decl = (JastAddAspectCollectionAttribute) this; + return "coll " + decl.getAstTypeNameList().get(0).getText() + "." + decl.getAttributeName().getText() + "() : " + decl.getAspectType().getText(); + } + @Override public ItemPresentation getPresentation() { return new ItemPresentation() { @Nullable @Override public String getPresentableText() { - return "coll " + getName(); - } - - @Override - public String getLocationString() { - Document document = FileDocumentManager.getInstance().getDocument(getNode().getPsi().getContainingFile().getVirtualFile()); - return document != null ? "l." + document.getLineNumber(getTextRange().getStartOffset() + 1) : ""; + return signature(); } @Override -- GitLab