/** * generated by Xtext */ package org.example.smalljava.ui.contentassist; import com.google.common.base.Predicate; import com.google.inject.Inject; import org.eclipse.emf.ecore.EObject; import org.eclipse.jface.viewers.StyledString; import org.eclipse.xtext.AbstractElement; import org.eclipse.xtext.Assignment; import org.eclipse.xtext.CrossReference; import org.eclipse.xtext.resource.IEObjectDescription; import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext; import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor; import org.eclipse.xtext.xbase.lib.Extension; import org.example.smalljava.smallJava.SJClass; import org.example.smalljava.smallJava.SJMember; import org.example.smalljava.ui.contentassist.AbstractSmallJavaProposalProvider; import org.example.smalljava.util.SmallJavaModelUtil; import org.example.smalljava.validation.SmallJavaAccessibility; /** * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#contentAssist on how to customize content assistant */ @SuppressWarnings("all") public class SmallJavaProposalProvider extends AbstractSmallJavaProposalProvider { @Inject @Extension private SmallJavaAccessibility _smallJavaAccessibility; @Override public void completeSJSelectionExpression_Member(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { AbstractElement _terminal = assignment.getTerminal(); final Predicate<IEObjectDescription> _function = new Predicate<IEObjectDescription>() { @Override public boolean apply(final IEObjectDescription description) { EObject _eObjectOrProxy = description.getEObjectOrProxy(); return SmallJavaProposalProvider.this._smallJavaAccessibility.isAccessibleFrom(((SJMember) _eObjectOrProxy), model); } }; this.lookupCrossReference(((CrossReference) _terminal), context, acceptor, _function); } @Override public StyledString getStyledDisplayString(final EObject element, final String qualifiedNameAsString, final String shortName) { StyledString _xifexpression = null; if ((element instanceof SJMember)) { String _memberAsStringWithType = SmallJavaModelUtil.memberAsStringWithType(((SJMember)element)); StyledString _styledString = new StyledString(_memberAsStringWithType); SJClass _containingClass = SmallJavaModelUtil.containingClass(element); String _name = _containingClass.getName(); String _plus = (" - " + _name); StyledString _styledString_1 = new StyledString(_plus, StyledString.QUALIFIER_STYLER); _xifexpression = _styledString.append(_styledString_1); } else { _xifexpression = super.getStyledDisplayString(element, qualifiedNameAsString, shortName); } return _xifexpression; } }