/** * @return whether there's possibly an {@link IResourceServiceProvider} for the given storage * @since 2.4 */ public boolean isPossiblyManaged(IStorage storage) { if (!registry.getContentTypeToFactoryMap().isEmpty()) return true; String name = storage.getName(); if (name == null) { return true; } name = URI.encodeSegment(name, true); int index = name.lastIndexOf('.'); if (index == -1) { return true; } return registry.getExtensionToFactoryMap().containsKey(name.substring(index + 1)); } }
public IResourceDescription getResourceDescription(URI uri) { IResourceDescription result = delegate.getResourceDescription(uri); if (result == null) { Resource resource = EcoreUtil2.getResource(context, uri.toString()); if (resource != null) { IResourceServiceProvider serviceProvider = serviceProviderRegistry.getResourceServiceProvider(uri); if (serviceProvider==null) throw new IllegalStateException("No "+IResourceServiceProvider.class.getSimpleName()+" found in registry for uri "+uri); final Manager resourceDescriptionManager = serviceProvider.getResourceDescriptionManager(); if (resourceDescriptionManager == null) throw new IllegalStateException("No "+IResourceDescription.Manager.class.getName()+" provided by service provider for URI "+uri); result = resourceDescriptionManager.getResourceDescription(resource); } } return result; }
public static GlobalStateMemento makeCopyOfGlobalState() { GlobalStateMemento memento = new GlobalStateMemento(); memento.validatorReg = new HashMap<EPackage, Object>(EValidator.Registry.INSTANCE); for(Map.Entry<EPackage, Object> validatorEntry: memento.validatorReg.entrySet()) { Object existingValue = validatorEntry.getValue(); if (existingValue instanceof CompositeEValidator) { validatorEntry.setValue(((CompositeEValidator) existingValue).getCopyAndClearContents()); } } memento.epackageReg = new HashMap<String, Object>(EPackage.Registry.INSTANCE); memento.protocolToFactoryMap = new HashMap<String, Object>(Resource.Factory.Registry.INSTANCE.getProtocolToFactoryMap()); memento.extensionToFactoryMap = new HashMap<String, Object>(Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap()); memento.contentTypeIdentifierToFactoryMap = new HashMap<String, Object>(Resource.Factory.Registry.INSTANCE.getContentTypeToFactoryMap()); memento.protocolToServiceProviderMap = new HashMap<String, Object>(IResourceServiceProvider.Registry.INSTANCE.getProtocolToFactoryMap()); memento.extensionToServiceProviderMap = new HashMap<String, Object>(IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap()); memento.contentTypeIdentifierToServiceProviderMap = new HashMap<String, Object>(IResourceServiceProvider.Registry.INSTANCE.getContentTypeToFactoryMap()); return memento; }
public Generator createAndInit(GeneratorConfiguration configuration) { Generator result = null; Module module = loadGeneratorModule(configuration); if (module == null) { result = createAndInitXpandGenerator(configuration); } else { String fileExtension = configuration.getFileExtension(); try { IResourceServiceProvider resourceServiceProvider = IResourceServiceProvider.Registry.INSTANCE .getResourceServiceProvider(URI.createURI("null") .appendFileExtension(fileExtension)); Injector injector = resourceServiceProvider.get(Injector.class); Injector generatorInjector = injector .createChildInjector(module); result = generatorInjector.getInstance(get(Generator.class, named(fileExtension + "Generator"))); } catch (Exception classNotFoundException) { result = createAndInitXpandGenerator(configuration); } } if (result != null) { result.init(configuration); } return result; }
@Override public CompletableFuture<CodeLens> resolveCodeLens(final CodeLens unresolved) { final URI uri = this.uninstallURI(unresolved); if ((uri == null)) { return CompletableFuture.<CodeLens>completedFuture(unresolved); } final Function1<CancelIndicator, CodeLens> _function = (CancelIndicator cancelIndicator) -> { final IResourceServiceProvider resourceServiceProvider = this.languagesRegistry.getResourceServiceProvider(uri); ICodeLensResolver _get = null; if (resourceServiceProvider!=null) { _get=resourceServiceProvider.<ICodeLensResolver>get(ICodeLensResolver.class); } final ICodeLensResolver resolver = _get; if ((resolver == null)) { return unresolved; } final Function2<Document, XtextResource, CodeLens> _function_1 = (Document document, XtextResource resource) -> { final CodeLens result = resolver.resolveCodeLens(document, resource, unresolved, cancelIndicator); return result; }; return this.workspaceManager.<CodeLens>doRead(uri, _function_1); }; return this.requestManager.<CodeLens>runRead(_function); }
@Override public CompletableFuture<List<? extends CodeLens>> codeLens(final CodeLensParams params) { final Function1<CancelIndicator, List<? extends CodeLens>> _function = (CancelIndicator cancelIndicator) -> { final URI uri = this._uriExtensions.toUri(params.getTextDocument().getUri()); final IResourceServiceProvider resourceServiceProvider = this.languagesRegistry.getResourceServiceProvider(uri); ICodeLensService _get = null; if (resourceServiceProvider!=null) { _get=resourceServiceProvider.<ICodeLensService>get(ICodeLensService.class); } final ICodeLensService codeLensService = _get; if ((codeLensService == null)) { return CollectionLiterals.<CodeLens>emptyList(); } final Function2<Document, XtextResource, List<? extends CodeLens>> _function_1 = (Document document, XtextResource resource) -> { final List<? extends CodeLens> result = codeLensService.computeCodeLenses(document, resource, params, cancelIndicator); this.installURI(result, uri.toString()); return result; }; return this.workspaceManager.<List<? extends CodeLens>>doRead(uri, _function_1); }; return this.requestManager.<List<? extends CodeLens>>runRead(_function); }
@Override public CompletableFuture<WorkspaceEdit> rename(final RenameParams params) { final Function1<CancelIndicator, WorkspaceEdit> _function = (CancelIndicator cancelIndicator) -> { WorkspaceEdit _xblockexpression = null; { final URI uri = this._uriExtensions.toUri(params.getTextDocument().getUri()); final IResourceServiceProvider resourceServiceProvider = this.languagesRegistry.getResourceServiceProvider(uri); IRenameService _get = null; if (resourceServiceProvider!=null) { _get=resourceServiceProvider.<IRenameService>get(IRenameService.class); } final IRenameService renameService = _get; if ((renameService == null)) { return new WorkspaceEdit(); } _xblockexpression = renameService.rename(this.workspaceManager, params, cancelIndicator); } return _xblockexpression; }; return this.requestManager.<WorkspaceEdit>runRead(_function); }
public List<? extends SymbolInformation> getSymbols(final String query, final IReferenceFinder.IResourceAccess resourceAccess, final IResourceDescriptions indexData, final CancelIndicator cancelIndicator) { final LinkedList<SymbolInformation> result = CollectionLiterals.<SymbolInformation>newLinkedList(); Iterable<IResourceDescription> _allResourceDescriptions = indexData.getAllResourceDescriptions(); for (final IResourceDescription resourceDescription : _allResourceDescriptions) { { this.operationCanceledManager.checkCanceled(cancelIndicator); final IResourceServiceProvider resourceServiceProvider = this._registry.getResourceServiceProvider(resourceDescription.getURI()); DocumentSymbolService _get = null; if (resourceServiceProvider!=null) { _get=resourceServiceProvider.<DocumentSymbolService>get(DocumentSymbolService.class); } final DocumentSymbolService documentSymbolService = _get; if ((documentSymbolService != null)) { List<? extends SymbolInformation> _symbols = documentSymbolService.getSymbols(resourceDescription, query, resourceAccess, cancelIndicator); Iterables.<SymbolInformation>addAll(result, _symbols); } } } return result; } }
@Override public CompletableFuture<List<? extends DocumentHighlight>> documentHighlight(final TextDocumentPositionParams params) { final Function1<CancelIndicator, List<? extends DocumentHighlight>> _function = (CancelIndicator cancelIndicator) -> { final URI uri = this._uriExtensions.toUri(params.getTextDocument().getUri()); final IResourceServiceProvider serviceProvider = this.languagesRegistry.getResourceServiceProvider(uri); IDocumentHighlightService _get = null; if (serviceProvider!=null) { _get=serviceProvider.<IDocumentHighlightService>get(IDocumentHighlightService.class); } final IDocumentHighlightService service = _get; if ((service == null)) { return CollectionLiterals.<DocumentHighlight>emptyList(); } final Function2<Document, XtextResource, List<? extends DocumentHighlight>> _function_1 = (Document doc, XtextResource resource) -> { return service.getDocumentHighlights(doc, resource, params, cancelIndicator); }; return this.workspaceManager.<List<? extends DocumentHighlight>>doRead(uri, _function_1); }; return this.requestManager.<List<? extends DocumentHighlight>>runRead(_function); }
protected Map<EObject, URI> createExportedElementsMap(Resource resource) { URI uri = EcoreUtil2.getPlatformResourceOrNormalizedURI(resource); IResourceServiceProvider resourceServiceProvider = serviceProviderRegistry.getResourceServiceProvider(uri); if (resourceServiceProvider == null) { return Collections.emptyMap(); } IResourceDescription.Manager resourceDescriptionManager = resourceServiceProvider.getResourceDescriptionManager(); if (resourceDescriptionManager == null) { return Collections.emptyMap(); } IResourceDescription resourceDescription = resourceDescriptionManager.getResourceDescription(resource); Map<EObject, URI> exportedElementMap = newIdentityHashMap(); if (resourceDescription != null) { for (IEObjectDescription exportedEObjectDescription : resourceDescription.getExportedObjects()) { EObject eObject = resource.getEObject(exportedEObjectDescription.getEObjectURI().fragment()); if (eObject != null) exportedElementMap.put(eObject, exportedEObjectDescription.getEObjectURI()); } } return exportedElementMap; }
@Override public CompletableFuture<List<Either<Command, CodeAction>>> codeAction(final CodeActionParams params) { final Function1<CancelIndicator, List<Either<Command, CodeAction>>> _function = (CancelIndicator cancelIndicator) -> { final URI uri = this._uriExtensions.toUri(params.getTextDocument().getUri()); final IResourceServiceProvider serviceProvider = this.languagesRegistry.getResourceServiceProvider(uri); ICodeActionService _get = null; if (serviceProvider!=null) { _get=serviceProvider.<ICodeActionService>get(ICodeActionService.class); } final ICodeActionService service = _get; if ((service == null)) { return CollectionLiterals.<Either<Command, CodeAction>>emptyList(); } final Function2<Document, XtextResource, List<Either<Command, CodeAction>>> _function_1 = (Document doc, XtextResource resource) -> { return service.getCodeActions(doc, resource, params, cancelIndicator); }; return this.workspaceManager.<List<Either<Command, CodeAction>>>doRead(uri, _function_1); }; return this.requestManager.<List<Either<Command, CodeAction>>>runRead(_function); }
@Override public CompletableFuture<List<? extends Location>> references(final ReferenceParams params) { final Function1<CancelIndicator, List<? extends Location>> _function = (CancelIndicator cancelIndicator) -> { final URI uri = this._uriExtensions.toUri(params.getTextDocument().getUri()); final IResourceServiceProvider resourceServiceProvider = this.languagesRegistry.getResourceServiceProvider(uri); DocumentSymbolService _get = null; if (resourceServiceProvider!=null) { _get=resourceServiceProvider.<DocumentSymbolService>get(DocumentSymbolService.class); } final DocumentSymbolService documentSymbolService = _get; if ((documentSymbolService == null)) { return CollectionLiterals.<Location>emptyList(); } final Function2<Document, XtextResource, List<? extends Location>> _function_1 = (Document document, XtextResource resource) -> { return documentSymbolService.getReferences(document, resource, params, this.resourceAccess, this.workspaceManager.getIndex(), cancelIndicator); }; return this.workspaceManager.<List<? extends Location>>doRead(uri, _function_1); }; return this.requestManager.<List<? extends Location>>runRead(_function); }
@Override public CompletableFuture<Hover> hover(final TextDocumentPositionParams params) { final Function1<CancelIndicator, Hover> _function = (CancelIndicator cancelIndicator) -> { final URI uri = this._uriExtensions.toUri(params.getTextDocument().getUri()); final IResourceServiceProvider resourceServiceProvider = this.languagesRegistry.getResourceServiceProvider(uri); IHoverService _get = null; if (resourceServiceProvider!=null) { _get=resourceServiceProvider.<IHoverService>get(IHoverService.class); } final IHoverService hoverService = _get; if ((hoverService == null)) { return IHoverService.EMPTY_HOVER; } final Function2<Document, XtextResource, Hover> _function_1 = (Document document, XtextResource resource) -> { return hoverService.hover(document, resource, params, cancelIndicator); }; return this.workspaceManager.<Hover>doRead(uri, _function_1); }; return this.requestManager.<Hover>runRead(_function); }
protected String getCharset(final Resource resource) { String _xblockexpression = null; { final IEncodingProvider xtextEncodingProvider = this.registry.getResourceServiceProvider(resource.getURI()).<IEncodingProvider>get(IEncodingProvider.class); String _xifexpression = null; if ((xtextEncodingProvider != null)) { return xtextEncodingProvider.getEncoding(resource.getURI()); } else { String _xifexpression_1 = null; if ((resource instanceof XMLResource)) { _xifexpression_1 = ((XMLResource)resource).getEncoding(); } else { _xifexpression_1 = Charset.defaultCharset().toString(); } _xifexpression = _xifexpression_1; } _xblockexpression = _xifexpression; } return _xblockexpression; }
@Override public CompletableFuture<List<? extends TextEdit>> rangeFormatting(final DocumentRangeFormattingParams params) { final Function1<CancelIndicator, List<? extends TextEdit>> _function = (CancelIndicator cancelIndicator) -> { final URI uri = this._uriExtensions.toUri(params.getTextDocument().getUri()); final IResourceServiceProvider resourceServiceProvider = this.languagesRegistry.getResourceServiceProvider(uri); FormattingService _get = null; if (resourceServiceProvider!=null) { _get=resourceServiceProvider.<FormattingService>get(FormattingService.class); } final FormattingService formatterService = _get; if ((formatterService == null)) { return CollectionLiterals.<TextEdit>emptyList(); } final Function2<Document, XtextResource, List<? extends TextEdit>> _function_1 = (Document document, XtextResource resource) -> { return formatterService.format(document, resource, params, cancelIndicator); }; return this.workspaceManager.<List<? extends TextEdit>>doRead(uri, _function_1); }; return this.requestManager.<List<? extends TextEdit>>runRead(_function); }
@Override public CompletableFuture<List<? extends TextEdit>> formatting(final DocumentFormattingParams params) { final Function1<CancelIndicator, List<? extends TextEdit>> _function = (CancelIndicator cancelIndicator) -> { final URI uri = this._uriExtensions.toUri(params.getTextDocument().getUri()); final IResourceServiceProvider resourceServiceProvider = this.languagesRegistry.getResourceServiceProvider(uri); FormattingService _get = null; if (resourceServiceProvider!=null) { _get=resourceServiceProvider.<FormattingService>get(FormattingService.class); } final FormattingService formatterService = _get; if ((formatterService == null)) { return CollectionLiterals.<TextEdit>emptyList(); } final Function2<Document, XtextResource, List<? extends TextEdit>> _function_1 = (Document document, XtextResource resource) -> { return formatterService.format(document, resource, params, cancelIndicator); }; return this.workspaceManager.<List<? extends TextEdit>>doRead(uri, _function_1); }; return this.requestManager.<List<? extends TextEdit>>runRead(_function); }
@Override public CompletableFuture<SignatureHelp> signatureHelp(final TextDocumentPositionParams params) { final Function1<CancelIndicator, SignatureHelp> _function = (CancelIndicator cancelIndicator) -> { final URI uri = this._uriExtensions.toUri(params.getTextDocument().getUri()); final IResourceServiceProvider serviceProvider = this.languagesRegistry.getResourceServiceProvider(uri); ISignatureHelpService _get = null; if (serviceProvider!=null) { _get=serviceProvider.<ISignatureHelpService>get(ISignatureHelpService.class); } final ISignatureHelpService helper = _get; if ((helper == null)) { return ISignatureHelpService.EMPTY; } final Function2<Document, XtextResource, SignatureHelp> _function_1 = (Document doc, XtextResource resource) -> { return helper.getSignatureHelp(doc, resource, params, cancelIndicator); }; return this.workspaceManager.<SignatureHelp>doRead(uri, _function_1); }; return this.requestManager.<SignatureHelp>runRead(_function); }
protected OutputConfiguration findOutputConfiguration(URI dslSourceFile, IFile generatedJavaFile) { IResourceServiceProvider serviceProvider = serviceProviderRegistry.getResourceServiceProvider(dslSourceFile); if (serviceProvider == null) return null; EclipseOutputConfigurationProvider cfgProvider = serviceProvider.get(EclipseOutputConfigurationProvider.class); IProject project = generatedJavaFile.getProject(); Set<OutputConfiguration> configurations = cfgProvider.getOutputConfigurations(project); if (!configurations.isEmpty()) { if (configurations.size() == 1) return configurations.iterator().next(); for (OutputConfiguration out : configurations) { IContainer container = ResourceUtil.getContainer(project, out.getOutputDirectory()); if (container != null && container.getFullPath().isPrefixOf(generatedJavaFile.getFullPath())) return out; } } log.error("Could not find output configuration for file " + generatedJavaFile.getFullPath()); return null; }
protected Either<List<CompletionItem>, CompletionList> completion(final CancelIndicator originalCancelIndicator, final CompletionParams params) { final LanguageServerImpl.BufferedCancelIndicator cancelIndicator = new LanguageServerImpl.BufferedCancelIndicator(originalCancelIndicator); final URI uri = this._uriExtensions.toUri(params.getTextDocument().getUri()); final IResourceServiceProvider resourceServiceProvider = this.languagesRegistry.getResourceServiceProvider(uri); ContentAssistService _get = null; if (resourceServiceProvider!=null) { _get=resourceServiceProvider.<ContentAssistService>get(ContentAssistService.class); } final ContentAssistService contentAssistService = _get; if ((contentAssistService == null)) { CompletionList _completionList = new CompletionList(); return Either.<List<CompletionItem>, CompletionList>forRight(_completionList); } final Function2<Document, XtextResource, CompletionList> _function = (Document document, XtextResource resource) -> { return contentAssistService.createCompletionList(document, resource, params, cancelIndicator); }; final CompletionList completionList = this.workspaceManager.<CompletionList>doRead(uri, _function); return Either.<List<CompletionItem>, CompletionList>forRight(completionList); }
/** * @since 2.4 */ protected void findAllIndexedReferences(IAcceptor<IReferenceDescription> referenceAcceptor, SubMonitor subMonitor, Set<URI> targetURIsAsSet, ILocalResourceAccess localResourceAccess) { subMonitor.setWorkRemaining(size(indexData.getAllResourceDescriptions())); for (IResourceDescription resourceDescription : indexData.getAllResourceDescriptions()) { IResourceServiceProvider serviceProvider = serviceProviderRegistry.getResourceServiceProvider(resourceDescription.getURI()); IReferenceFinder referenceFinder = serviceProvider.get(IReferenceFinder.class); if (referenceFinder instanceof IReferenceFinderExtension1) { IReferenceFinderExtension1 extension1 = (IReferenceFinderExtension1) referenceFinder; extension1.findReferences(targetURIsAsSet, resourceDescription, referenceAcceptor, subMonitor.newChild(1), localResourceAccess); } else { // don't use the language specific reference finder here for backwards compatibility reasons findReferences(targetURIsAsSet, resourceDescription, referenceAcceptor, subMonitor.newChild(1), localResourceAccess); } } }