From de6512b31b614567bf1800406303d1ccfb6d9455 Mon Sep 17 00:00:00 2001 From: James Westman Date: Mon, 7 Sep 2020 13:54:42 +0000 Subject: giscanner: Fix section matching for documentation When writing documentation to the GIR files, GIR tries to match classes with their matching SECTION: comment in the source code. Some codebases use kebab-case or CamelCase for their section names, but GIR always expects them to be flatcase or the matching will fail. This commit converts all section names to flatcase (by removing "-" and converting to lowercase) while they are being parsed, so that they are matched properly later on. Fixes #350. --- giscanner/annotationparser.py | 7 ++++- .../annotationparser/gi/identifier_section.xml | 34 ++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/giscanner/annotationparser.py b/giscanner/annotationparser.py index f8257206..c9ff5c2b 100644 --- a/giscanner/annotationparser.py +++ b/giscanner/annotationparser.py @@ -1357,7 +1357,12 @@ class GtkDocCommentBlockParser(object): result = SECTION_RE.match(line) if result: - identifier_name = 'SECTION:%s' % (result.group('section_name'), ) + # Some projects use kebab-case or CamelCase for section + # names. Convert them all to flat case so we can match + # them easily later on. + identifier_name = 'SECTION:%s' % (result.group('section_name') + .replace("-", "") + .lower(), ) identifier_delimiter = None identifier_fields = None identifier_fields_start = None diff --git a/tests/scanner/annotationparser/gi/identifier_section.xml b/tests/scanner/annotationparser/gi/identifier_section.xml index fad2b2ed..380ab87b 100644 --- a/tests/scanner/annotationparser/gi/identifier_section.xml +++ b/tests/scanner/annotationparser/gi/identifier_section.xml @@ -329,4 +329,38 @@ returns nothing. */ + + + + /** + * SECTION:Meep-App + * @short_description: module for gtk-doc unit test + * + * This file contains non-sense code for the sole purpose of testing the docs. + */ + + + + SECTION:meepapp + + + + short_description + module for gtk-doc unit test + + + This file contains non-sense code for the sole purpose of testing the docs. + + + /** + * SECTION:meepapp + * @short_description: module for gtk-doc unit test + * + * This file contains non-sense code for the sole purpose of testing the docs. + */ + + -- cgit v1.2.1