use of org.eclipse.xtext.xbase.annotations.xAnnotations.XAnnotation in project xtext-eclipse by eclipse.
the class XbaseWithAnnotationsProposalProvider method completeXAnnotationElementValuePair_Element.
@Override
public void completeXAnnotationElementValuePair_Element(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
XAnnotation annotationReference = null;
if (model instanceof XAnnotationElementValuePair) {
annotationReference = (XAnnotation) model.eContainer();
} else if (model instanceof XAnnotation) {
annotationReference = (XAnnotation) model;
}
if (annotationReference != null) {
JvmType annotationType = annotationReference.getAnnotationType();
if (annotationType != null && !annotationType.eIsProxy() && annotationType instanceof JvmAnnotationType) {
// do not propose features like #toString, #hashCode etc
JvmAnnotationType casted = (JvmAnnotationType) annotationType;
final Set<JvmOperation> operations = Sets.newHashSet(casted.getDeclaredOperations());
Predicate<IEObjectDescription> predicate = Predicates.and(new Predicate<IEObjectDescription>() {
@Override
public boolean apply(IEObjectDescription in) {
return operations.contains(in.getEObjectOrProxy());
}
}, getFeatureDescriptionPredicate(context));
lookupCrossReference(((CrossReference) assignment.getTerminal()), context, acceptor, predicate);
}
}
}
use of org.eclipse.xtext.xbase.annotations.xAnnotations.XAnnotation in project xtext-xtend by eclipse.
the class ErrorTest method testErrorModel_015.
@Test
public void testErrorModel_015() throws Exception {
StringConcatenation _builder = new StringConcatenation();
_builder.append("@ class Node {");
_builder.newLine();
_builder.append("}");
_builder.newLine();
final XtendFile file = this.processWithoutException(_builder);
final XtendTypeDeclaration node = IterableExtensions.<XtendTypeDeclaration>head(file.getXtendTypes());
final XAnnotation annotation = IterableExtensions.<XAnnotation>head(node.getAnnotations());
final IResolvedTypes resolvedTypes = this.typeResolver.resolveTypes(annotation);
Assert.assertNotNull(resolvedTypes.getActualType(annotation));
}
use of org.eclipse.xtext.xbase.annotations.xAnnotations.XAnnotation in project xtext-xtend by eclipse.
the class ErrorTest method testErrorModel_018.
@Test
public void testErrorModel_018() throws Exception {
StringConcatenation _builder = new StringConcatenation();
_builder.append("class C {");
_builder.newLine();
_builder.append("\t");
_builder.append("def m(@");
_builder.newLine();
final XtendFile file = this.processWithoutException(_builder);
final XtendTypeDeclaration c = IterableExtensions.<XtendTypeDeclaration>head(file.getXtendTypes());
XtendMember _head = IterableExtensions.<XtendMember>head(c.getMembers());
final XtendFunction function = ((XtendFunction) _head);
final XtendParameter param = IterableExtensions.<XtendParameter>head(function.getParameters());
final XAnnotation annotation = IterableExtensions.<XAnnotation>head(param.getAnnotations());
final IResolvedTypes resolvedTypes = this.typeResolver.resolveTypes(annotation);
Assert.assertNotNull(resolvedTypes.getActualType(annotation));
}
use of org.eclipse.xtext.xbase.annotations.xAnnotations.XAnnotation in project xtext-xtend by eclipse.
the class ErrorTest method testErrorModel_005.
@Test
public void testErrorModel_005() throws Exception {
StringConcatenation _builder = new StringConcatenation();
_builder.append("@");
_builder.newLine();
final XtendFile file = this.processWithoutException(_builder);
final XtendTypeDeclaration typeDeclaration = IterableExtensions.<XtendTypeDeclaration>head(file.getXtendTypes());
final EList<XAnnotation> annotations = typeDeclaration.getAnnotations();
final IResolvedTypes resolvedTypes = this.typeResolver.resolveTypes(IterableExtensions.<XAnnotation>head(annotations));
Assert.assertNotNull(resolvedTypes.getActualType(IterableExtensions.<XAnnotation>head(annotations)));
}
use of org.eclipse.xtext.xbase.annotations.xAnnotations.XAnnotation in project xtext-xtend by eclipse.
the class ErrorTest method testErrorModel_006.
@Test
public void testErrorModel_006() throws Exception {
StringConcatenation _builder = new StringConcatenation();
_builder.append("@Data class A {}");
_builder.newLine();
_builder.append("@");
_builder.newLine();
final XtendFile file = this.processWithoutException(_builder);
final XtendTypeDeclaration typeDeclaration = IterableExtensions.<XtendTypeDeclaration>last(file.getXtendTypes());
final EList<XAnnotation> annotations = typeDeclaration.getAnnotations();
final IResolvedTypes resolvedTypes = this.typeResolver.resolveTypes(IterableExtensions.<XAnnotation>head(annotations));
Assert.assertNotNull(resolvedTypes.getActualType(IterableExtensions.<XAnnotation>head(annotations)));
}
Aggregations