Source:
public static void addPaths(final AbstractContentProposalProvider provider, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor, final String extension) { final IPath rootPath = ResourcesPlugin.getWorkspace().getRoot().getFullPath(); IPath modelPath = new Path(context.getRootModel().eResource().getURI().toPlatformString(false)); modelPath = ResourcesPlugin.getWorkspace().getRoot().getFile(modelPath).getLocation(); if(modelPath == null) return; final URI modelURI = URI.createFileURI(modelPath.toOSString()).trimSegments(1); IResourceProxyVisitor visitor = new IResourceProxyVisitor() { @Override public boolean visit(IResourceProxy proxy) throws CoreException { if (proxy.getType() != IResource.FILE) return true; if (proxy.getName().endsWith(extension)) { IPath relModelPath = proxy.requestFullPath(); relModelPath = ResourcesPlugin.getWorkspace().getRoot().getFile(relModelPath).getLocation(); URI relURI = URI.createFileURI(relModelPath.toOSString()); String relPath = RelativePathHelpers.getRelativePath(modelURI, relURI, true); if (relPath==null) relPath = "file:/"+(relURI.toFileString().replaceAll("\\\\", "/")); IPath relWorkspacePath = proxy.requestFullPath().makeRelativeTo(rootPath); String proposal = "\"" + relPath + "\""; String displayString = relModelPath.lastSegment() + " - " + relWorkspacePath; acceptor.accept(provider.createCompletionProposal(proposal, new StyledString(displayString), null, context)); } return false; } }; try { ResourcesPlugin.getWorkspace().getRoot() .accept(visitor, IResource.NONE); } catch (CoreException e) { e.printStackTrace(); } }

Target:
public static void addPaths(final AbstractContentProposalProvider provider, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor, final String extension) { final IPath rootPath = ResourcesPlugin.getWorkspace().getRoot().getFullPath(); IPath modelPath = new Path(context.getRootModel().eResource().getURI().toPlatformString(true)); modelPath = ResourcesPlugin.getWorkspace().getRoot().getFile(modelPath).getLocation(); final URI modelURI = URI.createFileURI(modelPath.toOSString()).trimSegments(1); IResourceProxyVisitor visitor = new IResourceProxyVisitor() { @Override public boolean visit(IResourceProxy proxy) throws CoreException { if (proxy.getType() != IResource.FILE) return true; if (proxy.getName().endsWith(extension)) { IPath relModelPath = proxy.requestFullPath(); relModelPath = ResourcesPlugin.getWorkspace().getRoot().getFile(relModelPath).getLocation(); URI relURI = URI.createFileURI(relModelPath.toOSString()); String relPath = RelativePathHelpers.getRelativePath(modelURI, relURI, true); if (relPath==null) relPath = "file:/"+(relURI.toFileString().replaceAll("\\\\", "/")); IPath relWorkspacePath = proxy.requestFullPath().makeRelativeTo(rootPath); String proposal = "\"" + relPath + "\""; String displayString = relModelPath.lastSegment() + " - " + relWorkspacePath; acceptor.accept(provider.createCompletionProposal(proposal, new StyledString(displayString), null, context)); } return false; } }; try { ResourcesPlugin.getWorkspace().getRoot() .accept(visitor, IResource.NONE); } catch (CoreException e) { e.printStackTrace(); } }