diff --git a/src/sensor.hpp b/src/sensor.hpp
index 434d81d..27bbd1a 100644
--- a/src/sensor.hpp
+++ b/src/sensor.hpp
@@ -288,17 +288,17 @@
                 continue;
             }
 
-            std::string level =
-                propertyLevel(threshold.level, threshold.direction);
-            std::string alarm =
-                propertyAlarm(threshold.level, threshold.direction);
+            std::string level = propertyLevel(threshold.level,
+                                              threshold.direction);
+            std::string alarm = propertyAlarm(threshold.level,
+                                              threshold.direction);
 
             if ((level.empty()) || (alarm.empty()))
             {
                 continue;
             }
-            size_t thresSize =
-                label.empty() ? thresholds.size() : thresholdSize;
+            size_t thresSize = label.empty() ? thresholds.size()
+                                             : thresholdSize;
             iface->register_property(
                 level, threshold.value,
                 [&, label, thresSize](const double& request, double& oldValue) {
