[vala/wip/dbusgen: 14/20] added support for doc tags



commit 6600d08462b6aada797ea8c3eed18feb8ddb5683
Author: Chris Daley <chebizarro gmail com>
Date:   Fri Nov 24 10:35:03 2017 -0800

    added support for doc tags

 dbusgen/valadbusgen.vala    |    2 ++
 dbusgen/valadbusparser.vala |   18 ++++++++++++++++++
 2 files changed, 20 insertions(+), 0 deletions(-)
---
diff --git a/dbusgen/valadbusgen.vala b/dbusgen/valadbusgen.vala
index 0dfcb11..93cf463 100644
--- a/dbusgen/valadbusgen.vala
+++ b/dbusgen/valadbusgen.vala
@@ -101,6 +101,8 @@ public class Vala.DBusGen {
                context.add_define ("GOBJECT");
                context.target_glib_major = 2;
                context.target_glib_minor = 40;
+               context.vapi_comments = true;
+
 
                for (int i = 16; i <= 40; i += 2) {
                        context.add_define ("GLIB_2_%d".printf (i));
diff --git a/dbusgen/valadbusparser.vala b/dbusgen/valadbusparser.vala
index 2872317..9a1890d 100644
--- a/dbusgen/valadbusparser.vala
+++ b/dbusgen/valadbusparser.vala
@@ -355,13 +355,31 @@ public class Vala.DBusParser : CodeVisitor {
        private void parse_doc () {
                start_element ("doc:doc");
 
+               string comment = "";
+               SourceReference start_loc = get_current_src ();
+
                while (true) {
                        next ();
+
+                       if (current_token == MarkupTokenType.TEXT) {
+                               SourceReference source = get_current_src ();
+                               comment += source.file.get_source_line (source.begin.line).strip ();
+                       }
+
                        if (current_token == MarkupTokenType.END_ELEMENT && reader.name == "doc:doc") {
                                break;
                        }
                }
 
+               if (comment.length > 0) {
+                       comment = "*\n * %s\n*".printf (comment);
+                       Comment doc = new Comment (comment, start_loc);
+                       Symbol node = current_node as Symbol;
+                       if (node != null) {
+                               node.comment = doc;
+                       }
+               }
+
                end_element ("doc:doc");
        }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]