diff --git a/org.eclipse.handly/src/org/eclipse/handly/model/Elements.java b/org.eclipse.handly/src/org/eclipse/handly/model/Elements.java
index 2d6b618..f6f6c43 100644
--- a/org.eclipse.handly/src/org/eclipse/handly/model/Elements.java
+++ b/org.eclipse.handly/src/org/eclipse/handly/model/Elements.java
@@ -571,6 +571,7 @@
     /**
      * Indicates whether reconciling has to be performed even if
      * the working copy is already consistent with its buffer.
+     * Default value: <code>false</code>.
      * @see #reconcile(ISourceFile, IContext, IProgressMonitor)
      */
     public static final Property<Boolean> FORCE_RECONCILING = Property.get(
@@ -650,7 +651,7 @@
 
     /**
      * Indicates whether a new buffer should be created if none already exists
-     * for the source file.
+     * for the source file. Default value: <code>true</code>.
      * @see #getBuffer(ISourceFile, IContext, IProgressMonitor)
      */
     public static final Property<Boolean> CREATE_BUFFER = Property.get(
diff --git a/org.eclipse.handly/src/org/eclipse/handly/model/impl/Element.java b/org.eclipse.handly/src/org/eclipse/handly/model/impl/Element.java
index 6fc1222..7bcd1f4 100644
--- a/org.eclipse.handly/src/org/eclipse/handly/model/impl/Element.java
+++ b/org.eclipse.handly/src/org/eclipse/handly/model/impl/Element.java
@@ -416,7 +416,7 @@
 
     /**
      * Indicates whether to forcibly reopen this element if it is already open
-     * (i.e. already present in the body cache).
+     * (i.e. already present in the body cache). Default value: <code>false</code>.
      */
     static final Property<Boolean> FORCE_OPEN = Property.get(
         Element.class.getName() + ".forceOpen", Boolean.class).withDefault( //$NON-NLS-1$
diff --git a/org.eclipse.handly/src/org/eclipse/handly/model/impl/SourceFile.java b/org.eclipse.handly/src/org/eclipse/handly/model/impl/SourceFile.java
index ca76c29..b6b9bfe 100644
--- a/org.eclipse.handly/src/org/eclipse/handly/model/impl/SourceFile.java
+++ b/org.eclipse.handly/src/org/eclipse/handly/model/impl/SourceFile.java
@@ -670,7 +670,7 @@
 
     /**
      * Indicates whether the structure should be rebuilt when reconciling
-     * is forced.
+     * is forced. Default value: <code>false</code>.
      * @see ReconcileOperation#reconcile(IContext, IProgressMonitor)
      */
     protected static final Property<Boolean> REBUILD_STRUCTURE_IF_FORCED =
@@ -679,6 +679,7 @@
     /**
      * Indicates whether reconciling was forced, i.e. the working copy buffer
      * has not been modified since the last time it was reconciled.
+     * Default value: <code>false</code>.
      * @see ReconcileOperation#reconcile(IContext, IProgressMonitor)
      */
     static final Property<Boolean> RECONCILING_FORCED = Property.get(
diff --git a/org.eclipse.handly/src/org/eclipse/handly/util/ToStringOptions.java b/org.eclipse.handly/src/org/eclipse/handly/util/ToStringOptions.java
index 8541465..444383c 100644
--- a/org.eclipse.handly/src/org/eclipse/handly/util/ToStringOptions.java
+++ b/org.eclipse.handly/src/org/eclipse/handly/util/ToStringOptions.java
@@ -16,7 +16,7 @@
 public class ToStringOptions
 {
     /**
-     * Indent policy property.
+     * Indent policy property. Default value: a default indent policy.
      *
      * @see IndentPolicy
      */
@@ -25,14 +25,14 @@
         IndentPolicy.class).withDefault(new IndentPolicy());
 
     /**
-     * Indent level property. Values are zero-based.
+     * Indent level property. Values are zero-based. Default value: <code>0</code>.
      */
     public static final Property<Integer> INDENT_LEVEL = Property.get(
         ToStringOptions.class.getName() + ".indentLevel", //$NON-NLS-1$
         Integer.class).withDefault(0);
 
     /**
-     * Format style property.
+     * Format style property. Default value: {@link FormatStyle#FULL}.
      *
      * @see FormatStyle
      */
