diff --git a/packages/flutter_tools/lib/src/devfs.dart b/packages/flutter_tools/lib/src/devfs.dart
index 75ebec8..dece857 100644
--- a/packages/flutter_tools/lib/src/devfs.dart
+++ b/packages/flutter_tools/lib/src/devfs.dart
@@ -193,7 +193,9 @@
 
 /// String content to be copied to the device.
 class DevFSStringContent extends DevFSByteContent {
-  DevFSStringContent(String string) : _string = string, super(utf8.encode(string));
+  DevFSStringContent(String string)
+    : _string = string,
+      super(utf8.encode(string));
 
   String _string;
 
@@ -274,7 +276,7 @@
 
 class _DevFSHttpWriter {
   _DevFSHttpWriter(this.fsName, VMService serviceProtocol)
-      : httpAddress = serviceProtocol.httpAddress;
+    : httpAddress = serviceProtocol.httpAddress;
 
   final String fsName;
   final Uri httpAddress;
@@ -377,25 +379,25 @@
 
 class DevFS {
   /// Create a [DevFS] named [fsName] for the local files in [rootDirectory].
-  DevFS(VMService serviceProtocol,
-        this.fsName,
-        this.rootDirectory, {
-        String packagesFilePath
-      })
-    : _operations = ServiceProtocolDevFSOperations(serviceProtocol),
-      _httpWriter = _DevFSHttpWriter(fsName, serviceProtocol) {
+  DevFS(
+    VMService serviceProtocol,
+    this.fsName,
+    this.rootDirectory, {
+    String packagesFilePath
+  }) : _operations = ServiceProtocolDevFSOperations(serviceProtocol),
+       _httpWriter = _DevFSHttpWriter(fsName, serviceProtocol) {
     _packagesFilePath =
         packagesFilePath ?? fs.path.join(rootDirectory.path, kPackagesFileName);
   }
 
-  DevFS.operations(this._operations,
-                   this.fsName,
-                   this.rootDirectory, {
-                   String packagesFilePath,
-      })
-    : _httpWriter = null {
-    _packagesFilePath =
-        packagesFilePath ?? fs.path.join(rootDirectory.path, kPackagesFileName);
+  DevFS.operations(
+    this._operations,
+    this.fsName,
+    this.rootDirectory, {
+    String packagesFilePath,
+  }) : _httpWriter = null {
+       _packagesFilePath =
+           packagesFilePath ?? fs.path.join(rootDirectory.path, kPackagesFileName);
   }
 
   final DevFSOperations _operations;
