Explorar el Código

normalize space fix

Bigfoot71 hace 4 meses
padre
commit
514bf98c15
Se han modificado 1 ficheros con 20 adiciones y 10 borrados
  1. 20 10
      scripts/glsl_processor.py

+ 20 - 10
scripts/glsl_processor.py

@@ -70,18 +70,28 @@ def remove_newlines(shader_content):
     return "".join(result)
 
 def normalize_spaces(shader_content):
-    """Remove redundant spaces around operators and symbols"""
-    symbols = [',', '.', '(', ')', '{', '}', ';', ':', '+', '-', '*', '/', '=']
-
-    for symbol in symbols:
-        escaped = re.escape(symbol)
-        shader_content = re.sub(rf'[ \t]+{escaped}', symbol, shader_content)
-        shader_content = re.sub(rf'{escaped}[ \t]+', symbol, shader_content)
+    """Remove redundant spaces around operators and symbols, excluding preprocessor directives"""
+    lines = shader_content.split('\n')
+    processed_lines = []
 
-    shader_content = re.sub(r'\s+\n', '\n', shader_content)
-    shader_content = re.sub(r'[ \t]+', ' ', shader_content)
+    symbols = [',', '.', '(', ')', '{', '}', ';', ':', '+', '-', '*', '/', '=']
 
-    return shader_content
+    for line in lines:
+        if line.lstrip().startswith('#'):
+            # Preserve preprocessor directives as is
+            processed_lines.append(line)
+        else:
+            # Apply normalization to other lines
+            processed_line = line
+            for symbol in symbols:
+                escaped = re.escape(symbol)
+                processed_line = re.sub(rf'[ \t]+{escaped}', symbol, processed_line)
+                processed_line = re.sub(rf'{escaped}[ \t]+', symbol, processed_line)
+
+            processed_line = re.sub(r'[ \t]+', ' ', processed_line)
+            processed_lines.append(processed_line)
+
+    return '\n'.join(processed_lines)
 
 # === Main === #