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 }
/** * 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; }
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 }
/** * @see #exceptionHandler */ public IAcceptor<Exception> getExceptionHandler() { if (exceptionHandler == null) return ExceptionAcceptor.LOGGING; return exceptionHandler; }