From e701e0bb257799878359483881377d8ef2f59f2f Mon Sep 17 00:00:00 2001
From: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date: Tue, 9 Aug 2022 07:58:20 -0500
Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A8=20Misc.=20schema=20updates?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Marlin/Configuration.h                       |  7 ++++++-
 buildroot/share/PlatformIO/scripts/schema.py | 10 +++++-----
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index 2c16b8fb53f..683b61298b8 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -141,6 +141,8 @@
 // Choose your own or use a service like https://www.uuidgenerator.net/version4
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
 
+// @section stepper drivers
+
 /**
  * Stepper Drivers
  *
@@ -240,6 +242,8 @@
   //#define SINGLENOZZLE_STANDBY_FAN
 #endif
 
+// @section multi-material
+
 /**
  * Multi-Material Unit
  * Set to one of these predefined models:
@@ -252,6 +256,7 @@
  *
  * Requires NOZZLE_PARK_FEATURE to park print head in case MMU unit fails.
  * See additional options in Configuration_adv.h.
+ * :["PRUSA_MMU1", "PRUSA_MMU2", "PRUSA_MMU2S", "EXTENDABLE_EMU_MMU2", "EXTENDABLE_EMU_MMU2S"]
  */
 //#define MMU_MODEL PRUSA_MMU2
 
@@ -1629,7 +1634,7 @@
 #define DISABLE_E false             // Disable the extruder when not stepping
 #define DISABLE_INACTIVE_EXTRUDER   // Keep only the active extruder enabled
 
-// @section machine
+// @section motion
 
 // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
 #define INVERT_X_DIR false
diff --git a/buildroot/share/PlatformIO/scripts/schema.py b/buildroot/share/PlatformIO/scripts/schema.py
index 5316cb906ae..34df4c906f2 100755
--- a/buildroot/share/PlatformIO/scripts/schema.py
+++ b/buildroot/share/PlatformIO/scripts/schema.py
@@ -213,11 +213,8 @@ def extract():
 					elif cpos2 != -1 and (cpos2 < cpos1 or cpos1 == -1):
 						cpos = cpos2
 
-						# Expire end-of-line options after first use
-						if cline.startswith(':'): eol_options = True
-
 						# Comment after a define may be continued on the following lines
-						if state == Parse.NORMAL and defmatch != None and cpos > 10:
+						if defmatch != None and cpos > 10:
 							state = Parse.EOL_COMMENT
 							comment_buff = []
 
@@ -225,9 +222,12 @@ def extract():
 					if cpos != -1:
 						cline, line = line[cpos+2:].strip(), line[:cpos].strip()
 
-						# Strip leading '*' from block comments
 						if state == Parse.BLOCK_COMMENT:
+							# Strip leading '*' from block comments
 							if cline.startswith('*'): cline = cline[1:].strip()
+						else:
+							# Expire end-of-line options after first use
+							if cline.startswith(':'): eol_options = True
 
 						# Buffer a non-empty comment start
 						if cline != '':