diff --git a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/internal/FormattableDocument.java b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/internal/FormattableDocument.java index eecd84804..289986241 100644 --- a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/internal/FormattableDocument.java +++ b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/internal/FormattableDocument.java @@ -189,7 +189,8 @@ public abstract class FormattableDocument implements IFormattableDocument { @Override public void formatConditionally(EObject owner, ISubFormatter... formatters) { IEObjectRegion region = getTextRegionAccess().regionForEObject(owner); - formatConditionally(region.getOffset(), region.getLength(), formatters); + if (region != null) + formatConditionally(region.getOffset(), region.getLength(), formatters); } @Override @@ -325,6 +326,8 @@ public abstract class FormattableDocument implements IFormattableDocument { public T surround(T owner, Procedure1 beforeAndAfter) { if (owner != null && !owner.eIsProxy()) { IEObjectRegion region = getTextRegionAccess().regionForEObject(owner); + if (region == null) + return owner; IHiddenRegion previous = region.getPreviousHiddenRegion(); IHiddenRegion next = region.getNextHiddenRegion(); set(previous, next, beforeAndAfter);