Wrap long property initializers (#276)

diff --git a/src/main/java/com/squareup/kotlinpoet/PropertySpec.kt b/src/main/java/com/squareup/kotlinpoet/PropertySpec.kt
index d792c50..4b36788 100644
--- a/src/main/java/com/squareup/kotlinpoet/PropertySpec.kt
+++ b/src/main/java/com/squareup/kotlinpoet/PropertySpec.kt
@@ -58,7 +58,7 @@
       if (delegated) {
         codeWriter.emit(" by ")
       } else {
-        codeWriter.emit(" = ")
+        codeWriter.emitCode(" =%W")
       }
       codeWriter.emitCode("%[%L%]", initializer)
     }
diff --git a/src/test/java/com/squareup/kotlinpoet/KotlinPoetTest.kt b/src/test/java/com/squareup/kotlinpoet/KotlinPoetTest.kt
index 755066c..596de82 100644
--- a/src/test/java/com/squareup/kotlinpoet/KotlinPoetTest.kt
+++ b/src/test/java/com/squareup/kotlinpoet/KotlinPoetTest.kt
@@ -455,6 +455,21 @@
         |""".trimMargin())
   }
 
+  @Test fun propertyWithLongInitializerWrapping() {
+    val source = FileSpec.builder(tacosPackage, "Taco")
+        .addProperty(PropertySpec.builder("foo", ClassName(tacosPackage, "Foo").asNullable())
+            .addModifiers(KModifier.PRIVATE)
+            .initializer("DefaultFooRegistry.getInstance().getDefaultFooInstanceForPropertiesFiles(file)")
+            .build())
+        .build()
+    assertThat(source.toString()).isEqualTo("""
+      |package com.squareup.tacos
+      |
+      |private val foo: Foo? =
+      |    DefaultFooRegistry.getInstance().getDefaultFooInstanceForPropertiesFiles(file)
+      |""".trimMargin())
+  }
+
   @Test fun stackedPropertyModifiers() {
     val source = FileSpec.builder(tacosPackage, "Taco")
         .addType(TypeSpec.classBuilder("A")