Java 类org.eclipse.xtext.util.ExceptionAcceptor 实例源码

项目:xtext-extras    文件:FormatterTester.java   
public void assertFormatted(FormatterTestRequest req) {
    checkNotNull(req);
    checkNotNull(req.getToBeFormatted());

    FormatterRequest request = req.getRequest();
    checkArgument(request.getTextRegionAccess() == null);

    String document = req.getToBeFormatted().toString();
    XtextResource parsed = parse(document);
    if (req.isAllowSyntaxErrors()) {
        request.setExceptionHandler(ExceptionAcceptor.IGNORING);
    } else {
        assertNoSyntaxErrors(parsed);
        request.setExceptionHandler(ExceptionAcceptor.THROWING);
    }
    request.setTextRegionAccess(createRegionAccess(parsed, req));
    if (request.getPreferences() == null)
        request.setPreferences(new MapBasedPreferenceValues(Maps.<String, String> newLinkedHashMap()));
    List<ITextReplacement> replacements = createFormatter(req).format(request);
    assertReplacementsAreInRegion(replacements, request.getRegions(), document);
    if (!req.isAllowUnformattedWhitespace())
        assertAllWhitespaceIsFormatted(request.getTextRegionAccess(), replacements);
    String formatted = request.getTextRegionAccess().getRewriter().renderToString(replacements);

    Assert.assertEquals(req.getExpectationOrToBeFormatted().toString(), formatted);

    // TODO: assert formatting a second time only produces identity replacements
    // TODO: assert formatting with undefined whitespace only
}
项目:xtext-core    文件:FormatterRequest.java   
/**
 * Sets the {@link #textRegionAccess}. If the region has syntax errors and no explicit {@link ExceptionAcceptor} is
 * configured yet, the {@link ExceptionAcceptor#IGNORING ignoring acceptor} will be configured.
 */
public FormatterRequest setTextRegionAccess(ITextRegionAccess tokens) {
    if (tokens.hasSyntaxError() && this.exceptionHandler == null)
        this.exceptionHandler = ExceptionAcceptor.IGNORING;
    this.textRegionAccess = tokens;
    return this;
}
项目:xtext-core    文件:FormatterTestHelper.java   
public void assertFormatted(FormatterTestRequest req) {
    checkNotNull(req);
    checkNotNull(req.getToBeFormatted());

    FormatterRequest request = req.getRequest();
    checkArgument(request.getTextRegionAccess() == null);

    String document = req.getToBeFormatted().toString();
    XtextResource parsed = parse(document);
    if (req.isAllowSyntaxErrors()) {
        if (request.getExplicitExceptionHandler() == null) {
            request.setExceptionHandler(ExceptionAcceptor.IGNORING);
        }
    } else {
        assertNoSyntaxErrors(parsed);
        if (request.getExplicitExceptionHandler() == null) {
            request.setExceptionHandler(ExceptionAcceptor.THROWING);
        }
    }
    request.setTextRegionAccess(createRegionAccess(parsed, req));
    if (request.getPreferences() == null)
        request.setPreferences(new MapBasedPreferenceValues(Maps.<String, String> newLinkedHashMap()));
    List<ITextReplacement> replacements = createFormatter(req).format(request);
    assertReplacementsAreInRegion(replacements, request.getRegions(), document);
    if (!req.isAllowUnformattedWhitespace())
        assertAllWhitespaceIsFormatted(request.getTextRegionAccess(), replacements);
    String formatted = request.getTextRegionAccess().getRewriter().renderToString(replacements);

    Assert.assertEquals(req.getExpectationOrToBeFormatted().toString(), formatted);

    // TODO: assert formatting a second time only produces identity replacements
    // TODO: assert formatting with undefined whitespace only
}
项目:xtext-core    文件:FormatterRequest.java   
/**
 * @see #exceptionHandler
 */
public IAcceptor<Exception> getExceptionHandler() {
    if (exceptionHandler == null)
        return ExceptionAcceptor.LOGGING;
    return exceptionHandler;
}