From e40769f45be22b8203c913584bb013228c9e94cd Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 14 Jan 2011 22:43:44 +0300 Subject: [PATCH] Initial stubs for Psi checker and tests for it --- idea/META-INF/plugin.xml | 1 + .../jet/lang/annotations/JetPsiChecker.java | 21 ++++++++++++++++ idea/testData/checker/Properties.jet | 2 ++ .../jet/parsing/JetPsiCheckerTest.java | 25 +++++++++++++++++++ 4 files changed, 49 insertions(+) create mode 100644 idea/src/org/jetbrains/jet/lang/annotations/JetPsiChecker.java create mode 100644 idea/testData/checker/Properties.jet create mode 100644 idea/tests/org/jetbrains/jet/parsing/JetPsiCheckerTest.java diff --git a/idea/META-INF/plugin.xml b/idea/META-INF/plugin.xml index 4c19ef61452..5a0efc52715 100644 --- a/idea/META-INF/plugin.xml +++ b/idea/META-INF/plugin.xml @@ -22,5 +22,6 @@ + diff --git a/idea/src/org/jetbrains/jet/lang/annotations/JetPsiChecker.java b/idea/src/org/jetbrains/jet/lang/annotations/JetPsiChecker.java new file mode 100644 index 00000000000..e3b297ea53e --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/annotations/JetPsiChecker.java @@ -0,0 +1,21 @@ +package org.jetbrains.jet.lang.annotations; + +import com.intellij.lang.annotation.AnnotationHolder; +import com.intellij.lang.annotation.Annotator; +import com.intellij.psi.PsiElement; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.psi.JetProperty; + +/** + * @author abreslav + */ +public class JetPsiChecker implements Annotator { + + @Override + public void annotate(@NotNull PsiElement element, @NotNull AnnotationHolder holder) { + if (element instanceof JetProperty) { + JetProperty property = (JetProperty) element; + holder.createErrorAnnotation(property.getNameIdentifier(), "Specify either type or value"); + } + } +} diff --git a/idea/testData/checker/Properties.jet b/idea/testData/checker/Properties.jet new file mode 100644 index 00000000000..202da5ba6c0 --- /dev/null +++ b/idea/testData/checker/Properties.jet @@ -0,0 +1,2 @@ +val foo + diff --git a/idea/tests/org/jetbrains/jet/parsing/JetPsiCheckerTest.java b/idea/tests/org/jetbrains/jet/parsing/JetPsiCheckerTest.java new file mode 100644 index 00000000000..126a82a1b4b --- /dev/null +++ b/idea/tests/org/jetbrains/jet/parsing/JetPsiCheckerTest.java @@ -0,0 +1,25 @@ +package org.jetbrains.jet.parsing; + +import com.intellij.codeInsight.daemon.LightDaemonAnalyzerTestCase; +import com.intellij.openapi.application.PathManager; + +import java.io.File; + +/** + * @author abreslav + */ +public class JetPsiCheckerTest extends LightDaemonAnalyzerTestCase { + + @Override + protected String getTestDataPath() { + return getHomeDirectory() + "/idea/testData"; + } + + private static String getHomeDirectory() { + return new File(PathManager.getResourceRoot(JetParsingTest.class, "/org/jetbrains/jet/parsing/JetParsingTest.class")).getParentFile().getParentFile().getParent(); + } + + public void testFoo() throws Exception { + doTest("/checker/Properties.jet", true, true); + } +}