diff --git a/config/src/main/java/com/typesafe/config/impl/ConfigNodeObject.java b/config/src/main/java/com/typesafe/config/impl/ConfigNodeObject.java index b7a337bc..6f520d0c 100644 --- a/config/src/main/java/com/typesafe/config/impl/ConfigNodeObject.java +++ b/config/src/main/java/com/typesafe/config/impl/ConfigNodeObject.java @@ -131,7 +131,8 @@ final class ConfigNodeObject extends ConfigNodeComplexValue { } else { if (children.get(i) instanceof ConfigNodeSingleToken && Tokens.isIgnoredWhitespace(((ConfigNodeSingleToken) children.get(i)).token()) && - i + 1 < children.size() && children.get(i+1) instanceof ConfigNodeField) { + i + 1 < children.size() && (children.get(i+1) instanceof ConfigNodeField || + children.get(i+1) instanceof ConfigNodeInclude)) { // Return the indentation of the first setting on its own line indentation.add(children.get(i)); return indentation; diff --git a/config/src/test/scala/com/typesafe/config/impl/ConfigDocumentTest.scala b/config/src/test/scala/com/typesafe/config/impl/ConfigDocumentTest.scala index 6460a455..e34582aa 100644 --- a/config/src/test/scala/com/typesafe/config/impl/ConfigDocumentTest.scala +++ b/config/src/test/scala/com/typesafe/config/impl/ConfigDocumentTest.scala @@ -432,7 +432,15 @@ class ConfigDocumentTest extends TestUtils { val configDocument = ConfigDocumentFactory.parseString(origText) assertEquals("a {\n b {\n c : 22\n d : {\n include \"foo\"\n e:f\n }\n }\n}", - configDocument.setValue("a.b.d", "{\n include \"foo\"\n e:f\n}").render()) + configDocument.setValue("a.b.d", "{\n include \"foo\"\n e:f\n}").render()) + } + + @Test + def configDocumentIndentationBadedOnIncludeNode { + val origText = "a : b\n include \"foo\"\n" + val configDocument = ConfigDocumentFactory.parseString(origText) + + assertEquals("a : b\n include \"foo\"\n c : d\n", configDocument.setValue("c", "d").render()) } }