diff --git a/src/utils/make_id_name.cpp b/src/utils/make_id_name.cpp
index 0f78ab6..cc53a24 100644
--- a/src/utils/make_id_name.cpp
+++ b/src/utils/make_id_name.cpp
@@ -49,16 +49,19 @@
     {
         strippedId = defaultName;
     }
-    strippedId.erase(std::remove_if(strippedId.begin(), strippedId.end(),
-                                    [](char c) {
-        return c == '/' || utils::constants::allowedCharactersInPath.find(c) ==
-                               std::string_view::npos;
-    }),
-                     strippedId.end());
+    strippedId.erase(
+        std::remove_if(
+            strippedId.begin(), strippedId.end(),
+            [](char c) {
+                return c == '/' ||
+                       utils::constants::allowedCharactersInPath.find(c) ==
+                           std::string_view::npos;
+            }),
+        strippedId.end());
 
     size_t idx = 0;
-    std::string tmpId = prefixes +
-                        strippedId.substr(0, constants::maxIdNameLength);
+    std::string tmpId =
+        prefixes + strippedId.substr(0, constants::maxIdNameLength);
 
     while (std::find(conflictIds.begin(), conflictIds.end(), tmpId) !=
            conflictIds.end())
@@ -83,10 +86,9 @@
 
 } // namespace details
 
-std::pair<std::string, std::string>
-    makeIdName(std::string_view id, std::string_view name,
-               std::string_view defaultName,
-               const std::vector<std::string>& conflictIds)
+std::pair<std::string, std::string> makeIdName(
+    std::string_view id, std::string_view name, std::string_view defaultName,
+    const std::vector<std::string>& conflictIds)
 {
     if (name.length() > constants::maxIdNameLength)
     {
