diff --git a/.clang-format b/.clang-format
index d43e884..28e3328 100644
--- a/.clang-format
+++ b/.clang-format
@@ -87,7 +87,7 @@
 IndentWrappedFunctionNames: true
 InsertNewlineAtEOF: true
 KeepEmptyLinesAtTheStartOfBlocks: false
-LambdaBodyIndentation: OuterScope
+LambdaBodyIndentation: Signature
 LineEnding: LF
 MacroBlockBegin: ''
 MacroBlockEnd:   ''
@@ -98,13 +98,14 @@
 ObjCSpaceBeforeProtocolList: true
 PackConstructorInitializers: BinPack
 PenaltyBreakAssignment: 25
-PenaltyBreakBeforeFirstCallParameter: 19
+PenaltyBreakBeforeFirstCallParameter: 50
 PenaltyBreakComment: 300
 PenaltyBreakFirstLessLess: 120
 PenaltyBreakString: 1000
+PenaltyBreakTemplateDeclaration: 10
 PenaltyExcessCharacter: 1000000
 PenaltyReturnTypeOnItsOwnLine: 60
-PenaltyIndentedWhitespace: 0
+PenaltyIndentedWhitespace: 1
 PointerAlignment: Left
 QualifierAlignment: Left
 ReferenceAlignment: Left
diff --git a/src/buffer_service.cpp b/src/buffer_service.cpp
index e17f7f0..7ee2def 100644
--- a/src/buffer_service.cpp
+++ b/src/buffer_service.cpp
@@ -34,9 +34,8 @@
 BufferService::BufferService(const Config& config, DbusLoop& dbusLoop,
                              HostConsole& hostConsole, LogBuffer& logBuffer,
                              FileStorage& fileStorage) :
-    config(config),
-    dbusLoop(&dbusLoop), hostConsole(&hostConsole), logBuffer(&logBuffer),
-    fileStorage(&fileStorage)
+    config(config), dbusLoop(&dbusLoop), hostConsole(&hostConsole),
+    logBuffer(&logBuffer), fileStorage(&fileStorage)
 {}
 
 void BufferService::run()
@@ -68,14 +67,14 @@
         log<level::WARNING>("Automatic flush disabled");
     }
 
-    log<level::DEBUG>("Initialization complete",
-                      entry("SocketId=%s", config.socketId),
-                      entry("BufMaxSize=%lu", config.bufMaxSize),
-                      entry("BufMaxTime=%lu", config.bufMaxTime),
-                      entry("BufFlushFull=%s", config.bufFlushFull ? "y" : "n"),
-                      entry("HostState=%s", config.hostState),
-                      entry("OutDir=%s", config.outDir),
-                      entry("MaxFiles=%lu", config.maxFiles));
+    log<level::DEBUG>(
+        "Initialization complete", entry("SocketId=%s", config.socketId),
+        entry("BufMaxSize=%lu", config.bufMaxSize),
+        entry("BufMaxTime=%lu", config.bufMaxTime),
+        entry("BufFlushFull=%s", config.bufFlushFull ? "y" : "n"),
+        entry("HostState=%s", config.hostState),
+        entry("OutDir=%s", config.outDir),
+        entry("MaxFiles=%lu", config.maxFiles));
 
     // Run D-Bus event loop
     const int rc = dbusLoop->run();
diff --git a/src/file_storage.cpp b/src/file_storage.cpp
index ace7a1b..cf35ece 100644
--- a/src/file_storage.cpp
+++ b/src/file_storage.cpp
@@ -14,8 +14,7 @@
 
 FileStorage::FileStorage(const std::string& path, const std::string& prefix,
                          size_t maxFiles) :
-    outDir(path),
-    filePrefix(prefix), filesLimit(maxFiles)
+    outDir(path), filePrefix(prefix), filesLimit(maxFiles)
 {
     // Check path
     if (!outDir.is_absolute())
@@ -110,9 +109,9 @@
         }
         const std::string fileName = file.path().filename();
 
-        const size_t minFileNameLen = filePrefix.length() +
-                                      15 + // time stamp YYYYMMDD_HHMMSS
-                                      fileExt.length();
+        const size_t minFileNameLen =
+            filePrefix.length() + 15 + // time stamp YYYYMMDD_HHMMSS
+            fileExt.length();
         if (fileName.length() < minFileNameLen)
         {
             continue;
diff --git a/src/stream_service.cpp b/src/stream_service.cpp
index b8d84e9..c3a6902 100644
--- a/src/stream_service.cpp
+++ b/src/stream_service.cpp
@@ -15,9 +15,8 @@
 
 StreamService::StreamService(const char* streamDestination, DbusLoop& dbusLoop,
                              HostConsole& hostConsole) :
-    destinationPath(streamDestination),
-    dbusLoop(&dbusLoop), hostConsole(&hostConsole), outputSocketFd(-1),
-    destination()
+    destinationPath(streamDestination), dbusLoop(&dbusLoop),
+    hostConsole(&hostConsole), outputSocketFd(-1), destination()
 {}
 
 StreamService::~StreamService()
diff --git a/test/file_storage_test.cpp b/test/file_storage_test.cpp
index 9682d50..ba74bd4 100644
--- a/test/file_storage_test.cpp
+++ b/test/file_storage_test.cpp
@@ -26,8 +26,8 @@
         fs::remove_all(logPath);
     }
 
-    const fs::path logPath = fs::temp_directory_path() /
-                             "file_storage_test_out";
+    const fs::path logPath =
+        fs::temp_directory_path() / "file_storage_test_out";
 };
 
 TEST_F(FileStorageTest, InvalidPath)
diff --git a/test/host_console_test.cpp b/test/host_console_test.cpp
index 6a16148..e3e23a4 100644
--- a/test/host_console_test.cpp
+++ b/test/host_console_test.cpp
@@ -37,9 +37,9 @@
         sa.sun_family = AF_UNIX;
         memcpy(&sa.sun_path, path.c_str(), path.length());
         const socklen_t len = sizeof(sa) - sizeof(sa.sun_path) + path.length();
-        ASSERT_NE(
-            bind(serverSocket, reinterpret_cast<const sockaddr*>(&sa), len),
-            -1);
+        ASSERT_NE(bind(serverSocket, reinterpret_cast<const sockaddr*>(&sa),
+                       len),
+                  -1);
         ASSERT_NE(listen(serverSocket, 1), -1);
     }
 
diff --git a/test/stream_service_test.cpp b/test/stream_service_test.cpp
index 17ec64f..a2bed06 100644
--- a/test/stream_service_test.cpp
+++ b/test/stream_service_test.cpp
@@ -68,11 +68,11 @@
         sa.sun_family = AF_UNIX;
         memcpy(sa.sun_path, socketPath, sizeof(socketPath) - 1);
         sa.sun_path[sizeof(socketPath) - 1] = '\0';
-        const socklen_t len = sizeof(sa) - sizeof(sa.sun_path) +
-                              sizeof(socketPath) - 1;
-        ASSERT_NE(
-            bind(serverSocket, reinterpret_cast<const sockaddr*>(&sa), len),
-            -1);
+        const socklen_t len =
+            sizeof(sa) - sizeof(sa.sun_path) + sizeof(socketPath) - 1;
+        ASSERT_NE(bind(serverSocket, reinterpret_cast<const sockaddr*>(&sa),
+                       len),
+                  -1);
     }
 
     // Set hostConsole firstly read specified data and then read nothing.
