[gobject-introspection: 1/2] giscanner: Fix section matching for documentation
- From: Mathieu Duponchelle <mathieudu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gobject-introspection: 1/2] giscanner: Fix section matching for documentation
- Date: Mon, 7 Sep 2020 13:54:43 +0000 (UTC)
commit de6512b31b614567bf1800406303d1ccfb6d9455
Author: James Westman <flyingpimonster gmail com>
Date: Mon Sep 7 13:54:42 2020 +0000
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 f8257206f..c9ff5c2b8 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 fad2b2edb..380ab87bc 100644
--- a/tests/scanner/annotationparser/gi/identifier_section.xml
+++ b/tests/scanner/annotationparser/gi/identifier_section.xml
@@ -329,4 +329,38 @@ returns nothing.</description>
*/</output>
</test>
+
+<test>
+ <!--
+ Section name in different case styles
+ See https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/350
+ -->
+ <input>/**
+ * 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.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:meepapp</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>short_description</name>
+ <description>module for gtk-doc unit test</description>
+ </parameter>
+ </parameters>
+ <description>This file contains non-sense code for the sole purpose of testing the docs.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * SECTION:meepapp
+ * @short_description: module for gtk-doc unit test
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ */</output>
+</test>
+
</tests>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]