Search in sources :

Example 1 with ReferenceDescriptor

use of org.eclipse.n4js.ide.imports.ReferenceDescriptor in project n4js by eclipse.

the class ImportsAwareReferenceProposalCreator method lookupCrossReference.

/**
 * Retrieves possible reference targets from scope, including erroneous solutions (e.g., not visible targets). This
 * list is further filtered here. This is a general pattern: Do not change or modify scoping for special content
 * assist requirements, instead filter here.
 *
 * @param filter
 *            by default an instance of {@link N4JSCandidateFilter} will be provided here.
 */
public void lookupCrossReference(EObject model, EReference reference, ContentAssistContext context, IIdeContentProposalAcceptor acceptor, Predicate<IEObjectDescription> filter) {
    if (model == null) {
        return;
    }
    Resource resource = model.eResource();
    if (!(resource instanceof N4JSResource)) {
        return;
    }
    N4JSResource resourceCasted = (N4JSResource) resource;
    N4JSWorkspaceConfigSnapshot wc = workspaceAccess.getWorkspaceConfig(resourceCasted);
    ReferenceDescriptor referenceDesc = new ReferenceDescriptor(context.getPrefix(), model, reference, context.getCurrentNode());
    Predicate<String> conflictChecker = (proposalToCheck) -> conflictHelper.existsConflict(proposalToCheck, context);
    referenceResolutionFinder.findResolutions(wc, referenceDesc, false, false, conflictChecker, filter, new ResolutionToContentProposalAcceptor(resourceCasted, context, acceptor));
}
Also used : N4JSWorkspaceConfigSnapshot(org.eclipse.n4js.workspace.N4JSWorkspaceConfigSnapshot) N4JSCandidateFilter(org.eclipse.n4js.ide.editor.contentassist.N4JSIdeContentProposalProvider.N4JSCandidateFilter) Inject(com.google.inject.Inject) ReferenceDescriptor(org.eclipse.n4js.ide.imports.ReferenceDescriptor) ContentAssistEntry(org.eclipse.xtext.ide.editor.contentassist.ContentAssistEntry) EObject(org.eclipse.emf.ecore.EObject) N4JSPackage(org.eclipse.n4js.n4JS.N4JSPackage) IdeContentProposalPriorities(org.eclipse.xtext.ide.editor.contentassist.IdeContentProposalPriorities) IResolutionAcceptor(org.eclipse.n4js.ide.imports.ReferenceResolutionFinder.IResolutionAcceptor) IIdeContentProposalAcceptor(org.eclipse.xtext.ide.editor.contentassist.IIdeContentProposalAcceptor) N4JSResource(org.eclipse.n4js.resource.N4JSResource) EClass(org.eclipse.emf.ecore.EClass) WorkspaceAccess(org.eclipse.n4js.workspace.WorkspaceAccess) Predicate(com.google.common.base.Predicate) TypesPackage(org.eclipse.n4js.ts.types.TypesPackage) ContentAssistContext(org.eclipse.xtext.ide.editor.contentassist.ContentAssistContext) Resource(org.eclipse.emf.ecore.resource.Resource) ReferenceResolution(org.eclipse.n4js.ide.imports.ReferenceResolution) ImportHelper(org.eclipse.n4js.ide.imports.ImportHelper) EReference(org.eclipse.emf.ecore.EReference) ReferenceResolutionFinder(org.eclipse.n4js.ide.imports.ReferenceResolutionFinder) ReplaceRegion(org.eclipse.xtext.util.ReplaceRegion) IEObjectDescription(org.eclipse.xtext.resource.IEObjectDescription) IProposalConflictHelper(org.eclipse.xtext.ide.editor.contentassist.IProposalConflictHelper) N4JSWorkspaceConfigSnapshot(org.eclipse.n4js.workspace.N4JSWorkspaceConfigSnapshot) N4JSResource(org.eclipse.n4js.resource.N4JSResource) Resource(org.eclipse.emf.ecore.resource.Resource) N4JSResource(org.eclipse.n4js.resource.N4JSResource) ReferenceDescriptor(org.eclipse.n4js.ide.imports.ReferenceDescriptor)

Aggregations

Predicate (com.google.common.base.Predicate)1 Inject (com.google.inject.Inject)1 EClass (org.eclipse.emf.ecore.EClass)1 EObject (org.eclipse.emf.ecore.EObject)1 EReference (org.eclipse.emf.ecore.EReference)1 Resource (org.eclipse.emf.ecore.resource.Resource)1 N4JSCandidateFilter (org.eclipse.n4js.ide.editor.contentassist.N4JSIdeContentProposalProvider.N4JSCandidateFilter)1 ImportHelper (org.eclipse.n4js.ide.imports.ImportHelper)1 ReferenceDescriptor (org.eclipse.n4js.ide.imports.ReferenceDescriptor)1 ReferenceResolution (org.eclipse.n4js.ide.imports.ReferenceResolution)1 ReferenceResolutionFinder (org.eclipse.n4js.ide.imports.ReferenceResolutionFinder)1 IResolutionAcceptor (org.eclipse.n4js.ide.imports.ReferenceResolutionFinder.IResolutionAcceptor)1 N4JSPackage (org.eclipse.n4js.n4JS.N4JSPackage)1 N4JSResource (org.eclipse.n4js.resource.N4JSResource)1 TypesPackage (org.eclipse.n4js.ts.types.TypesPackage)1 N4JSWorkspaceConfigSnapshot (org.eclipse.n4js.workspace.N4JSWorkspaceConfigSnapshot)1 WorkspaceAccess (org.eclipse.n4js.workspace.WorkspaceAccess)1 ContentAssistContext (org.eclipse.xtext.ide.editor.contentassist.ContentAssistContext)1 ContentAssistEntry (org.eclipse.xtext.ide.editor.contentassist.ContentAssistEntry)1 IIdeContentProposalAcceptor (org.eclipse.xtext.ide.editor.contentassist.IIdeContentProposalAcceptor)1