diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b67d993014e87ef9bb391931cce2d0e8d1c67e56..5f577a152c921d81814a44d3f9964c5fdd7ffca3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,4 +17,4 @@ jar: - ./gradlew --continue --console=plain --info buildPlugin artifacts: paths: - - "/builds/jastadd/*/build/libs/JastAddGrammar-*.jar" + - "/builds/jastadd/*/build/libs/JastAddIntelliJPlugin-*.jar" diff --git a/settings.gradle.kts b/settings.gradle.kts index 2f0d5d41705f0afcd0af77de1b01f669f2825d8b..295fd94044af0021c291330ac5fdbde79d11623b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,2 +1,2 @@ -rootProject.name = "JastAddGrammar" +rootProject.name = "JastAddIntelliJPlugin" diff --git a/src/main/grammar/Aspect.bnf b/src/main/grammar/Aspect.bnf index 66baaec571ba7781a79e0955fbba30e9e9926a41..c2ada4a3b4753f4f964df64af759b50aa4067b89 100644 --- a/src/main/grammar/Aspect.bnf +++ b/src/main/grammar/Aspect.bnf @@ -26,24 +26,6 @@ ] } - - - -//attribute_equation ::= EQ java_block -// -//java_block ::= JAVABLOCK -//{ -// implements="org.jastadd.tooling.aspect.psi.JastAddAspectJavaExtension" -// extends="org.jastadd.tooling.aspect.psi.impl.JastAddAspectJavaImplExtension" -//} - -// aspect_body_declarations_eof ::= aspect_body_declaration* EOF - - -//jastaddAspectFile ::= ( aspect_declaration | comment )* -// -//comment ::= (MULTI_LINE_COMMENT | DOC_COMMENT | SINGLE_LINE_COMMENT) - compilation_unit ::= import_declaration* type_declaration* import_declaration ::= IMPORT STATIC? name_name (DOT STAR)? SEMICOLON @@ -179,11 +161,11 @@ enum_body ::= LBRACE enum_constant (COMMA enum_constant)* (SEMICOLON class_body_ enum_constant ::= java_identifier arguments? class_body? - type_parameters ::= LT type_parameter (COMMA type_parameter)* GT +type_parameters ::= LT type_parameter (COMMA type_parameter)* GT - type_parameter ::= java_identifier type_bound? +type_parameter ::= java_identifier type_bound? - type_bound ::= EXTENDS class_or_interface_type (AMPERSAND class_or_interface_type)* +type_bound ::= EXTENDS class_or_interface_type (AMPERSAND class_or_interface_type)* class_body ::= LBRACE class_body_declaration* RBRACE @@ -404,17 +386,5 @@ java_identifier ::= IDENTIFIER | INH | SYN | LAZY | REWRITE | TO | WHEN | ASPECT attribute_name ::= IDENTIFIER -// EOF - -// unused keywords - +// unused keywords must still appear somewhere unused_keywords ::= GOTO | CONST ELLIPSIS | PACKAGE - -// island things - -//// should be parsed after circular and in collection attributes -//expression_in_brackets ::= LBRACKET_ANYTHING_RBRACKET // LBRACKET expression RBRACKET -//{ -// implements="org.jastadd.tooling.aspect.psi.JastAddAspectJavaExtension" -// extends="org.jastadd.tooling.aspect.psi.impl.JastAddAspectJavaImplExtension" -//} diff --git a/src/main/grammar/Aspect.flex b/src/main/grammar/Aspect.flex index dce79a03c8df1a1c25ed0e2aedb9eb022e03348f..ee734fc9b16f8d239df9673aef14c6542559148f 100644 --- a/src/main/grammar/Aspect.flex +++ b/src/main/grammar/Aspect.flex @@ -12,7 +12,7 @@ import com.intellij.psi.TokenType; %unicode %function advance %type IElementType -%eof{ return; +%eof{ %eof} %{ diff --git a/src/main/grammar/Grammar.flex b/src/main/grammar/Grammar.flex index 3f8006a0e296c7f371112ed2bac6cdf849b294db..43ff67a073b74d98a95e1c5b589851d320f1e483 100644 --- a/src/main/grammar/Grammar.flex +++ b/src/main/grammar/Grammar.flex @@ -13,7 +13,7 @@ import com.intellij.psi.TokenType; %unicode %function advance %type IElementType -%eof{ return; +%eof{ %eof} diff --git a/src/main/java/org/jastadd/tooling/aspect/AspectSyntaxHighlighter.java b/src/main/java/org/jastadd/tooling/aspect/AspectSyntaxHighlighter.java index 4f44cb07d6504401460d79fa8038bfeaaea729ee..1c91d8e82aa7345cbd9be27b016d4abe2323e331 100644 --- a/src/main/java/org/jastadd/tooling/aspect/AspectSyntaxHighlighter.java +++ b/src/main/java/org/jastadd/tooling/aspect/AspectSyntaxHighlighter.java @@ -103,22 +103,8 @@ public class AspectSyntaxHighlighter extends SyntaxHighlighterBase { // unclear // TODO unclear IO // TODO missing AT_NAME - // TODO unused NOTPARENTHESIS // TODO combined DOT_CLASS - // islands - // public static final TextAttributesKey CLASS_BODY_UNSUPPORTED = createTextAttributesKey("ASPECT_CLASS_BODY_UNSUPPORTED", DefaultLanguageHighlighterColors.); - // public static final TextAttributesKey CLASS_ANYTHING_LBRACE_ANYTHING_RBRACE = createTextAttributesKey("ASPECT_CLASS_ANYTHING_LBRACE_ANYTHING_RBRACE", DefaultLanguageHighlighterColors.); - // public static final TextAttributesKey INTERFACE_ANYTHING_LBRACE_ANYTHING_RBRACE = createTextAttributesKey("ASPECT_INTERFACE_ANYTHING_LBRACE_ANYTHING_RBRACE", DefaultLanguageHighlighterColors.); - // public static final TextAttributesKey AT_NAME_LPAREN_ANYTHING_RPAREN = createTextAttributesKey("ASPECT_AT_NAME_LPAREN_ANYTHING_RPAREN", DefaultLanguageHighlighterColors.); - // public static final TextAttributesKey AT_INTERFACE_ANYTHING_LBRACE_ANYTHING_RBRACE = createTextAttributesKey("ASPECT_AT_INTERFACE_ANYTHING_LBRACE_ANYTHING_RBRACE", DefaultLanguageHighlighterColors.); - // public static final TextAttributesKey ENUM_ANYTHING_LBRACE_ANYTHING_RBRACE = createTextAttributesKey("ASPECT_ENUM_ANYTHING_LBRACE_ANYTHING_RBRACE", DefaultLanguageHighlighterColors.); - // public static final TextAttributesKey STATEMENT = createTextAttributesKey("ASPECT_STATEMENT", DefaultLanguageHighlighterColors.); - // public static final TextAttributesKey LBRACE_ANYTHING_RBRACE = createTextAttributesKey("ASPECT_LBRACE_ANYTHING_RBRACE", DefaultLanguageHighlighterColors.); - // public static final TextAttributesKey LBRACKET_ANYTHING_RBRACKET = createTextAttributesKey("ASPECT_LBRACKET_ANYTHING_RBRACKET", DefaultLanguageHighlighterColors.); - // public static final TextAttributesKey JAVA_EXPLICIT_CONSTRUCTUR_BLOCK = createTextAttributesKey("ASPECT_JAVA_EXPLICIT_CONSTRUCTUR_BLOCK", DefaultLanguageHighlighterColors.); - - public static final TextAttributesKey BAD_CHARACTER = createTextAttributesKey("JASTADD_BAD_CHARACTER", HighlighterColors.BAD_CHARACTER); diff --git a/src/main/java/org/jastadd/tooling/aspect/JavaLanguageInjector.java b/src/main/java/org/jastadd/tooling/aspect/JavaLanguageInjector.java index 58036e3cced547b1c0af6a0a12d4836bbddcbe71..8039be6810d627efe799c4fc2c2af62183aca2cc 100644 --- a/src/main/java/org/jastadd/tooling/aspect/JavaLanguageInjector.java +++ b/src/main/java/org/jastadd/tooling/aspect/JavaLanguageInjector.java @@ -6,7 +6,9 @@ import com.intellij.openapi.util.TextRange; import com.intellij.psi.InjectedLanguagePlaces; import com.intellij.psi.LanguageInjector; import com.intellij.psi.PsiLanguageInjectionHost; -import org.jastadd.tooling.aspect.psi.*; +import org.jastadd.tooling.aspect.psi.JastAddAspectAspectClassDeclaration; +import org.jastadd.tooling.aspect.psi.JastAddAspectBlock; +import org.jastadd.tooling.aspect.psi.JastAddAspectExpression; import org.jetbrains.annotations.NotNull; public class JavaLanguageInjector implements LanguageInjector { diff --git a/src/main/java/org/jastadd/tooling/java/JavaColorSettingsPage.java b/src/main/java/org/jastadd/tooling/java/JavaColorSettingsPage.java index ea402dfe1be2cefbfcaaf140d01ef9afe8e9f744..8f945215297dd78ca51ae6bc5b59b75e59b1a036 100644 --- a/src/main/java/org/jastadd/tooling/java/JavaColorSettingsPage.java +++ b/src/main/java/org/jastadd/tooling/java/JavaColorSettingsPage.java @@ -17,12 +17,12 @@ import java.util.Map; public class JavaColorSettingsPage implements ColorSettingsPage { private static final AttributesDescriptor[] DESCRIPTORS = new AttributesDescriptor[]{ - new AttributesDescriptor("Nonterminal Use", JavaSyntaxHighlighter.NT_USE), - new AttributesDescriptor("High-Level API Use", JavaSyntaxHighlighter.HIGHLEVEL_API_USE), - new AttributesDescriptor("Low-Level API Use", JavaSyntaxHighlighter.LOWLEVEL_API_USE), - new AttributesDescriptor("Internal API Use", JavaSyntaxHighlighter.INTERNAL_API_USE), - new AttributesDescriptor("Attribute Call", JavaSyntaxHighlighter.ATTRIBUTE_CALL), - new AttributesDescriptor("Inter-Type Declaration Use", JavaSyntaxHighlighter.INTERTYPE_DECL_USE) + new AttributesDescriptor("Nonterminal use", JavaSyntaxHighlighter.NT_USE), + new AttributesDescriptor("High-Level API use", JavaSyntaxHighlighter.HIGHLEVEL_API_USE), + new AttributesDescriptor("Low-Level API use", JavaSyntaxHighlighter.LOWLEVEL_API_USE), + new AttributesDescriptor("Internal API use", JavaSyntaxHighlighter.INTERNAL_API_USE), + new AttributesDescriptor("Attribute call", JavaSyntaxHighlighter.ATTRIBUTE_CALL), + new AttributesDescriptor("Inter-Type declaration use", JavaSyntaxHighlighter.INTERTYPE_DECL_USE) }; @Nullable @@ -63,13 +63,13 @@ public class JavaColorSettingsPage implements ColorSettingsPage { @NotNull @Override - public AttributesDescriptor[] getAttributeDescriptors() { + public AttributesDescriptor @NotNull [] getAttributeDescriptors() { return DESCRIPTORS; } @NotNull @Override - public ColorDescriptor[] getColorDescriptors() { + public ColorDescriptor @NotNull [] getColorDescriptors() { return ColorDescriptor.EMPTY_ARRAY; } diff --git a/src/main/java/org/jastadd/tooling/java/NonterminalUseAnnotator.java b/src/main/java/org/jastadd/tooling/java/NonterminalUseAnnotator.java index e232500fa4cdb5b3bd56983db37c8f2a053b4612..fa6888dcdb5228b64546cc7b5488e73caab6b05c 100644 --- a/src/main/java/org/jastadd/tooling/java/NonterminalUseAnnotator.java +++ b/src/main/java/org/jastadd/tooling/java/NonterminalUseAnnotator.java @@ -40,7 +40,7 @@ public class NonterminalUseAnnotator implements Annotator { return; } String production = Arrays.stream(productionTag.getDataElements()).map(PsiElement::getText).collect(Collectors.joining()); - String reference = getNavigationUrlFromFileLocation(declaredAt); + String reference = getNavigationUrlFromFileLocation(declaredAt); holder.newAnnotation(HighlightSeverity.INFORMATION, "JastAdd Nonterminal: " + production) .range(element.getTextRange())