[vala/wip/dbusgen: 310/329] added support for doc tags




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

    added support for doc tags

 dbusgen/valadbusgen.vala    |  1 +
 dbusgen/valadbusparser.vala | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+)
---
diff --git a/dbusgen/valadbusgen.vala b/dbusgen/valadbusgen.vala
index ad65f8697..33205bb47 100644
--- a/dbusgen/valadbusgen.vala
+++ b/dbusgen/valadbusgen.vala
@@ -98,6 +98,7 @@ public class Vala.DBusGen {
                CodeContext.push (context);
 
                context.set_target_profile (Profile.GOBJECT);
+               context.vapi_comments = true;
 
                if (packages != null) {
                        foreach (string package in packages) {
diff --git a/dbusgen/valadbusparser.vala b/dbusgen/valadbusparser.vala
index 2872317e1..9a1890dba 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]