Skip to content
Snippets Groups Projects
Commit bf03d7c2 authored by Johannes Mey's avatar Johannes Mey
Browse files

align with master

parent 89cba244
No related branches found
No related tags found
No related merge requests found
Pipeline #9968 passed
Showing
with 73 additions and 69 deletions
import io.gitlab.arturbosch.detekt.Detekt
import org.jetbrains.changelog.markdownToHTML
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.grammarkit.tasks.GenerateLexer
import org.jetbrains.grammarkit.tasks.GenerateParser
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
fun properties(key: String) = project.findProperty(key).toString()
......@@ -119,7 +119,6 @@ tasks {
purgeOldFiles = true
}
compileJava {
dependsOn(generateGrammarLexer)
dependsOn(generateGrammarParser)
......
......@@ -3,7 +3,7 @@
extends="com.intellij.extapi.psi.ASTWrapperPsiElement"
psiClassPrefix="RelAstGrammar"
psiClassPrefix="Grammar"
psiImplClassSuffix="Impl"
psiPackage="org.jastadd.tooling.grammar.psi"
psiImplPackage="org.jastadd.tooling.grammar.psi.impl"
......@@ -12,10 +12,10 @@
elementTypeClass="org.jastadd.tooling.grammar.psi.GrammarElementType"
tokenTypeClass="org.jastadd.tooling.grammar.psi.GrammarTokenType"
psiImplUtilClass="org.jastadd.tooling.grammar.psi.impl.RelAstGrammarPsiImplUtil"
psiImplUtilClass="org.jastadd.tooling.grammar.psi.impl.GrammarPsiImplUtil"
}
relAstGrammarFile ::= comment* ((type_decl | relation) comment*)*
GrammarFile ::= comment* ((type_decl | relation) comment*)*
comment ::= (WHITESPACE | MULTILINECOMMENT | DOCCOMMENT | SINGLELINECOMMENT)
......
......@@ -12,8 +12,8 @@ import com.intellij.psi.TokenType;
import com.intellij.psi.tree.IFileElementType;
import com.intellij.psi.tree.TokenSet;
import org.jastadd.tooling.aspect.Aspect;
import org.jastadd.tooling.aspect.psi.AspectFile;
import org.jastadd.tooling.aspect.lexer.AspectLexerAdapter;
import org.jastadd.tooling.aspect.psi.AspectFile;
import org.jastadd.tooling.aspect.psi.AspectTypes;
import org.jetbrains.annotations.NotNull;
......
package org.jastadd.tooling.grammar;
public class Grammar extends com.intellij.lang.Language {
import com.intellij.lang.Language;
public class Grammar extends Language {
public static final Grammar INSTANCE = new Grammar();
......
......@@ -3,20 +3,21 @@ package org.jastadd.tooling.grammar;
import com.intellij.codeInspection.ProblemHighlightType;
import com.intellij.lang.annotation.AnnotationHolder;
import com.intellij.lang.annotation.Annotator;
import com.intellij.lang.annotation.HighlightSeverity;
import com.intellij.openapi.editor.DefaultLanguageHighlighterColors;
import com.intellij.psi.PsiElement;
import org.jastadd.tooling.grammar.psi.RelAstGrammarComponent;
import org.jastadd.tooling.grammar.psi.RelAstGrammarTypeReference;
import org.jastadd.tooling.grammar.psi.GrammarComponent;
import org.jastadd.tooling.grammar.psi.GrammarTypeReference;
import org.jetbrains.annotations.NotNull;
public class GrammarAnnotator implements com.intellij.lang.annotation.Annotator {
public class GrammarAnnotator implements Annotator {
@Override
public void annotate(@NotNull final PsiElement element, @NotNull AnnotationHolder holder) {
if (element instanceof RelAstGrammarComponent) {
RelAstGrammarComponent component = (RelAstGrammarComponent) element;
if (element instanceof GrammarComponent) {
GrammarComponent component = (GrammarComponent) element;
if (component.getTypeReference() != null && component.getDeclaredName() != null) {
String name = component.getDeclaredName().getText();
if (name != null && !name.equals("") && name.equals(component.getTypeReference().getName())) {
......@@ -29,8 +30,8 @@ public class GrammarAnnotator implements com.intellij.lang.annotation.Annotator
.create();
}
}
} else if (element instanceof RelAstGrammarTypeReference) {
RelAstGrammarTypeReference reference = (RelAstGrammarTypeReference) element;
} else if (element instanceof GrammarTypeReference) {
GrammarTypeReference reference = (GrammarTypeReference) element;
if (GrammarUtil.findTypeDecl(element.getProject(), reference.getName()).isEmpty()) {
holder.newAnnotation(HighlightSeverity.ERROR, "Undefined reference")
.range(element.getTextRange())
......
......@@ -22,12 +22,12 @@ public class GrammarBlock extends AbstractBlock {
}
@Override
protected List<com.intellij.formatting.Block> buildChildren() {
List<com.intellij.formatting.Block> blocks = new ArrayList<>();
protected List<Block> buildChildren() {
List<Block> blocks = new ArrayList<>();
ASTNode child = myNode.getFirstChildNode();
while (child != null) {
if (child.getElementType() != TokenType.WHITE_SPACE) {
com.intellij.formatting.Block block = new GrammarBlock(child, Wrap.createWrap(WrapType.NONE, false), Alignment.createAlignment(),
Block block = new GrammarBlock(child, Wrap.createWrap(WrapType.NONE, false), Alignment.createAlignment(),
spacingBuilder);
blocks.add(block);
}
......@@ -43,7 +43,7 @@ public class GrammarBlock extends AbstractBlock {
@Nullable
@Override
public Spacing getSpacing(@Nullable com.intellij.formatting.Block child1, @NotNull com.intellij.formatting.Block child2) {
public Spacing getSpacing(@Nullable Block child1, @NotNull Block child2) {
return spacingBuilder.getSpacing(this, child1, child2);
}
......
package org.jastadd.tooling.grammar;
import com.intellij.navigation.ChooseByNameContributor;
import com.intellij.navigation.NavigationItem;
import com.intellij.openapi.project.Project;
import org.jastadd.tooling.grammar.psi.RelAstGrammarTypeDecl;
import org.jastadd.tooling.grammar.psi.GrammarTypeDecl;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
public class GrammarChooseByNameContributor implements com.intellij.navigation.ChooseByNameContributor {
public class GrammarChooseByNameContributor implements ChooseByNameContributor {
@NotNull
@Override
public String @NotNull [] getNames(Project project, boolean includeNonProjectItems) {
List<RelAstGrammarTypeDecl> typeDecls = GrammarUtil.findTypeDecl(project);
List<GrammarTypeDecl> typeDecls = GrammarUtil.findTypeDecl(project);
List<String> names = new ArrayList<>(typeDecls.size());
for (RelAstGrammarTypeDecl typeDecl : typeDecls) {
for (GrammarTypeDecl typeDecl : typeDecls) {
if (typeDecl.getName() != null && typeDecl.getName().length() > 0) {
names.add(typeDecl.getName());
}
......@@ -27,7 +28,7 @@ public class GrammarChooseByNameContributor implements com.intellij.navigation.C
@Override
public NavigationItem @NotNull [] getItemsByName(String name, String pattern, Project project, boolean includeNonProjectItems) {
// TODO: include non project items
List<RelAstGrammarTypeDecl> typeDecls = GrammarUtil.findTypeDecl(project, name);
List<GrammarTypeDecl> typeDecls = GrammarUtil.findTypeDecl(project, name);
return typeDecls.toArray(new NavigationItem[0]);
}
......
......@@ -6,7 +6,7 @@ import com.intellij.psi.codeStyle.CodeStyleSettings;
public class GrammarCodeStyleSettings extends CustomCodeStyleSettings {
public GrammarCodeStyleSettings(CodeStyleSettings settings) {
super("RelAstGrammarCodeStyleSettings", settings);
super("GrammarCodeStyleSettings", settings);
}
}
......@@ -4,11 +4,11 @@ import com.intellij.codeInsight.completion.*;
import com.intellij.codeInsight.lookup.LookupElementBuilder;
import com.intellij.patterns.PlatformPatterns;
import com.intellij.util.ProcessingContext;
import org.jastadd.tooling.util.JastAddIcons;
import org.jastadd.tooling.grammar.parser.GrammarTypes;
import org.jastadd.tooling.grammar.psi.GrammarElementFactory;
import org.jastadd.tooling.grammar.psi.RelAstGrammarTypeDecl;
import org.jastadd.tooling.grammar.psi.RelAstGrammarTypeReference;
import org.jastadd.tooling.grammar.psi.GrammarTypeDecl;
import org.jastadd.tooling.grammar.psi.GrammarTypeReference;
import org.jastadd.tooling.util.JastAddIcons;
import org.jetbrains.annotations.NotNull;
public class GrammarCompletionContributor extends CompletionContributor {
......@@ -23,8 +23,8 @@ public class GrammarCompletionContributor extends CompletionContributor {
public void addCompletions(@NotNull CompletionParameters parameters,
@NotNull ProcessingContext context,
@NotNull CompletionResultSet resultSet) {
for (RelAstGrammarTypeDecl decl : GrammarUtil.findTypeDecl(parameters.getPosition().getProject())) {
RelAstGrammarTypeReference ref = GrammarElementFactory.createTypeReference(parameters.getPosition().getProject(), decl.getName());
for (GrammarTypeDecl decl : GrammarUtil.findTypeDecl(parameters.getPosition().getProject())) {
GrammarTypeReference ref = GrammarElementFactory.createTypeReference(parameters.getPosition().getProject(), decl.getName());
resultSet.addElement(LookupElementBuilder.create(ref).withIcon(JastAddIcons.FILE).withTypeText(decl.getContainingFile().getName()));
}
}
......
......@@ -7,7 +7,7 @@ import com.intellij.psi.PsiElement;
import com.intellij.psi.tree.TokenSet;
import org.jastadd.tooling.grammar.lexer.GrammarLexerAdapter;
import org.jastadd.tooling.grammar.parser.GrammarTypes;
import org.jastadd.tooling.grammar.psi.RelAstGrammarTypeDecl;
import org.jastadd.tooling.grammar.psi.GrammarTypeDecl;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
......@@ -25,7 +25,7 @@ public class GrammarFindUsageProvider implements FindUsagesProvider {
@Override
public boolean canFindUsagesFor(@NotNull PsiElement psiElement) {
return psiElement instanceof RelAstGrammarTypeDecl; // was: PsiNamedElement
return psiElement instanceof GrammarTypeDecl; // was: PsiNamedElement
}
@Nullable
......@@ -37,7 +37,7 @@ public class GrammarFindUsageProvider implements FindUsagesProvider {
@NotNull
@Override
public String getType(@NotNull PsiElement element) {
if (element instanceof RelAstGrammarTypeDecl) {
if (element instanceof GrammarTypeDecl) {
return "JastAdd Nonterminal Type";
} else {
return "";
......@@ -47,8 +47,8 @@ public class GrammarFindUsageProvider implements FindUsagesProvider {
@NotNull
@Override
public String getDescriptiveName(@NotNull PsiElement element) {
if (element instanceof RelAstGrammarTypeDecl) {
RelAstGrammarTypeDecl decl = (RelAstGrammarTypeDecl) element;
if (element instanceof GrammarTypeDecl) {
GrammarTypeDecl decl = (GrammarTypeDecl) element;
if (decl.getName() != null) {
return decl.getName();
}
......@@ -59,7 +59,7 @@ public class GrammarFindUsageProvider implements FindUsagesProvider {
@NotNull
@Override
public String getNodeText(@NotNull PsiElement element, boolean useFullName) {
if (element instanceof RelAstGrammarTypeDecl) {
if (element instanceof GrammarTypeDecl) {
return element.getText();
} else {
return "";
......
package org.jastadd.tooling.grammar;
import com.intellij.lang.Language;
import com.intellij.psi.codeStyle.CodeStyleSettingsCustomizable;
import com.intellij.psi.codeStyle.LanguageCodeStyleSettingsProvider;
import org.jetbrains.annotations.NotNull;
......@@ -8,7 +9,7 @@ public class GrammarLanguageCodeStyleSettingsProvider extends LanguageCodeStyleS
@NotNull
@Override
public com.intellij.lang.Language getLanguage() {
public Language getLanguage() {
return Grammar.INSTANCE;
}
......
......@@ -6,8 +6,8 @@ import com.intellij.codeInsight.navigation.NavigationGutterIconBuilder;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiIdentifier;
import org.jastadd.tooling.grammar.psi.GrammarTypeDecl;
import org.jastadd.tooling.util.JastAddIcons;
import org.jastadd.tooling.grammar.psi.RelAstGrammarTypeDecl;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
......@@ -33,7 +33,7 @@ public class GrammarLineMarkerProvider extends RelatedItemLineMarkerProvider {
}
// Get the list of typeDecls for given key
List<RelAstGrammarTypeDecl> typeDecls = GrammarUtil.findTypeDecl(element.getProject(), classOptional.get().getName());
List<GrammarTypeDecl> typeDecls = GrammarUtil.findTypeDecl(element.getProject(), classOptional.get().getName());
if (!typeDecls.isEmpty()) {
NavigationGutterIconBuilder<PsiElement> builder =
NavigationGutterIconBuilder.create(JastAddIcons.FILE)
......
......@@ -3,8 +3,8 @@ package org.jastadd.tooling.grammar;
import com.intellij.lang.refactoring.RefactoringSupportProvider;
import com.intellij.psi.PsiElement;
import org.jastadd.tooling.grammar.psi.RelAstGrammarDeclaredName;
import org.jastadd.tooling.grammar.psi.RelAstGrammarTypeReference;
import org.jastadd.tooling.grammar.psi.GrammarDeclaredName;
import org.jastadd.tooling.grammar.psi.GrammarTypeReference;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
......@@ -14,7 +14,7 @@ public class GrammarRefactoringSupportProvider extends RefactoringSupportProvide
public boolean isMemberInplaceRenameAvailable(@NotNull PsiElement elementToRename, @Nullable PsiElement context) {
// in-place rename is still not available since not all requirements are met
// see https://intellij-support.jetbrains.com/hc/en-us/community/posts/360006918740-How-do-I-enable-in-place-rename-Renaming-via-dialog-works-fine-
return (elementToRename instanceof RelAstGrammarDeclaredName) || (elementToRename instanceof RelAstGrammarTypeReference);
return (elementToRename instanceof GrammarDeclaredName) || (elementToRename instanceof GrammarTypeReference);
}
}
......@@ -5,8 +5,8 @@ import com.intellij.codeInsight.lookup.LookupElementBuilder;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.TextRange;
import com.intellij.psi.*;
import org.jastadd.tooling.grammar.psi.GrammarTypeDecl;
import org.jastadd.tooling.util.JastAddIcons;
import org.jastadd.tooling.grammar.psi.RelAstGrammarTypeDecl;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
......@@ -26,9 +26,9 @@ public class GrammarReference extends PsiReferenceBase<PsiElement> implements Ps
@Override
public ResolveResult @NotNull [] multiResolve(boolean incompleteCode) {
Project project = myElement.getProject();
final List<RelAstGrammarTypeDecl> typeDecls = GrammarUtil.findTypeDecl(project, key);
final List<GrammarTypeDecl> typeDecls = GrammarUtil.findTypeDecl(project, key);
List<ResolveResult> results = new ArrayList<>();
for (RelAstGrammarTypeDecl typeDecl : typeDecls) {
for (GrammarTypeDecl typeDecl : typeDecls) {
results.add(new PsiElementResolveResult(typeDecl));
}
return results.toArray(new ResolveResult[0]);
......@@ -45,9 +45,9 @@ public class GrammarReference extends PsiReferenceBase<PsiElement> implements Ps
@Override
public Object @NotNull [] getVariants() {
Project project = myElement.getProject();
List<RelAstGrammarTypeDecl> typeDecls = GrammarUtil.findTypeDecl(project);
List<GrammarTypeDecl> typeDecls = GrammarUtil.findTypeDecl(project);
List<LookupElement> variants = new ArrayList<>();
for (final RelAstGrammarTypeDecl typeDecl : typeDecls) {
for (final GrammarTypeDecl typeDecl : typeDecls) {
if (typeDecl.getName() != null && typeDecl.getName().length() > 0) {
variants.add(LookupElementBuilder
.create(typeDecl).withIcon(JastAddIcons.FILE)
......
......@@ -4,21 +4,21 @@ import com.intellij.openapi.util.TextRange;
import com.intellij.patterns.PlatformPatterns;
import com.intellij.psi.*;
import com.intellij.util.ProcessingContext;
import org.jastadd.tooling.grammar.psi.RelAstGrammarTypeReference;
import org.jastadd.tooling.grammar.psi.GrammarTypeReference;
import org.jetbrains.annotations.NotNull;
public class GrammarReferenceContributor extends PsiReferenceContributor {
@Override
public void registerReferenceProviders(@NotNull PsiReferenceRegistrar registrar) {
registrar.registerReferenceProvider(PlatformPatterns.psiElement(RelAstGrammarTypeReference.class),
registrar.registerReferenceProvider(PlatformPatterns.psiElement(GrammarTypeReference.class),
new PsiReferenceProvider() {
@NotNull
@Override
public PsiReference @NotNull [] getReferencesByElement(@NotNull PsiElement element,
@NotNull ProcessingContext context) {
RelAstGrammarTypeReference typeReference = (RelAstGrammarTypeReference) element;
GrammarTypeReference typeReference = (GrammarTypeReference) element;
String value = typeReference.getText();
if (value != null) {
TextRange range = new TextRange(0, value.length());
......
......@@ -7,14 +7,14 @@ import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.util.IncorrectOperationException;
import org.jastadd.tooling.grammar.parser.GrammarTypes;
import org.jastadd.tooling.grammar.psi.RelAstGrammarComponent;
import org.jastadd.tooling.grammar.psi.GrammarComponent;
import org.jetbrains.annotations.NotNull;
public class GrammarRemoveRedundantComponentNameFix extends BaseIntentionAction {
private final RelAstGrammarComponent component;
private final GrammarComponent component;
public GrammarRemoveRedundantComponentNameFix(RelAstGrammarComponent component) {
public GrammarRemoveRedundantComponentNameFix(GrammarComponent component) {
this.component = component;
}
......
......@@ -8,8 +8,8 @@ import com.intellij.navigation.ItemPresentation;
import com.intellij.psi.NavigatablePsiElement;
import com.intellij.psi.util.PsiTreeUtil;
import org.jastadd.tooling.grammar.psi.GrammarFile;
import org.jastadd.tooling.grammar.psi.RelAstGrammarTypeDecl;
import org.jastadd.tooling.grammar.psi.impl.RelAstGrammarTypeDeclImpl;
import org.jastadd.tooling.grammar.psi.GrammarTypeDecl;
import org.jastadd.tooling.grammar.psi.impl.GrammarTypeDeclImpl;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
......@@ -61,10 +61,10 @@ public class GrammarStructureViewElement implements StructureViewTreeElement, So
@Override
public TreeElement @NotNull [] getChildren() {
if (myElement instanceof GrammarFile) {
List<RelAstGrammarTypeDecl> properties = PsiTreeUtil.getChildrenOfTypeAsList(myElement, RelAstGrammarTypeDecl.class);
List<GrammarTypeDecl> properties = PsiTreeUtil.getChildrenOfTypeAsList(myElement, GrammarTypeDecl.class);
List<TreeElement> treeElements = new ArrayList<>(properties.size());
for (RelAstGrammarTypeDecl property : properties) {
treeElements.add(new GrammarStructureViewElement((RelAstGrammarTypeDeclImpl) property));
for (GrammarTypeDecl property : properties) {
treeElements.add(new GrammarStructureViewElement((GrammarTypeDeclImpl) property));
}
return treeElements.toArray(new TreeElement[0]);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment