Add *_MATRIX_LED_COUNT generation/validation (#19515)
* Add *_MATRIX_LED_COUNT parsing/validation * Disable parsing for now * Disable complexity check
This commit is contained in:
		
							parent
							
								
									0a3ec7f59c
								
							
						
					
					
						commit
						25c16b3ade
					
				
					 3 changed files with 13 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -71,6 +71,7 @@
 | 
			
		|||
    "LED_MATRIX_SPLIT": {"info_key": "led_matrix.split_count", "value_type": "array.int"},
 | 
			
		||||
    "LED_MATRIX_TIMEOUT": {"info_key": "led_matrix.timeout", "value_type": "int"},
 | 
			
		||||
    "LED_MATRIX_VAL_STEP": {"info_key": "led_matrix.val_steps", "value_type": "int"},
 | 
			
		||||
    "LED_MATRIX_LED_COUNT": {"info_key": "led_matrix.led_count", "value_type": "int", "to_json": false},
 | 
			
		||||
 | 
			
		||||
    // LUFA Bootloader
 | 
			
		||||
    "QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"},
 | 
			
		||||
| 
						 | 
				
			
			@ -109,6 +110,7 @@
 | 
			
		|||
    "RGB_MATRIX_SPLIT": {"info_key": "rgb_matrix.split_count", "value_type": "array.int"},
 | 
			
		||||
    "RGB_MATRIX_TIMEOUT": {"info_key": "rgb_matrix.timeout", "value_type": "int"},
 | 
			
		||||
    "RGB_MATRIX_VAL_STEP": {"info_key": "rgb_matrix.val_steps", "value_type": "int"},
 | 
			
		||||
    "RGB_MATRIX_LED_COUNT": {"info_key": "rgb_matrix.led_count", "value_type": "int", "to_json": false},
 | 
			
		||||
 | 
			
		||||
    // RGBLight
 | 
			
		||||
    "RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -372,6 +372,7 @@
 | 
			
		|||
                    }
 | 
			
		||||
                },
 | 
			
		||||
                "driver": {"type": "string"},
 | 
			
		||||
                "led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
 | 
			
		||||
                "center_point": {
 | 
			
		||||
                    "type": "array",
 | 
			
		||||
                    "minItems": 2,
 | 
			
		||||
| 
						 | 
				
			
			@ -423,6 +424,7 @@
 | 
			
		|||
                    }
 | 
			
		||||
                },
 | 
			
		||||
                "driver": {"type": "string"},
 | 
			
		||||
                "led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
 | 
			
		||||
                "center_point": {
 | 
			
		||||
                    "type": "array",
 | 
			
		||||
                    "minItems": 2,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -55,7 +55,7 @@ def _get_key_left_position(key):
 | 
			
		|||
    return key['x'] - 0.25 if key.get('h', 1) == 2 and key.get('w', 1) == 1.25 else key['x']
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _additional_validation(keyboard, info_data):
 | 
			
		||||
def _additional_validation(keyboard, info_data):  # noqa: C901
 | 
			
		||||
    """Non schema checks
 | 
			
		||||
    """
 | 
			
		||||
    layouts = info_data.get('layouts', {})
 | 
			
		||||
| 
						 | 
				
			
			@ -105,6 +105,14 @@ def _additional_validation(keyboard, info_data):
 | 
			
		|||
            if not decl.get("aliases", []):
 | 
			
		||||
                _log_error(info_data, f'Keycode {decl["key"]} has no short form alias')
 | 
			
		||||
 | 
			
		||||
    # Ensure LED config is somewhat valid
 | 
			
		||||
    for feature in ['rgb_matrix', 'led_matrix']:
 | 
			
		||||
        if feature in info_data and all(key in info_data[feature] for key in ["layout", "led_count"]):
 | 
			
		||||
            layout_count = len(info_data[feature]["layout"])
 | 
			
		||||
            led_count = info_data[feature]["led_count"]
 | 
			
		||||
            if led_count != layout_count:
 | 
			
		||||
                _log_warning(info_data, '%s: mismatch between LED count (%d) and layout items (%d)' % (feature, led_count, layout_count))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _validate(keyboard, info_data):
 | 
			
		||||
    """Perform various validation on the provided info.json data
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue