微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

org.eclipse.xtext.util.CancelIndicator的实例源码

项目:n4js    文件ExceptionAnalyser.java   
@Override
protected List<Diagnostic> getScriptErrors(Script script) {
    EcoreUtil.resolveAll(script.eResource());
    List<Diagnostic> diagnostics = super.getScriptErrors(script);
    Iterator<Expression> expressions = Iterators.filter(EcoreUtil2.eAll(script),Expression.class);
    List<Diagnostic> result = Lists.<Diagnostic> newArrayList(Iterables.filter(diagnostics,ExceptionDiagnostic.class));
    while (expressions.hasNext()) {
        Expression expression = expressions.next();
        RuleEnvironment ruleEnvironment = RuleEnvironmentExtensions.newRuleEnvironment(expression);
        Result<TypeRef> type = typeSystem.type(ruleEnvironment,expression);
        if (type.getRuleFailedException() != null) {
            Throwable cause = Throwables.getRootCause(type.getRuleFailedException());
            if (!(cause instanceof RuleFailedException)) {
                if (cause instanceof Exception) {
                    result.add(new ExceptionDiagnostic((Exception) cause));
                } else {
                    throw new RuntimeException(cause);
                }
            }
        }
    }
    validator.validate(script.eResource(),CheckMode.ALL,CancelIndicator.NullImpl);
    return result;
}
项目:n4js    文件XpectN4JSES5transpilerHelper.java   
private boolean registerErrors(Resource dep,StringBuilder errorResult) {
    boolean hasErrors = false;
    List<Issue> issues = resourceValidator.validate(dep,CancelIndicator.NullImpl);
    List<Issue> errorIssues = new ArrayList<>();
    for (Issue issue : issues) {
        if (Severity.ERROR == issue.getSeverity()) {
            errorIssues.add(issue);
        }
    }
    hasErrors = !errorIssues.isEmpty();
    if (hasErrors) {
        errorResult.append("Couldn't compile resource " + dep.getURI() + " because it contains errors: ");
        for (Issue errorIssue : errorIssues) {
            errorResult
                    .append(nl + errorIssue.getMessage() + " at line " + errorIssue.getLineNumber());
        }
    }
    return hasErrors;
}
项目:n4js    文件N4JSPostProcessor.java   
@Override
public void performPostProcessing(PostProcessingAwareResource resource,CancelIndicator cancelIndicator) {
    final N4JSResource resourceCasted = (N4JSResource) resource;
    final ASTMetaInfoCache cache = createASTMetaInfoCache(resourceCasted);
    try {
        postProcessN4JSResource(resourceCasted,cancelIndicator);
    } catch (Throwable th) {
        operationCanceledManager.propagateIfCancelException(th);
        if (cache.hasbrokenAST()) {
            // swallow exception,AST is broken due to parse error anyway
        } else {
            // make sure this error is being reported,even if exception will be suppressed by calling code!
            UtilN4.reportError("exception while post-processing resource " + resource.getURI(),th);
            throw th;
        }
    } finally {
        cache.clearTemporaryData();
    }
}
项目:n4js    文件N4JSResourceValidator.java   
/**
 * Don't validate the inferred module since all validation information should be available on the AST elements.
 */
@Override
protected void validate(Resource resource,CheckMode mode,CancelIndicator cancelIndicator,IAcceptor<Issue> acceptor) {
    operationCanceledManager.checkCanceled(cancelIndicator);
    if (n4jscore.isNovalidate(resource.getURI())) {
        return;
    }
    List<EObject> contents = resource.getContents();
    if (!contents.isEmpty()) {
        EObject firstElement = contents.get(0);
        // // Mark the scoping as sealed. (No other usage-flags should be set for import-declarations.)
        // if (firstElement instanceof Script) {
        // ((Script) firstElement).setFlaggedBound(true);
        // }
        validate(resource,firstElement,mode,cancelIndicator,acceptor);

        // UtilN4.takeSnapshotInGraphView("post validation",resource);
    }
}
项目:n4js    文件N4JSResource.java   
@Override
public void resolveLazyCrossReferences(CancelIndicator mon) {
    // called from builder before resource descriptions are created + called from validator
    final Script script = getScriptResolved(); // need to be called before resolve() since that one injects a proxy
    // at resource.content[0]
    final Measurement measurment = collector.getMeasurement(getURI().toString());
    super.resolveLazyCrossReferences(mon);
    measurment.end();
    if (script != null) {
        // FIXME freezing of used imports tracking can/should Now be moved to N4JSPostProcessor or ASTProcessor
        EcoreUtilN4.doWithDeliver(false,// freezing Tracking of used imports in OriginAwareScope
                () -> script.setFlaggedUsageMarkingFinished(true),script);
    }
}
项目:DocIT    文件Main.java   
protected void runGenerator(String string) {
    // load the resource
    ResourceSet set = resourceSetProvider.get();
    Resource resource = set.getResource(URI.createURI(string),true);

    // validate the resource
    List<Issue> list = validator.validate(resource,CancelIndicator.NullImpl);
    if (!list.isEmpty()) {
        for (Issue issue : list) {
            System.err.println(issue);
        }
        return;
    }

    // configure and start the generator
    fileAccess.setoutputPath("src-gen/");
    generator.doGenerate(resource,fileAccess);

    System.out.println("Code generation finished.");
}
项目:jason-eclipse-plugin    文件Main.java   
protected void runGenerator(String string) {
    // load the resource
    ResourceSet set = resourceSetProvider.get();
    Resource resource = set.getResource(URI.createURI(string),fileAccess);

    System.out.println("Code generation finished.");
}
项目:xtext-core    文件LanguageServerImpl.java   
@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);
}
项目:xtext-core    文件CodeActionService.java   
@Override
public List<? extends Command> getCodeActions(final Document document,final XtextResource resource,final CodeActionParams params,final CancelIndicator indicator) {
  final ArrayList<Command> commands = CollectionLiterals.<Command>newArrayList();
  List<Diagnostic> _diagnostics = params.getContext().getDiagnostics();
  for (final Diagnostic d : _diagnostics) {
    String _code = d.getCode();
    if (_code != null) {
      switch (_code) {
        case TestLanguageValidator.INVALID_NAME:
          Command _fixInvalidName = this.fixInvalidName(d,document,params);
          commands.add(_fixInvalidName);
          break;
        case TestLanguageValidator.UNSORTED_MEMBERS:
          Command _fixUnsortedMembers = this.fixUnsortedMembers(d,params);
          commands.add(_fixUnsortedMembers);
          break;
      }
    }
  }
  return commands;
}
项目:xtext-core    文件LanguageServerImpl.java   
@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,List<? extends Location>> _function_1 = (Document document,XtextResource resource) -> {
      return documentSymbolService.getReferences(document,this.resourceAccess,this.workspaceManager.getIndex(),cancelIndicator);
    };
    return this.workspaceManager.<List<? extends Location>>doRead(uri,_function_1);
  };
  return this.requestManager.<List<? extends Location>>runRead(_function);
}
项目:xtext-extras    文件DefaultReentrantTypeResolver.java   
@Override
public IResolvedTypes reentrantResolve(CancelIndicator monitor) {
    if (resolving) {
        throw new UnsupportedOperationException("Todo: import a functional handle on the type resolution that delegates to the best available (current,but evolving) result");
    }
    StoppedTask task = Stopwatches.forTask("DefaultReentrantTypeResolver.resolve");
    try {
        task.start();
        resolving = true;
        return resolve(monitor);
    } catch(Throwable e) {
        clear();
        if (operationCanceledManager.isOperationCanceledException(e)) {
            operationCanceledManager.propagateAsErrorIfCancelException(e);
        }
        throw Throwables.propagate(e);
    } finally {
        resolving = false;
        task.stop();
    }
}
项目:xtext-core    文件LanguageServerImpl.java   
protected Either<List<CompletionItem>,CompletionList> completion(final CancelIndicator origialCancelIndicator,final TextDocumentPositionParams params) {
  final LanguageServerImpl.BufferedCancelIndicator cancelIndicator = new LanguageServerImpl.BufferedCancelIndicator(origialCancelIndicator);
  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,CompletionList> _function = (Document document,XtextResource resource) -> {
    return contentAssistService.createCompletionList(document,cancelIndicator);
  };
  final CompletionList completionList = this.workspaceManager.<CompletionList>doRead(uri,_function);
  return Either.<List<CompletionItem>,CompletionList>forRight(completionList);
}
项目:xtext-extras    文件CachingBatchTypeResolver.java   
@Override
/* @NonNull */
protected IResolvedTypes doResolveTypes(final /* @Nullable */ EObject object,final /* @Nullable */ CancelIndicator monitor) {
    // Todo: remove when we switch to an Xtend scope provider without artificial feature calls  
    EObject nonArtificialObject = object;
    if(object.eResource() == null && object instanceof XAbstractFeatureCall) {
        nonArtificialObject = ((XAbstractFeatureCall) object).getFeature();
    }
    // Todo
    final Resource resource = nonArtificialObject.eResource();
    final LazyResolvedTypes result = cache.get(CachingBatchTypeResolver.class,new Provider<LazyResolvedTypes>() {
        @Override
        public LazyResolvedTypes get() {
            final IReentrantTypeResolver resolver = delegate.getTypeResolver(object);
            return new LazyResolvedTypes(resolver,resource);
        }
    });
    cache.execWithoutCacheClear(resource,new IUnitOfWork.Void<Resource>() {
        @Override
        public void process(Resource state) throws Exception {
            // trigger the actual resolution after the thing was cached
            result.resolveTypes(monitor == null ? CancelIndicator.NullImpl : monitor); 
        }
    });
    return result;
}
项目:xtext-core    文件LazyLinkingResourceTest.java   
@Test public void testResolveLazyCrossReferences_02() throws Exception {
    with(lazyLinkingTestLangaugeSetup());
    ResourceSetImpl rs = new ResourceSetImpl();
    final Resource res1 = rs.createResource(URI.createURI("file1.lazylinkingtestlanguage"));
    Resource res2 = rs.createResource(URI.createURI("file2.lazylinkingtestlanguage"));
    res1.load(new StringInputStream("type Foo { } type Baz { Foo Bar prop; } }"),null);
    res2.load(new StringInputStream("type Bar { }"),null);
    res1.eAdapters().add(notificationAlert);

    Model m = (Model) res1.getContents().get(0);
    Type t = m.getTypes().get(1);
    Property p = t.getProperties().get(0);
    final InternalEList<Type> types = (InternalEList<Type>) p.getType();
    assertEquals(2,types.size());
    for (Iterator<Type> it = types.basicIterator(); it.hasNext();) {
        final Type tt = it.next();
        assertTrue(tt.eIsProxy());
    }
    ((LazyLinkingResource) res1).resolveLazyCrossReferences(CancelIndicator.NullImpl);
    assertFalse(types.basicGet(0).eIsProxy());
    assertTrue(types.basicGet(1).eIsProxy());
    res1.eAdapters().remove(notificationAlert);
    EcoreUtil.resolveAll(res1);
    assertFalse(types.basicGet(0).eIsProxy());
    assertFalse(types.basicGet(1).eIsProxy());
}
项目:dsl-devkit    文件ResourceDescription2.java   
@Override
protected List<IReferenceDescription> computeReferenceDescriptions() {
  final ImmutableList.Builder<IReferenceDescription> referenceDescriptions = ImmutableList.builder();
  EcoreUtil2.resolveLazyCrossReferences(getResource(),CancelIndicator.NullImpl);
  Map<EObject,IEObjectDescription> eObject2exportedEObjects = createEObject2ExportedEObjectsMap(getExportedobjects());
  TreeIterator<EObject> contents = EcoreUtil.getAllProperContents(getResource(),true);
  while (contents.hasNext()) {
    EObject eObject = contents.next();
    URI exportedContainerURI = findExportedContainerURI(eObject,eObject2exportedEObjects);
    if (!strategy.createReferenceDescriptions(eObject,exportedContainerURI,referenceDescriptions::add)) {
      contents.prune();
    }
  }
  if (strategy instanceof AbstractResourceDescriptionStrategy) {
    ((AbstractResourceDescriptionStrategy) strategy).createImplicitReferenceDescriptions(getResource(),referenceDescriptions::add);
  }
  return referenceDescriptions.build();
}
项目:xtext-core    文件RequestManagerTest.java   
@Test(timeout = 1000)
public void testRunWriteAfterRead() {
  final Function1<CancelIndicator,Integer> _function = (CancelIndicator it) -> {
    return Integer.valueOf(this.sharedState.incrementAndGet());
  };
  final CompletableFuture<Integer> previsousRead = this.requestManager.<Integer>runRead(_function);
  final Function0<Object> _function_1 = () -> {
    return null;
  };
  final Function2<CancelIndicator,Object,Integer> _function_2 = (CancelIndicator $0,Object $1) -> {
    int _xblockexpression = (int) 0;
    {
      while (((this.sharedState.get() == 0) && (!previsousRead.isCancelled()))) {
      }
      _xblockexpression = this.sharedState.incrementAndGet();
    }
    return Integer.valueOf(_xblockexpression);
  };
  this.requestManager.<Object,Integer>runWrite(_function_1,_function_2).join();
  Assert.assertEquals(2,this.sharedState.get());
}
项目:xtext-extras    文件XbaseInterpreter.java   
/**
 * @param context unused in this context but required for dispatching
 * @param indicator unused in this context but required for dispatching
 */
@SuppressWarnings("unchecked")
protected Object _doEvaluate(xnumberLiteral literal,IEvaluationContext context,CancelIndicator indicator) {
    IResolvedTypes resolvedTypes = typeResolver.resolveTypes(literal);
    LightweightTypeReference expectedType = resolvedTypes.getExpectedType(literal);
    Class<? extends Number> type = numberLiterals.getJavaType(literal);
    if (expectedType != null && expectedType.isSubtypeOf(Number.class)) {
        try {
            Class<?> expectedClasstype = getJavaType(expectedType.toJavaCompliantTypeReference().getType());
            if (expectedClasstype.isPrimitive()) {
                expectedClasstype = ReflectionUtil.getobjectType(expectedClasstype);
            }
            if (Number.class != expectedClasstype && Number.class.isAssignableFrom(expectedClasstype)) {
                type = (Class<? extends Number>) expectedClasstype;
            }
        } catch (ClassNotFoundException e) {
        }
    }
    return numberLiterals.numberValue(literal,type);
}
项目:xtext-core    文件ExecutableCommandRegistry.java   
public Object executeCommand(final ExecuteCommandParams params,final ILanguageServerAccess access,final CancelIndicator cancelIndicator) {
  Object result = null;
  Collection<IExecutableCommandService> _get = this.registeredCommands.get(params.getCommand());
  for (final IExecutableCommandService service : _get) {
    {
      final Object localResult = service.execute(params,access,cancelIndicator);
      if ((localResult != null)) {
        if ((result != null)) {
          StringConcatenation _builder = new StringConcatenation();
          _builder.append("Multiple commands \'");
          String _command = params.getCommand();
          _builder.append(_command);
          _builder.append("\' have been registered. All are executed but only one result will be send back.");
          ExecutableCommandRegistry.LOG.error(_builder);
        } else {
          result = localResult;
        }
      }
    }
  }
  return result;
}
项目:xtext-extras    文件XbaseInterpreter.java   
protected Object _doEvaluate(XConstructorCall constructorCall,CancelIndicator indicator) {
    JvmConstructor jvmConstructor = constructorCall.getConstructor();
    List<Object> arguments = evaluateArgumentExpressions(jvmConstructor,constructorCall.getArguments(),context,indicator);
    Constructor<?> constructor = javaReflectAccess.getConstructor(jvmConstructor);
    try {
        if (constructor == null)
            throw new NoSuchMethodException("Could not find constructor " + jvmConstructor.getIdentifier());
        constructor.setAccessible(true);
        Object result = constructor.newInstance(arguments.toArray(new Object[arguments.size()]));
        return result;
    } catch (InvocationTargetException targetException) {
        throw new EvaluationException(targetException.getTargetException());
    } catch (Exception e) {
        throw new IllegalStateException("Could not invoke constructor: " + jvmConstructor.getIdentifier(),e);
    }
}
项目:xtext-core    文件LanguageServerImpl.java   
@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,Hover> _function_1 = (Document document,XtextResource resource) -> {
      return hoverService.hover(document,cancelIndicator);
    };
    return this.workspaceManager.<Hover>doRead(uri,_function_1);
  };
  return this.requestManager.<Hover>runRead(_function);
}
项目:xtext-core    文件IncrementalBuilder.java   
public IncrementalBuilder.Result build(final buildrequest request,final Function1<? super URI,? extends IResourceServiceProvider> languages,final IResourceClusteringPolicy clusteringPolicy) {
  try {
    final XtextResourceSet resourceSet = request.getResourceSet();
    ResourceDescriptionsData _copy = request.getState().getResourceDescriptions().copy();
    Source2GeneratedMapping _copy_1 = request.getState().getFileMappings().copy();
    final IndexState oldState = new IndexState(_copy,_copy_1);
    CancelIndicator _cancelIndicator = request.getCancelIndicator();
    final BuildContext context = new BuildContext(languages,resourceSet,oldState,clusteringPolicy,_cancelIndicator);
    final IncrementalBuilder.InternalStatefulIncrementalBuilder builder = this.provider.get();
    builder.context = context;
    builder.request = request;
    try {
      return builder.launch();
    } catch (final Throwable _t) {
      if (_t instanceof Throwable) {
        final Throwable t = (Throwable)_t;
        this._operationCanceledManager.propagateIfCancelException(t);
        throw t;
      } else {
        throw Exceptions.sneakyThrow(_t);
      }
    }
  } catch (Throwable _e) {
    throw Exceptions.sneakyThrow(_e);
  }
}
项目:xtext-extras    文件XbaseInterpreter.java   
protected Object _assignValueto(JvmField jvmField,XAbstractFeatureCall assignment,Object value,CancelIndicator indicator) {
    Object receiver = getReceiver(assignment,indicator);
    Field field = javaReflectAccess.getField(jvmField);
    try {
        if (field == null) {
            throw new NoSuchFieldException("Could not find field " + jvmField.getIdentifier());
        }
        if (!Modifier.isstatic(field.getModifiers()) && receiver == null)
            throw new EvaluationException(new NullPointerException("Cannot assign value to field: "
                    + jvmField.getIdentifier() + " on null instance"));
        JvmTypeReference type = jvmField.getType();
        Object coerced = coerceArgumentType(value,type);
        field.setAccessible(true);
        field.set(receiver,coerced);
        return value;
    } catch (Exception e) {
        throw new IllegalStateException("Could not access field: " + jvmField.getIdentifier()
                + " on instance: " + receiver,e);
    }
}
项目:xtext-core    文件LanguageServerImpl.java   
@Override
public CompletableFuture<List<? extends Command>> codeAction(final CodeActionParams params) {
  final Function1<CancelIndicator,List<? extends Command>> _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.<Command>emptyList();
    }
    final Function2<Document,List<? extends Command>> _function_1 = (Document doc,XtextResource resource) -> {
      return service.getCodeActions(doc,cancelIndicator);
    };
    return this.workspaceManager.<List<? extends Command>>doRead(uri,_function_1);
  };
  return this.requestManager.<List<? extends Command>>runRead(_function);
}
项目:xtext-extras    文件XbaseHighlightingCalculator.java   
@Override
public void provideHighlightingFor(XtextResource resource,IHighlightedPositionAcceptor acceptor,CancelIndicator cancelIndicator) {
    if (resource == null)
        return;
    IParseResult parseResult = resource.getParseResult();
    if (parseResult == null || parseResult.getRootASTElement() == null)
        return;
    if (highlightedIdentifiers == null) {
        highlightedIdentifiers = initializeHighlightedIdentifiers();
        idLengthsToHighlight = new BitSet();
        for (String s : highlightedIdentifiers.keySet()) {
            idLengthsToHighlight.set(s.length());
        }
    }
    //Todo remove this check when the typesystem works without a java project
    if (resource.isValidationdisabled()) {
        highlightSpecialIdentifiers(acceptor,parseResult.getRootNode());
        return;
    }
    doProvideHighlightingFor(resource,acceptor,cancelIndicator);
}
项目:xtext-core    文件WorkspaceSymbolService.java   
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;
}
项目:xtext-core    文件XtextValidationTest.java   
@Test public void testRuleCalledsuper() throws Exception {
    XtextResource resource = getResourceFromString(
            "grammar com.acme.Bar with org.eclipse.xtext.common.Terminals\n" +
            "generate metamodel 'myURI'\n" +
            "Model: super=super;\n" + 
            "super: name=ID;");

    IResourceValidator validator = get(IResourceValidator.class);
    List<Issue> issues = validator.validate(resource,CheckMode.FAST_ONLY,CancelIndicator.NullImpl);
    assertEquals(issues.toString(),1,issues.size());
    assertEquals("discouraged rule name 'super'",issues.get(0).getMessage());
    Grammar grammar = (Grammar) resource.getContents().get(0);
    AbstractRule model = grammar.getRules().get(0);
    Assignment assignment = (Assignment) model.getAlternatives();
    RuleCall ruleCall = (RuleCall) assignment.getTerminal();
    assertSame(grammar.getRules().get(1),ruleCall.getRule());
}
项目:xtext-extras    文件InterpreterTest.java   
@Test public void testCancelIndication() throws Exception {
    XExpression expression = expression("'string'",true);
    assertNull(interpreter.evaluate(expression,new NullEvaluationContext(),new CancelIndicator() {
        @Override
        public boolean isCanceled() {
            return true;
        }
    }));
    assertEquals("string",interpreter.evaluate(expression,null).getResult());
    assertEquals("string",new CancelIndicator() {
        @Override
        public boolean isCanceled() {
            return false;
        }
    }).getResult());
}
项目:xtext-extras    文件InterpreterTest.java   
@Test public void testInfiniteLoopInJava() throws Exception {
    XExpression expression = expression(
            "try " +
            "  new testdata.ClosureClient().infiniteApply(|{null})" +
            "catch(Exception e)" +
            "  'literal' ",new DefaultEvaluationContext(),new CancelIndicator() {
        private int i = 0;
        @Override
        public boolean isCanceled() {
            if (i == 500)
                return true;
            i++;
            return false;
        }
    }));
}
项目:xtext-extras    文件TypeResolutionCancelTest.java   
@Test
public void testCancelTypeResolution() {
  try {
    final XExpression exp = this.expression("true");
    try {
      final CancelIndicator _function = () -> {
        return true;
      };
      this.resolver.resolveTypes(exp,_function);
      Assert.fail("Type resolution should have been canceled");
    } catch (final Throwable _t) {
      if (_t instanceof OperationCanceledError) {
      } else {
        throw Exceptions.sneakyThrow(_t);
      }
    }
  } catch (Throwable _e) {
    throw Exceptions.sneakyThrow(_e);
  }
}
项目:xtext-core    文件AbstractLanguageServerTest.java   
protected Map<String,List<Diagnostic>> getDiagnostics() {
  try {
    final Function1<CancelIndicator,HashMap<String,List<Diagnostic>>> _function = (CancelIndicator it) -> {
      final HashMap<String,List<Diagnostic>> result = CollectionLiterals.<String,List<Diagnostic>>newHashMap();
      final Function1<Pair<String,Object>,Object> _function_1 = (Pair<String,Object> it_1) -> {
        return it_1.getValue();
      };
      Iterable<PublishDiagnosticsParams> _filter = Iterables.<PublishDiagnosticsParams>filter(ListExtensions.<Pair<String,Object>map(this.notifications,_function_1),PublishDiagnosticsParams.class);
      for (final PublishDiagnosticsParams diagnostic : _filter) {
        result.put(diagnostic.getUri(),diagnostic.getDiagnostics());
      }
      return result;
    };
    return this.languageServer.getRequestManager().<HashMap<String,List<Diagnostic>>>runRead(_function).get();
  } catch (Throwable _e) {
    throw Exceptions.sneakyThrow(_e);
  }
}
项目:xtext-core    文件DocumentSymbolService.java   
public List<? extends Location> getReferences(final XtextResource resource,final int offset,final CancelIndicator cancelIndicator) {
  final EObject element = this._eObjectAtOffsetHelper.resolveElementAt(resource,offset);
  if ((element == null)) {
    return CollectionLiterals.<Location>emptyList();
  }
  final ArrayList<Location> locations = CollectionLiterals.<Location>newArrayList();
  final TargetURIs targetURIs = this.collectTargetURIs(element);
  final IAcceptor<IReferenceDescription> _function = (IReferenceDescription reference) -> {
    final Procedure1<EObject> _function_1 = (EObject obj) -> {
      final Location location = this._documentExtensions.newLocation(obj,reference.getEReference(),reference.getIndexInList());
      if ((location != null)) {
        locations.add(location);
      }
    };
    this.doRead(resourceAccess,reference.getSourceEObjectUri(),_function_1);
  };
  ReferenceAcceptor _referenceAcceptor = new ReferenceAcceptor(this.resourceServiceProviderRegistry,_function);
  CancelIndicatorProgressMonitor _cancelIndicatorProgressMonitor = new CancelIndicatorProgressMonitor(cancelIndicator);
  this.referenceFinder.findAllReferences(targetURIs,indexData,_referenceAcceptor,_cancelIndicatorProgressMonitor);
  return locations;
}
项目:n4js    文件AbstractBuilderParticipantTest.java   
/**
 * Returns validation errors in given Xtext editor.
 */
protected List<Issue> getEditorValidationErrors(XtextEditor editor) {
    return editor.getDocument().readOnly(new IUnitOfWork<List<Issue>,XtextResource>() {
        @Override
        public List<Issue> exec(XtextResource state) throws Exception {
            final IResourceValidator validator = state.getResourceServiceProvider().getResourceValidator();
            return validator.validate(state,CancelIndicator.NullImpl);
        }
    });
}
项目:n4js    文件XpectN4JSES5transpilerHelper.java   
/**
 * Compiles provided Script. Can replace backslashes with single quote (for windows command line issues)
 *
 * @param depRoot
 *            script to transpile
 * @param options
 *            the {@link GeneratorOption}s to use during compilation.
 * @param replaceQuotes
 *            should replace quotes (only for windows)
 * @return string representation of compilation result
 */
public String compile(Script depRoot,GeneratorOption[] options,boolean replaceQuotes) {
    final Resource resource = depRoot.eResource();
    EcoreUtil2.resolveLazyCrossReferences(resource,CancelIndicator.NullImpl);
    final AbstractSubGenerator generator = getGeneratorForResource(resource);
    String compileResultStr = generator.getCompileResultAsText(depRoot,options);
    if (replaceQuotes) {
        // Windows Node.js has problems with " as it interprets it as ending of script to execute
        compileResultStr = compileResultStr.replace("\"","'");
    }
    return compileResultStr;
}
项目:n4js    文件N4HeadlessCompiler.java   
/**
 * Validates all non-external Xtext resources of the given project. Prints issues and adds them to the given issue
 * acceptor.
 *
 * @param markedProject
 *            the project to validate
 * @param recorder
 *            the progress recorder
 * @param issueAcceptor
 *            the issue acceptor
 * @throws N4JSCompileErrorException
 *             if an error occurs during validation
 */
private void validateProject(MarkedProject markedProject,N4ProgressstateRecorder recorder,IssueAcceptor issueAcceptor) throws N4JSCompileErrorException {

    if (logger.isverbose())
        logger.info(" Validating project " + markedProject);
    IssueCollector issueCollector = new IssueCollector();
    IssueFilter issueFilter = new IssueFilter(issueCollector,issue -> issue.getSeverity() == Severity.ERROR);
    issueAcceptor = new IssueAcceptorTee(issueAcceptor,issueFilter);

    // validation Todo see IDE-1426 redesign validation calls with generators
    for (Resource resource : markedProject.resources) {
        if (resource instanceof XtextResource && // is Xtext resource
                (!n4jscore.isNovalidate(resource.getURI())) && // is validating
                (!markedProject.externalResources.contains(resource)) // not in external folder
        ) {
            if (logger.isCreateDebugOutput())
                logger.debug("   Validating resource " + resource.getURI());
            XtextResource xtextResource = (XtextResource) resource;
            IResourceValidator validator = xtextResource.getResourceServiceProvider().getResourceValidator();
            List<Issue> issues = validator.validate(xtextResource,CancelIndicator.NullImpl);

            if (!issues.isEmpty()) {
                recorder.markResourceIssues(resource,issues);
                issueAcceptor.acceptAll(issues);
                issues.stream().forEach(logger::issue);
            }
        }
    }

    // Projects should not compile if there are severe errors:
    if (!isKeepOnCompiling()) {
        failOnErrors(issueCollector.getCollectedissues(),markedProject.project.getProjectId());
    }
}
项目:n4js    文件ManifestAwareResourceValidator.java   
@Override
public List<Issue> validate(Resource resource,CancelIndicator cancelIndicator) {
    final Measurement measurment = collector.getMeasurement(resource.getURI().toString());
    operationCanceledManager.checkCanceled(cancelIndicator);
    if (!isInSourceFolder(resource)) {
        return Collections.emptyList();
    }
    List<Issue> res = super.validate(resource,cancelIndicator);
    measurment.end();
    return res;
}
项目:n4js    文件N4JSPostProcessor.java   
private void postProcessN4JSResource(N4JSResource resource,CancelIndicator cancelIndicator) {
    // step 1: process the AST (resolve all proxies in AST,infer type of all typable AST nodes,etc.)
    astProcessor.processAST(resource,cancelIndicator);
    // step 2: expose internal types visible from outside
    // (i.e. if they are referenced from a type that is visible form the outside)
    exposeReferencedInternalTypes(resource);
    // step 3: resolve remaining proxies in TModule
    // (the TModule was created programmatically,so it usually does not contain proxies; however,in case of
    // explicitly declared types,the types builder copies type references from the AST to the corresponding
    // TModule element *without* resolving proxies,so the TModule might contain lazy-cross-ref proxies; most of
    // these should have been resolved during AST traversal and exposing internal types,but some can be left)
    EcoreUtil.resolveAll(resource.getModule());
}
项目:n4js    文件IssuesProvider.java   
@SuppressWarnings("javadoc")
public IssuesProvider(IResourceValidator resourceValidator,Resource res,OperationCanceledManager operationCanceledManager,CancelIndicator ci) {
    this.rv = resourceValidator;
    this.r = res;
    this.operationCanceledManager = operationCanceledManager;
    this.ci = ci;
}
项目:n4js    文件InferenceContext.java   
/**
 * Creates a new,empty inference context for the given inference variables. The cancellation manager and indicator
 * may be <code>null</code>.
 *
 * @param G
 *            a rule environment used for subtype checking,etc. during constraint resolution. This rule environment
 *            will not be changed by the inference context AND it is expected to <b>not</b> be changed by anyone
 *            else during the life-time of the inference context.
 * @param inferenceVariables
 *            the Meta variables to be inferred.
 */
public InferenceContext(N4JSTypeSystem ts,TypeSystemHelper tsh,RuleEnvironment G,InferenceVariable... inferenceVariables) {
    Objects.requireNonNull(ts);
    Objects.requireNonNull(tsh);
    Objects.requireNonNull(G);
    this.ts = ts;
    this.tsh = tsh;
    this.operationCanceledManager = operationCanceledManager;
    this.cancelIndicator = cancelIndicator;
    this.G = G;
    addInferenceVariables(false,inferenceVariables);
    this.reducer = new Reducer(this,G,ts,tsh);
    this.currentBounds = new BoundSet(this,ts);
}
项目:n4js    文件N4JSResource.java   
@Override
public void performPostProcessing(CancelIndicator cancelIndicator) {
    // make sure post-processing is never performed in pre-linking phase
    // FIXME should never happen -> better throw an exception here if isPreLinkingPhase===true?
    final TModule module = getModule();
    final boolean isPreLinkingPhase = module != null && module.isPreLinkingPhase();
    if (!isPreLinkingPhase) {
        super.performPostProcessing(cancelIndicator);
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。