From 39036367a23ee55ad919f40de60e0ae270ed8d6b Mon Sep 17 00:00:00 2001 From: VIFEX Date: Sat, 25 Apr 2026 17:44:14 +0800 Subject: [PATCH] fix(doxygen): support @param[in/out] without space - Fix PARAM_TAG_RE to match both '@param [in] name' (spaced) and '@param[in] name' (no space) forms used in LVGL headers - Add 3 new self-test cases for @param[in], @param[out], @param[in,out] variants (44 total) --- scripts/check_doxygen.py | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/scripts/check_doxygen.py b/scripts/check_doxygen.py index 97686f97f5..13ac73f345 100644 --- a/scripts/check_doxygen.py +++ b/scripts/check_doxygen.py @@ -52,8 +52,8 @@ FUNC_DECL_RE = re.compile( re.MULTILINE, ) -# Matches @param tags -PARAM_TAG_RE = re.compile(r"@param\s+(?:\[(?:in|out|in,\s*out)\]\s+)?(\w+)") +# Matches @param tags — supports both "@param name" and "@param[in] name" forms +PARAM_TAG_RE = re.compile(r"@param\s*(?:\[(?:in|out|in,\s*out)\]\s*)?(\w+)") # Matches @return tag RETURN_TAG_RE = re.compile(r"@return\b") @@ -652,12 +652,33 @@ def self_test() -> int: "/** Set callback\n * @param obj pointer\n * @param cb callback\n */", ), ( - "@param with [in] qualifier", + "@param with [in] qualifier (spaced)", "lv_test_qual", "void", "lv_obj_t * obj", "/** Do something\n * @param [in] obj pointer\n */", ), + ( + "@param[in] qualifier (no space)", + "lv_test_qual_in", + "void", + "lv_obj_t * obj", + "/** Do something\n * @param[in] obj pointer\n */", + ), + ( + "@param[out] qualifier (no space)", + "lv_test_qual_out", + "void", + "lv_obj_t * obj", + "/** Do something\n * @param[out] obj pointer\n */", + ), + ( + "@param[in,out] qualifier (no space)", + "lv_test_qual_inout", + "void", + "lv_obj_t * obj", + "/** Do something\n * @param[in,out] obj pointer\n */", + ), ] for desc, func_name, ret_type, params, doxygen in good_cases: total += 1